⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coolbartab.java

📁 eclipse 的程序源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	/**	 * Disposes the "Example" widgets.	 */	void disposeExampleWidgets () {		/* store the state of the toolbar if applicable */		if (coolBar != null) {			sizes = coolBar.getItemSizes();			wrapIndices = coolBar.getWrapIndices();			order = coolBar.getItemOrder();		}		super.disposeExampleWidgets();		}	/**	 * Gets the "Example" widget children's items, if any.	 *	 * @return an array containing the example widget children's items	 */	Item [] getExampleWidgetItems () {		return coolBar.getItems();	}		/**	 * Gets the "Example" widget children.	 */	Control [] getExampleWidgets () {		return new Control [] {coolBar};	}		/**	 * Gets the text for the tab folder item.	 */	String getTabText () {		return "CoolBar";	}		/**	 * Sets the state of the "Example" widgets.	 */	void setExampleWidgetState () {		super.setExampleWidgetState ();		borderButton.setSelection ((coolBar.getStyle () & SWT.BORDER) != 0);		flatButton.setSelection ((coolBar.getStyle () & SWT.FLAT) != 0);		dropDownButton.setSelection ((coolBar.getItem(0).getStyle () & SWT.DROP_DOWN) != 0);		setWidgetLocked ();	}		/**	 * Sets the header visible state of the "Example" widgets.	 */	void setWidgetLocked () {		coolBar.setLocked (lockedButton.getSelection ());	}		/**	 * Listens to widgetSelected() events on SWT.DROP_DOWN type ToolItems	 * and opens/closes a menu when appropriate.	 */	class DropDownSelectionListener extends SelectionAdapter {		private Menu menu = null;		private boolean visible = false;				public void widgetSelected(SelectionEvent event) {			// Create the menu if it has not already been created			if (menu == null) {				// Lazy create the menu.				Shell shell = tabFolderPage.getShell();				menu = new Menu(shell);				menu.addMenuListener(new MenuAdapter() {					public void menuHidden(MenuEvent e) {						visible = false;					}				});				for (int i = 0; i < 9; ++i) {					final String text = ControlExample.getResourceString("DropDownData_" + i);					if (text.length() != 0) {						MenuItem menuItem = new MenuItem(menu, SWT.NONE);						menuItem.setText(text);						/*						 * Add a menu selection listener so that the menu is hidden						 * when the user selects an item from the drop down menu.						 */						menuItem.addSelectionListener(new SelectionAdapter() {							public void widgetSelected(SelectionEvent e) {								setMenuVisible(false);							}						});					} else {						new MenuItem(menu, SWT.SEPARATOR);					}				}			}						/**			 * A selection event will be fired when a drop down tool			 * item is selected in the main area and in the drop			 * down arrow.  Examine the event detail to determine			 * where the widget was selected.			 */					if (event.detail == SWT.ARROW) {				/*				 * The drop down arrow was selected.				 */				if (visible) {					// Hide the menu to give the Arrow the appearance of being a toggle button.					setMenuVisible(false);				} else {						// Position the menu below and vertically aligned with the the drop down tool button.					final ToolItem toolItem = (ToolItem) event.widget;					final ToolBar  toolBar = toolItem.getParent();										Rectangle toolItemBounds = toolItem.getBounds();					Point point = toolBar.toDisplay(new Point(toolItemBounds.x, toolItemBounds.y));					menu.setLocation(point.x, point.y + toolItemBounds.height);					setMenuVisible(true);				}			} else {				/*				 * Main area of drop down tool item selected.				 * An application would invoke the code to perform the action for the tool item.				 */			}		}		private void setMenuVisible(boolean visible) {			menu.setVisible(visible);			this.visible = visible;		}	}	/**	 * Listens to widgetSelected() events on SWT.DROP_DOWN type CoolItems	 * and opens/closes a menu when appropriate.	 */	class CoolItemSelectionListener extends SelectionAdapter {		private Menu menu = null;				public void widgetSelected(SelectionEvent event) {			/**			 * A selection event will be fired when the cool item			 * is selected by its gripper or if the drop down arrow			 * (or 'chevron') is selected. Examine the event detail			 * to determine where the widget was selected.			 */			if (event.detail == SWT.ARROW) {				/* If the popup menu is already up (i.e. user pressed arrow twice),				 * then dispose it.				 */				if (menu != null) {					menu.dispose();					menu = null;					return;				}								/* Get the cool item and convert its bounds to display coordinates. */				CoolItem coolItem = (CoolItem) event.widget;				Rectangle itemBounds = coolItem.getBounds ();				itemBounds.width = event.x - itemBounds.x;				Point pt = coolBar.toDisplay(new Point (itemBounds.x, itemBounds.y));				itemBounds.x = pt.x;				itemBounds.y = pt.y;								/* Get the toolbar from the cool item. */				ToolBar toolBar = (ToolBar) coolItem.getControl ();				ToolItem[] tools = toolBar.getItems ();				int toolCount = tools.length;												/* Convert the bounds of each tool item to display coordinates,				 * and determine which ones are past the bounds of the cool item.				 */				int i = 0;				while (i < toolCount) {					Rectangle toolBounds = tools[i].getBounds ();					pt = toolBar.toDisplay(new Point(toolBounds.x, toolBounds.y));					toolBounds.x = pt.x;					toolBounds.y = pt.y;			  		Rectangle intersection = itemBounds.intersection (toolBounds);			  		if (!intersection.equals (toolBounds)) break;			  		i++;				}								/* Create a pop-up menu with items for each of the hidden buttons. */				menu = new Menu (coolBar);				for (int j = i; j < toolCount; j++) {					ToolItem tool = tools[j];					Image image = tool.getImage();					if (image == null) {						new MenuItem (menu, SWT.SEPARATOR);					} else {						if ((tool.getStyle() & SWT.DROP_DOWN) != 0) {							MenuItem menuItem = new MenuItem (menu, SWT.CASCADE);							menuItem.setImage(image);							String text = tool.getToolTipText();							if (text != null) menuItem.setText(text);							Menu m = new Menu(menu);							menuItem.setMenu(m);							for (int k = 0; k < 9; ++k) {								text = ControlExample.getResourceString("DropDownData_" + k);								if (text.length() != 0) {									MenuItem mi = new MenuItem(m, SWT.NONE);									mi.setText(text);									/* Application code to perform the action for the submenu item would go here. */								} else {									new MenuItem(m, SWT.SEPARATOR);								}							}						} else {							MenuItem menuItem = new MenuItem (menu, SWT.NONE);							menuItem.setImage(image);							String text = tool.getToolTipText();							if (text != null) menuItem.setText(text);						}						/* Application code to perform the action for the menu item would go here. */					}				}								/* Display the pop-up menu at the lower left corner of the arrow button.				 * Dispose the menu when the user is done with it.				 */				pt = coolBar.toDisplay(new Point(event.x, event.y));				menu.setLocation (pt.x, pt.y);				menu.setVisible (true);				Display display = coolBar.getDisplay ();				while (menu != null && !menu.isDisposed() && menu.isVisible ()) {					if (!display.readAndDispatch ()) display.sleep ();				}				if (menu != null) {					menu.dispose ();					menu = null;				}			}		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -