import org.eclipse.ui.actions.CompoundContributionItem;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
/**
* Context menu for the creation of derivates in the derivate hierarchy.
new ContributionItem() {
@Override
public void fill(Menu menu, int index) {
+ DefinedTerm artworkTerm = DerivateLabelProvider.getArtworkTerm();
+ DefinedTerm livingPlantPhotoTerm = DerivateLabelProvider.getLivingPlantPhotoTerm();
+ DefinedTerm specimenScanTerm = DerivateLabelProvider.getSpecimenScanTerm();
MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
addItem.setText("Add...");
Menu addMenu = new Menu(menu);
new MenuItem(addMenu, SWT.SEPARATOR);
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
- createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage);
- createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage);
- createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage);
+ createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm);
+ createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
+ createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
}
//context menu for Specimen
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
- createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage);
- createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage);
- createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage);
+ createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm);
+ createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
+ createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
}
//context menu for TissueSample
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
return contributionItems;
}
- private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
+ private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
MenuItem menuItem = new MenuItem(menu, SWT.NONE);
menuItem.setText(menuLabel);
- menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType));
+ menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, kindOfUnit));
+ }
+
+ private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
+ createMenuItem(menu, menuLabel, selectedNode, childClass, specimenType, null);
}
private class WidgetSelectionListener extends SelectionAdapter{
//TODO: we need a common interface for the generic like e.g. "IDerivateHierarchyNode"
private final Class<?> childClass;
private final SpecimenOrObservationType specimenType;
+ private final DefinedTerm kindOfUnit;
/**
* @param selectedNode
* @param specimenType
+ * @param kindOfUnit
*/
- public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
+ public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
this.selectedNode = selectedNode;
this.childClass = childClass;
this.specimenType = specimenType;
+ this.kindOfUnit = kindOfUnit;
}
/* (non-Javadoc)
derivedUnit = MediaSpecimen.NewInstance(specimenType);
//a MediaSpecimen with no media attached does not make sense. Hence we add one
((MediaSpecimen)derivedUnit).setMediaSpecimen(Media.NewInstance());
+ derivedUnit.setKindOfUnit(kindOfUnit);
}
else{
derivedUnit = DerivedUnit.NewInstance(specimenType);