import org.eclipse.jface.action.ContributionItem;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.CompoundContributionItem;
+import org.eclipse.ui.handlers.IHandlerService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
public class CreateDerivateContextMenu extends CompoundContributionItem {
+ private final IHandlerService handlerService = (IHandlerService) EditorUtil.getService(IHandlerService.class);
+ private final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ private final ISelection selection = window.getActivePage().getSelection();
+
/* (non-Javadoc)
* @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
*/
new ContributionItem() {
@Override
public void fill(Menu menu, int index) {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- ISelection selection = window.getActivePage().getSelection();
- MenuItem menuItem = new MenuItem(menu, SWT.None);
- menuItem.setText("menuItem");
- //selection is intance of TreeSelection
- if(selection instanceof FieldUnit){
- menuItem.setText("fieldUnit");
- }
- else if(selection instanceof DerivedUnit){
- menuItem.setText("derivedUnit");
+ if(selection instanceof TreeSelection){
+ final Object selectedElement = ((TreeSelection) selection).getFirstElement();
+ //context menu for FieldUnit
+ if(selectedElement instanceof FieldUnit){
+ MenuItem createSpecimen = new MenuItem(menu, SWT.None);
+ createSpecimen.setText("Specimen");
+ createSpecimen.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ FieldUnit fieldUnit = HibernateProxyHelper.deproxy(selectedElement, FieldUnit.class);
+ DerivedUnit specimen = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+ fieldUnit.addDerivationEvent(DerivationEvent.NewSimpleInstance(fieldUnit, specimen, DerivationEventType.GATHERING_IN_SITU()));
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+ MenuItem createLivingPlantPhoto = new MenuItem(menu, SWT.None);
+ createLivingPlantPhoto.setText("Living Plant Photo");
+ }
+ //context menu for Specimen
+ else if(selectedElement instanceof DerivedUnit && ((DerivedUnit)selectedElement).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
+ MenuItem createTissueSample = new MenuItem(menu, SWT.None);
+ createTissueSample.setText("Tissue Sample");
+ MenuItem createDNASample = new MenuItem(menu, SWT.None);
+ createDNASample.setText("DNA Sample");
+ MenuItem createSpecimenScan = new MenuItem(menu, SWT.None);
+ createSpecimenScan.setText("Specimen Scan");
+ MenuItem createArtwork = new MenuItem(menu, SWT.None);
+ createArtwork.setText("Artwork");
+ MenuItem createLivingPlantPhoto = new MenuItem(menu, SWT.None);
+ createLivingPlantPhoto.setText("Living Plant Photo");
+ }
+ else{
+ MenuItem menuItem = new MenuItem(menu, SWT.None);
+ menuItem.setText("No child derivates");
+ menuItem.setEnabled(false);
+ }
}
}
}