import org.apache.log4j.Logger;
import org.eclipse.jface.action.ContributionItem;
+import org.eclipse.jface.action.IContributionItem;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.CompoundContributionItem;
import org.eclipse.ui.handlers.IHandlerService;
import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
/**
* @created 17.04.2009
* @version 1.0
*/
-public class DynamicFeatureMenu extends ContributionItem {
+public class DynamicFeatureMenu extends CompoundContributionItem {
private static final Logger logger = Logger
.getLogger(DynamicFeatureMenu.class);
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
*/
@Override
- public void fill(Menu menu, int index){
- final IHandlerService handlerService = (IHandlerService) TaxeditorEditorPlugin.getDefault().getWorkbench().getService(IHandlerService.class);
-
-
- for(final Feature feature : PreferencesUtil.getPreferredFeatures()){
- MenuItem menuItem = new MenuItem(menu, -1);
- menuItem.setText(feature.getLabel());
- // TODO no use for menuItem.data?
- menuItem.setData(feature);
- menuItem.addSelectionListener(new SelectionListener(){
-
- public void widgetDefaultSelected(SelectionEvent e) {}
-
- public void widgetSelected(SelectionEvent ev) {
- Event event = new Event();
- event.data = feature;
- try {
- handlerService.executeCommand("eu.etaxonomy.taxeditor.editor.description.createDescriptionElement", event);
- } catch (Exception e) {
- logger.error("Error executing command", e);
- }
- }
- });
- }
+ protected IContributionItem[] getContributionItems() {
- }
-}
+ return new IContributionItem[] {
+ new ContributionItem() {
+ public void fill(Menu menu, int index){
+ final IHandlerService handlerService =
+ (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
+
+ for(final Feature feature : PreferencesUtil.getPreferredFeatures()){
+ MenuItem menuItem = new MenuItem(menu, -1);
+ menuItem.setText(feature.getLabel());
+ menuItem.addSelectionListener(new SelectionListener(){
+
+ public void widgetDefaultSelected(SelectionEvent e) {}
+
+ public void widgetSelected(SelectionEvent ev) {
+ Event event = new Event();
+ event.data = feature;
+ try {
+ handlerService.executeCommand("eu.etaxonomy.taxeditor.editor.description.createDescriptionElement", event);
+ } catch (Exception e) {
+ logger.error("Error executing command", e);
+ }
+ }
+ });
+ }
+ }
+ }
+ };
+ }
+}
\ No newline at end of file