1 package eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
;
3 import org
.eclipse
.jface
.action
.ContributionItem
;
4 import org
.eclipse
.jface
.action
.IContributionItem
;
5 import org
.eclipse
.jface
.viewers
.ISelection
;
6 import org
.eclipse
.jface
.viewers
.TreeSelection
;
7 import org
.eclipse
.swt
.SWT
;
8 import org
.eclipse
.swt
.events
.SelectionEvent
;
9 import org
.eclipse
.swt
.events
.SelectionListener
;
10 import org
.eclipse
.swt
.widgets
.Menu
;
11 import org
.eclipse
.swt
.widgets
.MenuItem
;
12 import org
.eclipse
.ui
.IWorkbenchWindow
;
13 import org
.eclipse
.ui
.PlatformUI
;
14 import org
.eclipse
.ui
.actions
.CompoundContributionItem
;
15 import org
.eclipse
.ui
.handlers
.IHandlerService
;
17 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
18 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivationEvent
;
19 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivationEventType
;
20 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
21 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
22 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationType
;
23 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
25 public class CreateDerivateContextMenu
extends CompoundContributionItem
{
27 private final IHandlerService handlerService
= (IHandlerService
) EditorUtil
.getService(IHandlerService
.class);
28 private final IWorkbenchWindow window
= PlatformUI
.getWorkbench().getActiveWorkbenchWindow();
29 private final ISelection selection
= window
.getActivePage().getSelection();
32 * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
35 protected IContributionItem
[] getContributionItems() {
36 IContributionItem
[] contributionItems
= new IContributionItem
[] {
37 new ContributionItem() {
39 public void fill(Menu menu
, int index
) {
40 if(selection
instanceof TreeSelection
){
41 final Object selectedElement
= ((TreeSelection
) selection
).getFirstElement();
42 //context menu for FieldUnit
43 if(selectedElement
instanceof FieldUnit
){
44 MenuItem createSpecimen
= new MenuItem(menu
, SWT
.None
);
45 createSpecimen
.setText("Specimen");
46 createSpecimen
.addSelectionListener(new SelectionListener() {
49 public void widgetSelected(SelectionEvent e
) {
50 FieldUnit fieldUnit
= HibernateProxyHelper
.deproxy(selectedElement
, FieldUnit
.class);
51 DerivedUnit specimen
= DerivedUnit
.NewInstance(SpecimenOrObservationType
.PreservedSpecimen
);
52 fieldUnit
.addDerivationEvent(DerivationEvent
.NewSimpleInstance(fieldUnit
, specimen
, DerivationEventType
.GATHERING_IN_SITU()));
56 public void widgetDefaultSelected(SelectionEvent e
) {
57 // TODO Auto-generated method stub
61 MenuItem createLivingPlantPhoto
= new MenuItem(menu
, SWT
.None
);
62 createLivingPlantPhoto
.setText("Living Plant Photo");
64 //context menu for Specimen
65 else if(selectedElement
instanceof DerivedUnit
&& ((DerivedUnit
)selectedElement
).getRecordBasis()==SpecimenOrObservationType
.PreservedSpecimen
){
66 MenuItem createTissueSample
= new MenuItem(menu
, SWT
.None
);
67 createTissueSample
.setText("Tissue Sample");
68 MenuItem createDNASample
= new MenuItem(menu
, SWT
.None
);
69 createDNASample
.setText("DNA Sample");
70 MenuItem createSpecimenScan
= new MenuItem(menu
, SWT
.None
);
71 createSpecimenScan
.setText("Specimen Scan");
72 MenuItem createArtwork
= new MenuItem(menu
, SWT
.None
);
73 createArtwork
.setText("Artwork");
74 MenuItem createLivingPlantPhoto
= new MenuItem(menu
, SWT
.None
);
75 createLivingPlantPhoto
.setText("Living Plant Photo");
78 MenuItem menuItem
= new MenuItem(menu
, SWT
.None
);
79 menuItem
.setText("No child derivates");
80 menuItem
.setEnabled(false);
86 return contributionItems
;