List of usage examples for org.eclipse.jface.action IMenuCreator IMenuCreator
IMenuCreator
From source file:ch.elexis.actions.AgendaActions.java
License:Open Source License
private static void makeActions() { delTerminAction = new LockRequestingRestrictedAction<Termin>(ACLContributor.DELETE_APPOINTMENTS, Messages.AgendaActions_deleteDate) { {/*w ww . j a v a 2s. co m*/ setImageDescriptor(Images.IMG_DELETE.getImageDescriptor()); setToolTipText(Messages.AgendaActions_deleteDate); } @Override public Termin getTargetedObject() { return (Termin) ElexisEventDispatcher.getSelected(Termin.class); } @Override public void doRun(Termin element) { element.delete(); ElexisEventDispatcher.reload(Termin.class); } }; terminStatusAction = new Action(Messages.AgendaActions_state, Action.AS_DROP_DOWN_MENU) { Menu mine = null; Listener showListener = null; { setMenuCreator(new IMenuCreator() { public void dispose() { if (mine != null) { removeShowListener(); mine.dispose(); } } public Menu getMenu(Control parent) { mine = new Menu(parent); fillMenu(); addShowListener(); return mine; } public Menu getMenu(Menu parent) { mine = new Menu(parent); fillMenu(); addShowListener(); return mine; } private void removeShowListener() { if (mine != null && showListener != null) { mine.removeListener(SWT.Show, showListener); } } private void addShowListener() { if (mine != null) { removeShowListener(); showListener = new Listener() { @Override public void handleEvent(Event event) { Menu menu = (Menu) event.widget; Termin actTermin = (Termin) ElexisEventDispatcher.getSelected(Termin.class); if (actTermin != null) { String actTerminStatus = actTermin.getStatus(); if (actTerminStatus != null) { for (MenuItem menuItem : menu.getItems()) { menuItem.setSelection( StringUtils.equals(actTerminStatus, menuItem.getText())); } } } } }; mine.addListener(SWT.Show, showListener); } } }); } void fillMenu() { for (String t : Termin.TerminStatus) { MenuItem it = new MenuItem(mine, SWT.CHECK); it.setText(t); it.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Termin act = (Termin) ElexisEventDispatcher.getSelected(Termin.class); AcquireLockBlockingUi.aquireAndRun(act, new ILockHandler() { @Override public void lockFailed() { // do nothing } @Override public void lockAcquired() { MenuItem it = (MenuItem) e.getSource(); act.setStatus(it.getText()); ElexisEventDispatcher.reload(Termin.class); } }); } }); } } }; }
From source file:ch.elexis.agenda.ui.AgendaParallel.java
License:Open Source License
private void makePrivateActions() { dayFwdAction = new Action(Messages.AgendaParallel_dayForward) { {/*from w w w . ja v a 2 s.co m*/ setToolTipText(Messages.AgendaParallel_showNextDay); setImageDescriptor(Images.IMG_NEXT.getImageDescriptor()); } @Override public void run() { agenda.addDays(1); for (String s : getDisplayedResources()) { checkDay(s, null); } refresh(); } }; dayBackAction = new Action(Messages.AgendaParallel_dayBack) { { setToolTipText(Messages.AgendaParallel_showPreviousDay); setImageDescriptor(Images.IMG_PREVIOUS.getImageDescriptor()); } @Override public void run() { agenda.addDays(-1); for (String s : getDisplayedResources()) { checkDay(s, null); } refresh(); } }; showCalendarAction = new Action(Messages.AgendaParallel_selectDay) { { setToolTipText(Messages.AgendaParallel_showCalendarForSelcetion); // setImageDescriptor(Activator.getImageDescriptor("icons/calendar.png")); } @Override public void run() { DateSelectorDialog dsl = new DateSelectorDialog(getViewSite().getShell(), agenda.getActDate()); if (dsl.open() == Dialog.OK) { agenda.setActDate(dsl.getSelectedDate()); for (String s : getDisplayedResources()) { checkDay(s, null); } refresh(); } } }; final IAction zoomAction = new Action(Messages.AgendaParallel_zoom, Action.AS_DROP_DOWN_MENU) { Menu mine; { setToolTipText(Messages.AgendaParallel_setZoomFactor); setImageDescriptor(Activator.getImageDescriptor("icons/zoom.png")); //$NON-NLS-1$ setMenuCreator(new IMenuCreator() { public void dispose() { mine.dispose(); } public Menu getMenu(Control parent) { mine = new Menu(parent); fillMenu(); return mine; } public Menu getMenu(Menu parent) { mine = new Menu(parent); fillMenu(); return mine; } }); } private void fillMenu() { String currentFactorString = CoreHub.localCfg.get(PreferenceConstants.AG_PIXEL_PER_MINUTE, "0.4"); int currentFactor = (int) (Float.parseFloat(currentFactorString) * 100); for (String s : new String[] { "40", "60", "80", "100", "120", "140", "160", "200", "300", "400", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$//$NON-NLS-5$//$NON-NLS-6$//$NON-NLS-7$//$NON-NLS-8$//$NON-NLS-9$ "500" }) { MenuItem it = new MenuItem(mine, SWT.RADIO); it.setText(s + "%"); //$NON-NLS-1$ it.setData(s); it.setSelection(Integer.parseInt(s) == currentFactor); it.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MenuItem mi = (MenuItem) e.getSource(); int scale = Integer.parseInt((String) mi.getData()); //$NON-NLS-1$ double factor = scale / 100.0; CoreHub.localCfg.set(PreferenceConstants.AG_PIXEL_PER_MINUTE, Double.toString(factor)); sheet.recalc(); } }); } } }; IToolBarManager tmr = getViewSite().getActionBars().getToolBarManager(); tmr.add(new Separator()); tmr.add(dayBackAction); tmr.add(showCalendarAction); tmr.add(dayFwdAction); tmr.add(new Separator()); tmr.add(zoomAction); tmr.add(new Separator("agenda_right")); //$NON-NLS-1$ }
From source file:ch.elexis.agenda.ui.week.AgendaWeek.java
License:Open Source License
private void makePrivateActions() { weekFwdAction = new Action(Messages.AgendaWeek_weekForward) { {/* w w w.j a v a 2s . c om*/ setToolTipText(Messages.AgendaWeek_showNextWeek); setImageDescriptor(Images.IMG_NEXT.getImageDescriptor()); } @Override public void run() { agenda.addDays(7); TimeTool tt = new TimeTool(); for (String s : getDisplayedDays()) { tt.set(s); checkDay(null, tt); } refresh(); } }; weekBackAction = new Action(Messages.AgendaWeek_weekBackward) { { setToolTipText(Messages.AgendaWeek_showPreviousWeek); setImageDescriptor(Images.IMG_PREVIOUS.getImageDescriptor()); } @Override public void run() { agenda.addDays(-7); TimeTool tt = new TimeTool(); for (String s : getDisplayedDays()) { tt.set(s); checkDay(null, tt); } refresh(); } }; showCalendarAction = new Action(Messages.AgendaWeek_selectWeek) { { setToolTipText(Messages.AgendaWeek_showCalendarToSelect); // setImageDescriptor(Activator.getImageDescriptor("icons/calendar.png")); } @Override public void run() { DateSelectorDialog dsl = new DateSelectorDialog(getViewSite().getShell(), agenda.getActDate()); if (dsl.open() == Dialog.OK) { agenda.setActDate(dsl.getSelectedDate()); TimeTool tt = new TimeTool(); for (String s : getDisplayedDays()) { tt.set(s); checkDay(null, tt); } refresh(); } } }; final IAction zoomAction = new Action(Messages.AgendaWeek_zoom, Action.AS_DROP_DOWN_MENU) { Menu mine; { setToolTipText(Messages.AgendaWeek_setZoomFactor); setImageDescriptor(Activator.getImageDescriptor("icons/zoom.png")); //$NON-NLS-1$ setMenuCreator(new IMenuCreator() { public void dispose() { mine.dispose(); } public Menu getMenu(Control parent) { mine = new Menu(parent); fillMenu(); return mine; } public Menu getMenu(Menu parent) { mine = new Menu(parent); fillMenu(); return mine; } }); } private void fillMenu() { String currentFactorString = CoreHub.localCfg.get(PreferenceConstants.AG_PIXEL_PER_MINUTE, "0.4"); int currentFactor = (int) (Float.parseFloat(currentFactorString) * 100); for (String s : new String[] { "40", "60", "80", "100", "120", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ "140", "160", "200", "300" }) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ MenuItem it = new MenuItem(mine, SWT.RADIO); it.setText(s + "%"); //$NON-NLS-1$ it.setData(s); it.setSelection(Integer.parseInt(s) == currentFactor); it.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MenuItem mi = (MenuItem) e.getSource(); int scale = Integer.parseInt(mi.getText().split("%")[0]); //$NON-NLS-1$ double factor = scale / 100.0; CoreHub.localCfg.set(PreferenceConstants.AG_PIXEL_PER_MINUTE, Double.toString(factor)); sheet.recalc(); } }); } } }; IToolBarManager tmr = getViewSite().getActionBars().getToolBarManager(); tmr.add(new Separator()); tmr.add(weekBackAction); tmr.add(showCalendarAction); tmr.add(weekFwdAction); tmr.add(new Separator()); tmr.add(zoomAction); }
From source file:ch.elexis.core.ui.contacts.views.PatientMenuPopulator.java
License:Open Source License
PatientMenuPopulator(PatientenListeView plv, final StructuredViewer structuredViewer) { mine = plv;/* ww w . j a v a 2s . c om*/ stickerAction = new RestrictedAction(AccessControlDefaults.KONTAKT_ETIKETTE, Messages.PatientMenuPopulator_StickerAction) { // $NON-NLS-1$ { setToolTipText(Messages.PatientMenuPopulator_StickerToolTip); // $NON-NLS-1$ } @Override public void doRun() { Patient p = mine.getSelectedPatient(); AssignStickerDialog aed = new AssignStickerDialog(Hub.getActiveShell(), p); aed.open(); } }; delPatAction = new LockRequestingRestrictedAction<Patient>(AccessControlDefaults.KONTAKT_DELETE, Messages.PatientMenuPopulator_DeletePatientAction) { @Override public void doRun(Patient p) { if (MessageDialog.openConfirm(mine.getViewSite().getShell(), Messages.PatientMenuPopulator_DeletePatientConfirm, p.getLabel()) == true) { if (p.delete(false) == false) { SWTHelper.alert(Messages.PatientMenuPopulator_DeletePatientRejectCaption, Messages.PatientMenuPopulator_DeletePatientRejectBody); } else { mine.reload(); } } } @Override public Patient getTargetedObject() { StructuredSelection selection = (StructuredSelection) structuredViewer.getSelection(); if (selection != null) { return (Patient) selection.getFirstElement(); } return null; } }; exportKGAction = new Action(Messages.PatientMenuPopulator_ExportEMRAction, Action.AS_DROP_DOWN_MENU) { // $NON-NLS-1$ Menu menu = null; { setToolTipText(Messages.PatientMenuPopulator_ExportEMRToolTip); // $NON-NLS-1$ setMenuCreator(new IMenuCreator() { public void dispose() { if (menu != null) { menu.dispose(); menu = null; } } public Menu getMenu(Control parent) { menu = new Menu(parent); createMenu(); return menu; } public Menu getMenu(Menu parent) { menu = new Menu(parent); createMenu(); return menu; } }); } void createMenu() { Patient p = mine.getSelectedPatient(); if (p != null) { List<IConfigurationElement> list = Extensions .getExtensions(ExtensionPointConstantsUi.TRANSPORTER); // $NON-NLS-1$ for (final IConfigurationElement ic : list) { // TODO "Acceptable Types" is not part of // ch.elexis.Transporter // never was?! Should we remove this code? - mde String handler = ic.getAttribute("AcceptableTypes"); //$NON-NLS-1$ if (handler == null) { continue; } if (handler.contains("ch.elexis.data.Patient") //$NON-NLS-1$ || (handler.contains("ch.elexis.data.*"))) { //$NON-NLS-1$ MenuItem it = new MenuItem(menu, SWT.NONE); it.setText(ic.getAttribute("name")); //$NON-NLS-1$ it.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Patient pat = mine.getSelectedPatient(); try { IDataSender sender = (IDataSender) ic .createExecutableExtension("ExporterClass"); //$NON-NLS-1$ sender.store(pat); sender.finalizeExport(); SWTHelper.showInfo(Messages.PatientMenuPopulator_EMRExported, // $NON-NLS-1$ MessageFormat.format(Messages.PatientMenuPopulator_ExportEmrSuccess, // $NON-NLS-1$ pat.getLabel())); } catch (CoreException e1) { ExHandler.handle(e1); } catch (XChangeException xx) { SWTHelper.showError(Messages.PatientMenuPopulator_ErrorCaption, // $NON-NLS-1$ MessageFormat.format(Messages.PatientMenuPopulator_ExportEmrFailure, // $NON-NLS-1$ pat.getLabel())); } } }); } } } } }; }
From source file:ch.elexis.views.PatientMenuPopulator.java
License:Open Source License
PatientMenuPopulator(PatientenListeView plv) {
mine = plv;/* ww w . j a v a 2 s . c om*/
stickerAction = new RestrictedAction(AccessControlDefaults.KONTAKT_ETIKETTE,
Messages.getString("PatientMenuPopulator.StickerAction")) { //$NON-NLS-1$
{
setToolTipText(Messages.getString("PatientMenuPopulator.StickerToolTip")); //$NON-NLS-1$
}
@Override
public void doRun() {
Patient p = mine.getSelectedPatient();
AssignStickerDialog aed = new AssignStickerDialog(Hub.getActiveShell(), p);
aed.open();
}
};
delPatAction = new Action(Messages.getString("PatientMenuPopulator.DeletePatientAction")) { //$NON-NLS-1$
@Override
public void run() {
// access rights guard
if (!Hub.acl.request(AccessControlDefaults.KONTAKT_DELETE)) {
SWTHelper.alert(Messages.getString("PatientMenuPopulator.DeletePatientRefusalCaption"), //$NON-NLS-1$
Messages.getString("PatientMenuPopulator.DeletePatientRefusalBody")); //$NON-NLS-1$
return;
}
Patient p = mine.getSelectedPatient();
if (p != null) {
if (MessageDialog.openConfirm(mine.getViewSite().getShell(),
Messages.getString("PatientMenuPopulator.DeletePatientConfirm"), //$NON-NLS-1$
p.getLabel()) == true) {
if (p.delete(false) == false) {
SWTHelper.alert(Messages.getString("PatientMenuPopulator.DeletePatientRejectCaption"), //$NON-NLS-1$
Messages.getString("PatientMenuPopulator.DeletePatientRejectBody")); //$NON-NLS-1$
} else {
mine.reload();
}
}
}
}
};
exportKGAction = new Action(Messages.getString("PatientMenuPopulator.ExportEMRAction"), //$NON-NLS-1$
Action.AS_DROP_DOWN_MENU) {
Menu menu = null;
{
setToolTipText(Messages.getString("PatientMenuPopulator.ExportEMRToolTip")); //$NON-NLS-1$
setMenuCreator(new IMenuCreator() {
public void dispose() {
if (menu != null) {
menu.dispose();
menu = null;
}
}
public Menu getMenu(Control parent) {
menu = new Menu(parent);
createMenu();
return menu;
}
public Menu getMenu(Menu parent) {
menu = new Menu(parent);
createMenu();
return menu;
}
});
}
void createMenu() {
Patient p = mine.getSelectedPatient();
if (p != null) {
List<IConfigurationElement> list = Extensions.getExtensions("ch.elexis.Transporter"); //$NON-NLS-1$
for (final IConfigurationElement ic : list) {
String name = ic.getAttribute("name"); //$NON-NLS-1$
System.out.println(name);
String handler = ic.getAttribute("AcceptableTypes"); //$NON-NLS-1$
if (handler == null) {
continue;
}
if (handler.contains("ch.elexis.data.Patient") //$NON-NLS-1$
|| (handler.contains("ch.elexis.data.*"))) { //$NON-NLS-1$
MenuItem it = new MenuItem(menu, SWT.NONE);
it.setText(ic.getAttribute("name")); //$NON-NLS-1$
it.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
Patient pat = mine.getSelectedPatient();
try {
IDataSender sender = (IDataSender) ic
.createExecutableExtension("ExporterClass"); //$NON-NLS-1$
sender.store(pat);
sender.finalizeExport();
SWTHelper.showInfo(Messages.getString("PatientMenuPopulator.EMRExported"), //$NON-NLS-1$
MessageFormat.format(
Messages.getString("PatientMenuPopulator.ExportEmrSuccess"), //$NON-NLS-1$
pat.getLabel()));
} catch (CoreException e1) {
ExHandler.handle(e1);
} catch (XChangeException xx) {
SWTHelper.showError(Messages.getString("PatientMenuPopulator.ErrorCaption"), //$NON-NLS-1$
MessageFormat.format(
Messages.getString("PatientMenuPopulator.ExportEmrFailure"), //$NON-NLS-1$
pat.getLabel()));
}
}
});
}
}
}
}
};
}
From source file:com.aptana.browser.WebBrowserViewer.java
License:Open Source License
private void createCommandBar(Composite parent) { final MenuManager menuManager = new MenuManager("#CommandMenu"); //$NON-NLS-1$ MenuManager sizeMenuManager = new MenuManager(Messages.WebBrowserViewer_LBL_SetSize); sizeMenuManager.add(new Action(Messages.WebBrowserViewer_LBL_FullEditor) { @Override/*from w w w . j av a 2s .c om*/ public void run() { currentSize = null; layout(); } }); menuManager.add(sizeMenuManager); BrowserSizeCategory[] categories = BrowserPlugin.getDefault().getBrowserConfigurationManager() .getSizeCategories(); Arrays.sort(categories); MenuManager categoryMenuManager; BrowserSize[] sizes; for (BrowserSizeCategory category : categories) { // first level has the categories categoryMenuManager = new MenuManager(category.getName()); sizeMenuManager.add(categoryMenuManager); sizes = category.getSizes(); for (final BrowserSize size : sizes) { // then shows size configurations for each category categoryMenuManager.add(new Action(size.getName()) { @Override public void run() { disposeImage(); currentSize = size; boolean blackBackground = false; BrowserBackgroundImage image = currentSize.getImage(); if (image != null) { currentImage = image.getImageDescriptor().createImage(); blackBackground = image.isBlackBackground(); } Color background = blackBackground ? getDisplay().getSystemColor(SWT.COLOR_BLACK) : getDisplay().getSystemColor(SWT.COLOR_WHITE); setBackground(background); backgroundArea.setBackground(background); resizeBackground(); } }); } } sizeMenuManager.add(new Action(Messages.WebBrowserViewer_LBL_Custom) { @Override public void run() { setCustomSize(); } }); ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT); Action action = new Action("Command", IAction.AS_DROP_DOWN_MENU) //$NON-NLS-1$ { @Override public void run() { // not doing anything } }; action.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_COMMAND)); action.setMenuCreator(new IMenuCreator() { public void dispose() { } public Menu getMenu(Control parent) { return menuManager.createContextMenu(parent); } public Menu getMenu(Menu parent) { return null; } }); toolBarManager.add(action); ToolBar sizeToolBar = toolBarManager.createControl(parent); sizeToolBar.setLayoutData(GridDataFactory.fillDefaults().create()); }
From source file:com.aptana.browser.WebBrowserViewer4Mac.java
License:Open Source License
protected void createCommandBar(Composite parent) { final MenuManager menuManager = new MenuManager("#CommandMenu"); //$NON-NLS-1$ menuManager.add(new Action(Messages.WebBrowserViewer_LBL_FullEditor) { @Override/*from www .j a v a 2 s. c o m*/ public void run() { currentSize = null; layout(); } }); BrowserSizeCategory[] categories = BrowserPlugin.getDefault().getBrowserConfigurationManager() .getSizeCategories(); Arrays.sort(categories); BrowserSize[] sizes; for (BrowserSizeCategory category : categories) { sizes = category.getSizes(); for (final BrowserSize size : sizes) { // then shows size configurations for each category menuManager.add(new Action(size.getName()) { @Override public void run() { disposeImage(); currentSize = size; boolean blackBackground = false; BrowserBackgroundImage image = currentSize.getImage(); if (image != null) { currentImage = image.getImageDescriptor().createImage(); blackBackground = image.isBlackBackground(); } Color background = blackBackground ? getDisplay().getSystemColor(SWT.COLOR_BLACK) : getDisplay().getSystemColor(SWT.COLOR_WHITE); setBackground(background); backgroundArea.setBackground(background); resizeBackground(); } }); } } menuManager.add(new Action(Messages.WebBrowserViewer_LBL_Custom) { @Override public void run() { setCustomSize(); } }); ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT); Action action = new Action(Messages.WebBrowserViewer_LBL_Set, IAction.AS_DROP_DOWN_MENU) //$NON-NLS-1$ { @Override public void run() { // not doing anything } }; action.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_COMMAND)); action.setMenuCreator(new IMenuCreator() { public void dispose() { } public Menu getMenu(Control parent) { return menuManager.createContextMenu(parent); } public Menu getMenu(Menu parent) { return null; } }); toolBarManager.add(action); ToolBar sizeToolBar = toolBarManager.createControl(parent); sizeToolBar.setLayoutData(GridDataFactory.fillDefaults().create()); }
From source file:com.aptana.ide.server.ui.views.actions.GenericAddServerAction.java
License:Open Source License
/** * //w w w.j av a 2 s. com */ public GenericAddServerAction() { super(Messages.GenericAddServerActionTITLE, Action.AS_DROP_DOWN_MENU); this.setImageDescriptor(ServerUIPlugin.getImageDescriptor("/icons/server/add_server.gif")); //$NON-NLS-1$ this.setMenuCreator(new IMenuCreator() { public void dispose() { } public Menu getMenu(Control parent) { MenuManager mn = new MenuManager(); fillManager(mn); return mn.createContextMenu(parent); } public Menu getMenu(Menu parent) { MenuManager mn = new MenuManager(); fillManager(mn); Menu menu = new Menu(parent); mn.fill(menu, 0); return menu; } }); }
From source file:com.aptana.ide.server.ui.views.actions.OpenLogAction.java
License:Open Source License
/** * @param provider//from w w w. j ava 2 s . com * @param style */ public OpenLogAction(ISelectionProvider provider, int style) { super("", style); //$NON-NLS-1$ this.setImageDescriptor(ServerUIPlugin.getImageDescriptor("/icons/windowlist.png")); //$NON-NLS-1$ this.setToolTipText(Messages.OpenLogAction_Title0); this.provider = provider; provider.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { OpenLogAction.this.selectionChanged(event); } }); this.setMenuCreator(new IMenuCreator() { public void dispose() { } public Menu getMenu(Control parent) { MenuManager mn = new MenuManager(); fillManager(mn); return mn.createContextMenu(parent); } public Menu getMenu(Menu parent) { MenuManager mn = new MenuManager(); fillManager(mn); Menu menu = new Menu(parent); mn.fill(menu, 0); return menu; } }); }
From source file:com.microsoft.tfs.client.common.ui.framework.action.ToolbarPulldownAction.java
License:Open Source License
public ToolbarPulldownAction(final boolean showMenuForDefaultAction) { super(null, IAction.AS_DROP_DOWN_MENU); this.showMenuForDefaultAction = showMenuForDefaultAction; setEnabled(false);/*from ww w . j av a2 s . c om*/ setMenuCreator(new IMenuCreator() { @Override public void dispose() { disposeSubActionMenu(); } @Override public Menu getMenu(final Control parent) { return getSubActionMenu(parent); } @Override public Menu getMenu(final Menu parent) { return null; } }); menuItemSelectionListener = new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { if (!e.widget.isDisposed()) { final ActionContributionItem aci = (ActionContributionItem) e.widget.getData(); final IAction subAction = aci.getAction(); setDefaultSubAction(subAction); } } }; subActionPropertyChangeListener = new IPropertyChangeListener() { @Override public void propertyChange(final PropertyChangeEvent event) { subActionPropertyChange(event); } }; }