Revision 59777165
Added by Patrick Plitzner over 9 years ago
- used more pepresentative DerivationEventTypes when creating derivates via DerivatView
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java | ||
---|---|---|
55 | 55 |
if(selectedTreeNode!=null){ |
56 | 56 |
//context menu for FieldUnit |
57 | 57 |
if(selectedTreeNode.getValue() instanceof FieldUnit){ |
58 |
createMenuItem(addMenu, "Specimen", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.PreservedSpecimen); |
|
58 |
createMenuItem(addMenu, "Specimen", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.PreservedSpecimen, DerivationEventType.GATHERING_IN_SITU());
|
|
59 | 59 |
new MenuItem(addMenu, SWT.SEPARATOR); |
60 |
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample); |
|
61 |
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample); |
|
62 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media); |
|
60 |
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
|
|
61 |
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
|
|
62 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
|
|
63 | 63 |
} |
64 | 64 |
//context menu for Specimen |
65 | 65 |
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){ |
66 | 66 |
|
67 |
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample); |
|
68 |
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample); |
|
69 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media); |
|
67 |
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
|
|
68 |
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
|
|
69 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
|
|
70 | 70 |
} |
71 | 71 |
//context menu for TissueSample |
72 | 72 |
else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){ |
73 |
createMenuItem(addMenu, "DnaSample", selectedTreeNode, DnaSample.class, null);
|
|
74 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media); |
|
73 |
createMenuItem(addMenu, "DnaSample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
|
|
74 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
|
|
75 | 75 |
} |
76 | 76 |
//context menu for DnaSample |
77 | 77 |
else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.DnaSample){ |
78 |
createMenuItem(addMenu, "Consensus Sequence", selectedTreeNode, Sequence.class, null); |
|
79 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media); |
|
78 |
createMenuItem(addMenu, "Consensus Sequence", selectedTreeNode, Sequence.class, null, null);
|
|
79 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
|
|
80 | 80 |
} |
81 | 81 |
//context menu for Sequence |
82 | 82 |
else if(selectedTreeNode.getValue() instanceof Sequence){ |
83 |
createMenuItem(addMenu, "Single Read", selectedTreeNode, SingleRead.class, null); |
|
83 |
createMenuItem(addMenu, "Single Read", selectedTreeNode, SingleRead.class, null, null);
|
|
84 | 84 |
} |
85 | 85 |
//default |
86 | 86 |
else{ |
... | ... | |
97 | 97 |
return contributionItems; |
98 | 98 |
} |
99 | 99 |
|
100 |
private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) { |
|
100 |
private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DerivationEventType derivationEventType) {
|
|
101 | 101 |
MenuItem menuItem = new MenuItem(menu, SWT.NONE); |
102 | 102 |
menuItem.setText(menuLabel); |
103 |
menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType)); |
|
103 |
menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, derivationEventType));
|
|
104 | 104 |
} |
105 | 105 |
|
106 | 106 |
private class WidgetSelectionListener extends SelectionAdapter{ |
... | ... | |
109 | 109 |
//TODO: we need a common interface for the generic like e.g. "IDerivateHierarchyNode" |
110 | 110 |
private final Class<?> childClass; |
111 | 111 |
private final SpecimenOrObservationType specimenType; |
112 |
private final DerivationEventType derivationEventType; |
|
112 | 113 |
|
113 | 114 |
/** |
114 | 115 |
* @param selectedNode |
115 | 116 |
* @param specimenType |
116 | 117 |
*/ |
117 |
public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) { |
|
118 |
public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DerivationEventType derivationEventType) {
|
|
118 | 119 |
this.selectedNode = selectedNode; |
119 | 120 |
this.childClass = childClass; |
120 | 121 |
this.specimenType = specimenType; |
122 |
this.derivationEventType = derivationEventType; |
|
121 | 123 |
} |
122 | 124 |
|
123 | 125 |
/* (non-Javadoc) |
... | ... | |
130 | 132 |
if(selectedDerivate instanceof DnaSample && ((DnaSample) selectedDerivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){ |
131 | 133 |
DnaSample dnaSample = (DnaSample)selectedDerivate; |
132 | 134 |
if(childClass.equals(Sequence.class)){ |
133 |
Sequence newInstance = Sequence.NewInstance(""); |
|
134 |
dnaSample.addSequence(newInstance);//why does this not have DnaSample as constructor parameter? |
|
135 |
Sequence newInstance = Sequence.NewInstance(dnaSample, "", 0); |
|
135 | 136 |
createdElement = newInstance; |
136 | 137 |
} |
137 | 138 |
} |
... | ... | |
160 | 161 |
else{ |
161 | 162 |
derivedUnit = DerivedUnit.NewInstance(specimenType); |
162 | 163 |
} |
163 |
specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, DerivationEventType.GATHERING_IN_SITU()));
|
|
164 |
specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, derivationEventType));
|
|
164 | 165 |
derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy()); |
165 | 166 |
derivedUnit.getTitleCache(); //update title cache |
166 | 167 |
createdElement = derivedUnit; |
Also available in: Unified diff