Java by API/org.eclipse.swt.widgets/CoolItem

Материал из Java эксперт
Перейти к: навигация, поиск

CoolItem: addSelectionListener(SelectionListener lis)

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 MainClass {
  static Menu menu = null;
  static CoolBar coolBar;
  public static void main(String[] args) {
    Display display;
    Shell shell;
    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.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);
    Point coolBar1Size = coolItem1.ruputeSize(toolBar1Size.x, toolBar1Size.y);
    coolItem1.setSize(coolBar1Size);
    Point toolBar2Size = toolBar2.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);
    Point coolBar2Size = coolItem1.ruputeSize(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();
  }
}





CoolItem: computeSize(int x, int y)

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.CoolItem;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class MainClass {
  public static void main(String[] a) {
    Display d = new Display();
    Shell s = new Shell(d);
    s.setText("A Tabbed Shell Example");
    final CoolBar bar = new CoolBar(s, SWT.BORDER);
    bar.setSize(280, 70);
    bar.setLocation(0, 0);
    // final Image openIcon = new Image(d, "c:\\icons\\open.jpg");
    final CoolItem openCoolItem = new CoolItem(bar, SWT.NONE);
    final Button openBtn = new Button(bar, SWT.PUSH);
    // openBtn.setImage(openIcon);
    openBtn.pack();
    Point size = openBtn.getSize();
    openCoolItem.setControl(openBtn);
    openCoolItem.setSize(openCoolItem.ruputeSize(size.x, size.y));
    s.open();
    while (!s.isDisposed()) {
      if (!d.readAndDispatch())
        d.sleep();
    }
    d.dispose();
  }
}





CoolItem: setControl(Control con)

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.CoolItem;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class MainClass {
  public static void main(String[] a) {
    Display d = new Display();
    Shell s = new Shell(d);
    s.setText("A Tabbed Shell Example");
    final CoolBar bar = new CoolBar(s, SWT.BORDER);
    bar.setSize(280, 70);
    bar.setLocation(0, 0);
    // final Image openIcon = new Image(d, "c:\\icons\\open.jpg");
    final CoolItem openCoolItem = new CoolItem(bar, SWT.NONE);
    final Button openBtn = new Button(bar, SWT.PUSH);
    // openBtn.setImage(openIcon);
    openBtn.pack();
    Point size = openBtn.getSize();
    openCoolItem.setControl(openBtn);
    openCoolItem.setSize(openCoolItem.ruputeSize(size.x, size.y));
    s.open();
    while (!s.isDisposed()) {
      if (!d.readAndDispatch())
        d.sleep();
    }
    d.dispose();
  }
}





new CoolItem(CoolBar bar, int style)

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.CoolItem;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class MainClass {
  public static void main(String[] a) {
    Display d = new Display();
    Shell s = new Shell(d);
    s.setText("A Tabbed Shell Example");
    final CoolBar bar = new CoolBar(s, SWT.BORDER);
    bar.setSize(280, 70);
    bar.setLocation(0, 0);
    // final Image openIcon = new Image(d, "c:\\icons\\open.jpg");
    final CoolItem openCoolItem = new CoolItem(bar, SWT.NONE);
    final Button openBtn = new Button(bar, SWT.PUSH);
    // openBtn.setImage(openIcon);
    openBtn.pack();
    Point size = openBtn.getSize();
    openCoolItem.setControl(openBtn);
    openCoolItem.setSize(openCoolItem.ruputeSize(size.x, size.y));
    s.open();
    while (!s.isDisposed()) {
      if (!d.readAndDispatch())
        d.sleep();
    }
    d.dispose();
  }
}