4 package eu
.etaxonomy
.taxeditor
.editor
.view
.concept
.handler
;
6 import java
.util
.Arrays
;
9 import org
.eclipse
.jface
.action
.ContributionItem
;
10 import org
.eclipse
.swt
.events
.SelectionEvent
;
11 import org
.eclipse
.swt
.events
.SelectionListener
;
12 import org
.eclipse
.swt
.widgets
.Event
;
13 import org
.eclipse
.swt
.widgets
.Menu
;
14 import org
.eclipse
.swt
.widgets
.MenuItem
;
15 import org
.eclipse
.ui
.handlers
.IHandlerService
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonRelationshipType
;
18 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
19 import eu
.etaxonomy
.taxeditor
.editor
.internal
.TaxeditorEditorPlugin
;
20 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
23 * <p>Abstract AbstractDynamicConceptRelationMenu class.</p>
29 public abstract class AbstractDynamicConceptRelationMenu
extends ContributionItem
{
31 private static List
<TaxonRelationshipType
> excludeRelationshipTypes
= Arrays
.asList(new TaxonRelationshipType
[]{
32 TaxonRelationshipType
.TAXONOMICALLY_INCLUDED_IN(),
33 TaxonRelationshipType
.MISAPPLIED_NAME_FOR(),
34 TaxonRelationshipType
.ALL_RELATIONSHIPS()
39 * @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
43 public void fill(Menu menu
, int index
){
44 final IHandlerService handlerService
= (IHandlerService
) TaxeditorEditorPlugin
.getDefault().getWorkbench().getService(IHandlerService
.class);
46 List
<TaxonRelationshipType
> relationshipTypes
= CdmStore
.getTermManager().getPreferredTaxonRelationshipTypes();
48 relationshipTypes
.removeAll(excludeRelationshipTypes
);
50 for(final TaxonRelationshipType type
: relationshipTypes
){
51 MenuItem menuItem
= new MenuItem(menu
, -1);
52 menuItem
.setText(type
.getLabel());
53 menuItem
.setData(type
);
54 menuItem
.addSelectionListener(new SelectionListener(){
56 public void widgetDefaultSelected(SelectionEvent e
) {}
58 public void widgetSelected(SelectionEvent ev
) {
59 Event event
= new Event();
62 handlerService
.executeCommand(getCommandName(), event
);
63 } catch (Exception e
) {
64 EditorUtil
.error(getClass(), "Error executing command", e
);
72 * <p>getCommandName</p>
74 * @return a {@link java.lang.String} object.
76 public abstract String
getCommandName();