Java/SWT JFace Eclipse/Status Bar

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

SWT Status Bar Demo

   <source lang="java">

/* SWT/JFace in Action GUI Design with Eclipse 3.0 Matthew Scarpino, Stephen Holder, Stanford Ng, and Laurent Mihalkovic ISBN: 1932394273 Publisher: Manning

  • /

import org.eclipse.jface.action.Action; import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.StatusLineManager; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.ruposite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; public class Ch4_Contributions extends ApplicationWindow {

 StatusLineManager slm = new StatusLineManager();
 Ch4_StatusAction status_action = new Ch4_StatusAction(slm);
 ActionContributionItem aci = new ActionContributionItem(status_action);
 public Ch4_Contributions() {
   super(null);
   addStatusLine();
   addMenuBar();
   addToolBar(SWT.FLAT | SWT.WRAP);
 }
 protected Control createContents(Composite parent) {
   getShell().setText("Action/Contribution Example");
   parent.setSize(290, 150);
   aci.fill(parent);
   return parent;
 }
 public static void main(String[] args) {
   Ch4_Contributions swin = new Ch4_Contributions();
   swin.setBlockOnOpen(true);
   swin.open();
   Display.getCurrent().dispose();
 }
 protected MenuManager createMenuManager() {
   MenuManager main_menu = new MenuManager(null);
   MenuManager action_menu = new MenuManager("Menu");
   main_menu.add(action_menu);
   action_menu.add(status_action);
   return main_menu;
 }
 protected ToolBarManager createToolBarManager(int style) {
   ToolBarManager tool_bar_manager = new ToolBarManager(style);
   tool_bar_manager.add(status_action);
   return tool_bar_manager;
 }
 protected StatusLineManager createStatusLineManager() {
   return slm;
 }

} class Ch4_StatusAction extends Action {

 StatusLineManager statman;
 short triggercount = 0;
 public Ch4_StatusAction(StatusLineManager sm) {
   super("&Trigger@Ctrl+T", AS_PUSH_BUTTON);
   statman = sm;
   setToolTipText("Trigger the Action");
   setImageDescriptor(ImageDescriptor.createFromFile(this.getClass(),
       "eclipse.gif"));
 }
 public void run() {
   triggercount++;
   statman.setMessage("The status action has fired. Count: "
       + triggercount);
 }

}


      </source>
   
  
 
  



Update a status line (Statusbar) when the pointer enters a ToolItem

   <source lang="java">

/*

* ToolBar example snippet: update a status line when the pointer enters a ToolItem
*
* For a list of all SWT example snippets see
* http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
*/

import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseMoveListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; public class Snippet153 {

 static String statusText = "";
 public static void main(String[] args) {
   final Display display = new Display();
   Shell shell = new Shell(display);
   shell.setBounds(10, 10, 200, 200);
   final ToolBar bar = new ToolBar(shell, SWT.BORDER);
   bar.setBounds(10, 10, 150, 50);
   final Label statusLine = new Label(shell, SWT.BORDER);
   statusLine.setBounds(10, 90, 150, 30);
   new ToolItem(bar, SWT.NONE).setText("item 1");
   new ToolItem(bar, SWT.NONE).setText("item 2");
   new ToolItem(bar, SWT.NONE).setText("item 3");
   bar.addMouseMoveListener(new MouseMoveListener() {
     public void mouseMove(MouseEvent e) {
       ToolItem item = bar.getItem(new Point(e.x, e.y));
       String name = "";
       if (item != null) {
         name = item.getText();
       }
       if (!statusText.equals(name)) {
         statusLine.setText(name);
         statusText = name;
       }
     }
   });
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}

      </source>
   
  
 
  



Update a status line when an item is armed

   <source lang="java">

/*

* Control example snippet: update a status line when an item is armed
*
* For a list of all SWT example snippets see
* http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
*/

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; public class Snippet152 {

 public static void main(String[] args) {
   Display display = new Display();
   Shell shell = new Shell(display);
   FormLayout layout = new FormLayout();
   shell.setLayout(layout);
   final Label label = new Label(shell, SWT.BORDER);
   Listener armListener = new Listener() {
     public void handleEvent(Event event) {
       MenuItem item = (MenuItem) event.widget;
       label.setText(item.getText());
       label.update();
     }
   };
   Listener showListener = new Listener() {
     public void handleEvent(Event event) {
       Menu menu = (Menu) event.widget;
       MenuItem item = menu.getParentItem();
       if (item != null) {
         label.setText(item.getText());
         label.update();
       }
     }
   };
   Listener hideListener = new Listener() {
     public void handleEvent(Event event) {
       label.setText("");
       label.update();
     }
   };
   FormData labelData = new FormData();
   labelData.left = new FormAttachment(0);
   labelData.right = new FormAttachment(100);
   labelData.bottom = new FormAttachment(100);
   label.setLayoutData(labelData);
   Menu menuBar = new Menu(shell, SWT.BAR);
   shell.setMenuBar(menuBar);
   MenuItem fileItem = new MenuItem(menuBar, SWT.CASCADE);
   fileItem.setText("File");
   fileItem.addListener(SWT.Arm, armListener);
   MenuItem editItem = new MenuItem(menuBar, SWT.CASCADE);
   editItem.setText("Edit");
   editItem.addListener(SWT.Arm, armListener);
   Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);
   fileMenu.addListener(SWT.Hide, hideListener);
   fileMenu.addListener(SWT.Show, showListener);
   fileItem.setMenu(fileMenu);
   String[] fileStrings = { "New", "Close", "Exit" };
   for (int i = 0; i < fileStrings.length; i++) {
     MenuItem item = new MenuItem(fileMenu, SWT.PUSH);
     item.setText(fileStrings[i]);
     item.addListener(SWT.Arm, armListener);
   }
   Menu editMenu = new Menu(shell, SWT.DROP_DOWN);
   editMenu.addListener(SWT.Hide, hideListener);
   editMenu.addListener(SWT.Show, showListener);
   String[] editStrings = { "Cut", "Copy", "Paste" };
   editItem.setMenu(editMenu);
   for (int i = 0; i < editStrings.length; i++) {
     MenuItem item = new MenuItem(editMenu, SWT.PUSH);
     item.setText(editStrings[i]);
     item.addListener(SWT.Arm, armListener);
   }
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}

      </source>