Project

General

Profile

Download (2.83 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.editor.view.concept.handler;
5

    
6
import org.eclipse.jface.action.ContributionItem;
7
import org.eclipse.swt.events.SelectionEvent;
8
import org.eclipse.swt.events.SelectionListener;
9
import org.eclipse.swt.widgets.Event;
10
import org.eclipse.swt.widgets.Menu;
11
import org.eclipse.swt.widgets.MenuItem;
12
import org.eclipse.ui.handlers.IHandlerService;
13

    
14
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
15
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
16
import eu.etaxonomy.taxeditor.model.MessagingUtils;
17
import eu.etaxonomy.taxeditor.store.CdmStore;
18

    
19
/**
20
 * <p>Abstract AbstractDynamicConceptRelationMenu class.</p>
21
 *
22
 * @author n.hoffmann
23
 * @created 17.04.2009
24
 * @version 1.0
25
 */
26
public abstract class AbstractDynamicConceptRelationMenu extends ContributionItem {
27

    
28
	/*
29
	 * (non-Javadoc)
30
	 * @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
31
	 */
32
	/** {@inheritDoc} */
33
	@Override
34
	public void fill(Menu menu, int index){
35
		final IHandlerService handlerService = (IHandlerService) TaxeditorEditorPlugin.getDefault().getWorkbench().getService(IHandlerService.class);
36
		/*
37
		for(final TaxonRelationshipTypeInverseContainer container : CdmStore.getTermManager().getPreferredTerms(TaxonRelationshipTypeInverseContainer.class)){
38
			MenuItem menuItem = new MenuItem(menu, -1);
39
			menuItem.setText(container.getTitleCache());
40
			menuItem.setData(container);
41
			menuItem.addSelectionListener(new SelectionListener(){
42

    
43
				public void widgetDefaultSelected(SelectionEvent e) {}
44

    
45
				public void widgetSelected(SelectionEvent ev) {
46
					Event event = new Event();
47
					event.data = container;
48
					try {
49
						handlerService.executeCommand(getCommandName(), event);
50
					} catch (Exception e) {
51
						EditorUtil.error(getClass(), "Error executing command", e);
52
					}
53
				}
54
			});
55
		*/
56
		for(final TaxonRelationshipType taxonRelationshipType: CdmStore.getTermManager().getPreferredTerms(TaxonRelationshipType.class)){
57
		    if (!taxonRelationshipType.equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())){
58
			MenuItem menuItem = new MenuItem(menu, -1);
59
			menuItem.setText(taxonRelationshipType.getTitleCache());
60
			menuItem.setData(taxonRelationshipType);
61
			menuItem.addSelectionListener(new SelectionListener(){
62

    
63
				@Override
64
                public void widgetDefaultSelected(SelectionEvent e) {}
65

    
66
				@Override
67
                public void widgetSelected(SelectionEvent ev) {
68
					Event event = new Event();
69
					event.data = taxonRelationshipType;
70
					try {
71
						handlerService.executeCommand(getCommandName(), event);
72
					} catch (Exception e) {
73
						MessagingUtils.error(getClass(), "Error executing command", e); //$NON-NLS-1$
74
					}
75
				}
76
			});
77
		    }
78
		}
79
	}
80

    
81
	/**
82
	 * <p>getCommandName</p>
83
	 *
84
	 * @return a {@link java.lang.String} object.
85
	 */
86
	public abstract String getCommandName();
87

    
88
}
(1-1/8)