Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

SWY CoolBarClass

import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.CoolBar; import org.eclipse.swt.widgets.CoolItem; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; public class CoolBarClass {   static Display display;   static Shell shell;   static CoolBar coolBar;   static Menu menu = null;   public static void main(String[] args) {     display = new Display();     shell = new Shell(display);     shell.setLayout(new GridLayout());     shell.setText("CoolBar Example");     shell.setSize(600, 200);     coolBar = new CoolBar(shell, SWT.BORDER | SWT.FLAT);     coolBar.setLayoutData(new GridData(GridData.FILL_BOTH));     ToolBar toolBar1 = new ToolBar(coolBar, SWT.FLAT);     for (int loopIndex = 0; loopIndex < 5; loopIndex++) {       ToolItem toolItem = new ToolItem(toolBar1, SWT.PUSH);       toolItem.setText("Button " + loopIndex);     }     ToolBar toolBar2 = new ToolBar(coolBar, SWT.FLAT | SWT.WRAP);     for (int loopIndex = 5; loopIndex < 10; loopIndex++) {       ToolItem toolItem = new ToolItem(toolBar2, SWT.PUSH);       toolItem.setText("Button " + loopIndex);     }     CoolItem coolItem1 = new CoolItem(coolBar, SWT.DROP_DOWN);     coolItem1.setControl(toolBar1);     CoolItem coolItem2 = new CoolItem(coolBar, SWT.DROP_DOWN);     coolItem2.setControl(toolBar2);     Point toolBar1Size = toolBar1.computeSize(SWT.DEFAULT, SWT.DEFAULT);     Point coolBar1Size = coolItem1.computeSize(toolBar1Size.x,         toolBar1Size.y);     coolItem1.setSize(coolBar1Size);     Point toolBar2Size = toolBar2.computeSize(SWT.DEFAULT, SWT.DEFAULT);     Point coolBar2Size = coolItem1.computeSize(toolBar2Size.x,         toolBar2Size.y);     coolItem2.setSize(coolBar2Size);     class CoolBarListener extends SelectionAdapter {       public void widgetSelected(SelectionEvent event) {         if (event.detail == SWT.ARROW) {           ToolBar toolBar = (ToolBar) ((CoolItem) event.widget)               .getControl();           ToolItem[] buttons = toolBar.getItems();           if (menu != null) {             menu.dispose();           }           menu = new Menu(coolBar);           for (int loopIndex = 0; loopIndex < buttons.length; loopIndex++) {             MenuItem menuItem = new MenuItem(menu, SWT.PUSH);             menuItem.setText(buttons[loopIndex].getText());           }           Point menuPoint = coolBar.toDisplay(new Point(event.x,               event.y));           menu.setLocation(menuPoint.x, menuPoint.y);           menu.setVisible(true);         }       }     }     coolItem1.addSelectionListener(new CoolBarListener());     coolItem2.addSelectionListener(new CoolBarListener());     shell.open();     while (!shell.isDisposed()) {       if (!display.readAndDispatch())         display.sleep();     }     display.dispose();   } }