快速为view的工具条中加个下拉列表
1.设置view的工具条
MyView extends ViewPart{ToolBar toolBar;Menu start;MenuItem aaa;MenuItem bbb; callAction = new CallAction(this);initTool(){ toolBar = new ToolBar(composite, SWT.NONE); toolBar.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false)); ToolBarManager toolBarManager = new ToolBarManager(toolBar); toolBarManager.add(refreshAction); start = new Menu(toolBar.getShell(),SWT.DOWN); aaa = new MenuItem(startShowmenu, SWT.PUSH); aaa.setText("1s"); bbb = new MenuItem(startShowmenu, SWT.PUSH); bbb.setText("2s"); aaa.addSelectionListener(new SelectionAdapter(){widgetSelect}); //**** toolBarManager.add(callAction); toolBarManager.update(true); }public void showMenu(){ Rectangle rect = toolBar.getItem(1).getBounds(); Point point = new Point(rect.x,rect.y+rect.height); point = toolBar.toDisplay(point); startShowmenu.setLocation(point); startShowmenu.setVisible(true); oneItem.setEnabled(true); twoItem.setEnabled(true); } }
class CallAction extends Action{ private MyView myView; public CallAction(MyView view) {super("xxx", ImageUtil.getInstance().getImageDescriptor("xxx"));this.myView = view;setMenuCreator(new IMenuCreator() {@Overridepublic Menu getMenu(Menu parent) {return null;}@Overridepublic Menu getMenu(Control parent) {return null;}@Overridepublic void dispose() {}});setToolTipText("-----------"); setText("********");} @Override public void run() { myView.showMenu(); } @Override public void runWithEvent(Event event) { if (event.detail == SWT.ARROW) { //选择箭头时展开菜单 statisticsView.showMenu(); }else{ setToolTipText("DDDDDD"); 。。。。。。 } } }