Revision 5a308df4
Added by Patrick Plitzner almost 10 years ago
- generalized adding MediaSpecimen in DerivateView
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java | ||
---|---|---|
8 | 8 |
import org.eclipse.core.runtime.IProgressMonitor; |
9 | 9 |
import org.eclipse.jface.action.MenuManager; |
10 | 10 |
import org.eclipse.jface.util.LocalSelectionTransfer; |
11 |
import org.eclipse.jface.viewers.AbstractTreeViewer; |
|
11 | 12 |
import org.eclipse.jface.viewers.StructuredSelection; |
12 | 13 |
import org.eclipse.jface.viewers.TreeNode; |
13 | 14 |
import org.eclipse.jface.viewers.TreeViewer; |
... | ... | |
88 | 89 |
viewer.setContentProvider(new DerivateContentProvider()); |
89 | 90 |
labelProvider = new DerivateLabelProvider(); |
90 | 91 |
viewer.setLabelProvider(labelProvider); |
91 |
viewer.setAutoExpandLevel(2);
|
|
92 |
viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
|
|
92 | 93 |
// Propagate selection from viewer |
93 | 94 |
getSite().setSelectionProvider(viewer); |
94 | 95 |
|
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java | ||
---|---|---|
15 | 15 |
import org.eclipse.ui.actions.CompoundContributionItem; |
16 | 16 |
|
17 | 17 |
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy; |
18 |
import eu.etaxonomy.cdm.model.common.DefinedTerm; |
|
19 | 18 |
import eu.etaxonomy.cdm.model.media.Media; |
20 | 19 |
import eu.etaxonomy.cdm.model.molecular.DnaSample; |
21 | 20 |
import eu.etaxonomy.cdm.model.molecular.Sequence; |
... | ... | |
30 | 29 |
import eu.etaxonomy.taxeditor.editor.EditorUtil; |
31 | 30 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView; |
32 | 31 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
33 |
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider; |
|
34 | 32 |
|
35 | 33 |
/** |
36 | 34 |
* Context menu for the creation of derivates in the derivate hierarchy. |
... | ... | |
47 | 45 |
new ContributionItem() { |
48 | 46 |
@Override |
49 | 47 |
public void fill(Menu menu, int index) { |
50 |
DefinedTerm artworkTerm = DerivateLabelProvider.getArtworkTerm(); |
|
51 |
DefinedTerm livingPlantPhotoTerm = DerivateLabelProvider.getLivingPlantPhotoTerm(); |
|
52 |
DefinedTerm specimenScanTerm = DerivateLabelProvider.getSpecimenScanTerm(); |
|
53 | 48 |
MenuItem addItem = new MenuItem(menu, SWT.CASCADE); |
54 | 49 |
addItem.setText("Add..."); |
55 | 50 |
Menu addMenu = new Menu(menu); |
... | ... | |
64 | 59 |
new MenuItem(addMenu, SWT.SEPARATOR); |
65 | 60 |
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample); |
66 | 61 |
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample); |
67 |
createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm); |
|
68 |
createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm); |
|
69 |
createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm); |
|
62 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media); |
|
70 | 63 |
} |
71 | 64 |
//context menu for Specimen |
72 | 65 |
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){ |
73 | 66 |
|
74 | 67 |
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample); |
75 | 68 |
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample); |
76 |
createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm); |
|
77 |
createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm); |
|
78 |
createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm); |
|
69 |
createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media); |
|
79 | 70 |
} |
80 | 71 |
//context menu for TissueSample |
81 | 72 |
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){ |
... | ... | |
104 | 95 |
return contributionItems; |
105 | 96 |
} |
106 | 97 |
|
107 |
private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
|
|
98 |
private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) { |
|
108 | 99 |
MenuItem menuItem = new MenuItem(menu, SWT.NONE); |
109 | 100 |
menuItem.setText(menuLabel); |
110 |
menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, kindOfUnit)); |
|
111 |
} |
|
112 |
|
|
113 |
private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) { |
|
114 |
createMenuItem(menu, menuLabel, selectedNode, childClass, specimenType, null); |
|
101 |
menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType)); |
|
115 | 102 |
} |
116 | 103 |
|
117 | 104 |
private class WidgetSelectionListener extends SelectionAdapter{ |
... | ... | |
120 | 107 |
//TODO: we need a common interface for the generic like e.g. "IDerivateHierarchyNode" |
121 | 108 |
private final Class<?> childClass; |
122 | 109 |
private final SpecimenOrObservationType specimenType; |
123 |
private final DefinedTerm kindOfUnit; |
|
124 | 110 |
|
125 | 111 |
/** |
126 | 112 |
* @param selectedNode |
127 | 113 |
* @param specimenType |
128 |
* @param kindOfUnit |
|
129 | 114 |
*/ |
130 |
public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
|
|
115 |
public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) { |
|
131 | 116 |
this.selectedNode = selectedNode; |
132 | 117 |
this.childClass = childClass; |
133 | 118 |
this.specimenType = specimenType; |
134 |
this.kindOfUnit = kindOfUnit; |
|
135 | 119 |
} |
136 | 120 |
|
137 | 121 |
/* (non-Javadoc) |
... | ... | |
159 | 143 |
derivedUnit = MediaSpecimen.NewInstance(specimenType); |
160 | 144 |
//a MediaSpecimen with no media attached does not make sense. Hence we add one |
161 | 145 |
((MediaSpecimen)derivedUnit).setMediaSpecimen(Media.NewInstance()); |
162 |
derivedUnit.setKindOfUnit(kindOfUnit); |
|
163 | 146 |
} |
164 | 147 |
else{ |
165 | 148 |
derivedUnit = DerivedUnit.NewInstance(specimenType); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java | ||
---|---|---|
64 | 64 |
else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getSpecimenScanTerm())){ |
65 | 65 |
text = "Specimen Scan"; |
66 | 66 |
} |
67 |
else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getDetailImageTerm())){ |
|
68 |
text = "Detail Image"; |
|
69 |
} |
|
67 | 70 |
} |
68 | 71 |
if(text!=null){ |
69 | 72 |
super.setText(text); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java | ||
---|---|---|
49 | 49 |
private static DefinedTerm photoTerm = null; |
50 | 50 |
private static DefinedTerm drawingTerm = null; |
51 | 51 |
private static DefinedTerm specimenScanTerm = null; |
52 |
private static DefinedTerm detailImageTerm = null; |
|
52 | 53 |
|
53 | 54 |
private static void initializeTerms() { |
54 | 55 |
List<DefinedTerm> preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class); |
55 | 56 |
for (DefinedTerm definedTerm : preferredTerms) { |
56 |
if(definedTerm.getUuid().equals(UUID.fromString("04673952-dab1-42ff-b47a-5e847c350eaf"))){//photo
|
|
57 |
if(definedTerm.getUuid().equals(UUID.fromString("c5c59c42-f254-471e-96c6-09f459f7c903"))){
|
|
57 | 58 |
photoTerm = definedTerm; |
58 | 59 |
} |
59 |
else if(definedTerm.getUuid().equals(UUID.fromString("76204a15-098f-4afe-9e8f-fa344ee3fdbb"))){//drawing
|
|
60 |
else if(definedTerm.getUuid().equals(UUID.fromString("669b0409-4aa4-4695-aae4-a95ed27bad4c"))){
|
|
60 | 61 |
drawingTerm = definedTerm; |
61 | 62 |
} |
62 |
else if(definedTerm.getUuid().equals(UUID.fromString("c0b127d6-c849-48f9-bbc3-29e3337c1d03"))){//cover TODO temporary until new term is created
|
|
63 |
else if(definedTerm.getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){
|
|
63 | 64 |
specimenScanTerm = definedTerm; |
64 | 65 |
} |
66 |
else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){ |
|
67 |
detailImageTerm = definedTerm; |
|
68 |
} |
|
65 | 69 |
} |
66 | 70 |
} |
67 | 71 |
|
... | ... | |
86 | 90 |
return specimenScanTerm; |
87 | 91 |
} |
88 | 92 |
|
93 |
public static DefinedTerm getDetailImageTerm(){ |
|
94 |
if(detailImageTerm==null){ |
|
95 |
initializeTerms(); |
|
96 |
} |
|
97 |
return detailImageTerm; |
|
98 |
} |
|
99 |
|
|
89 | 100 |
|
90 | 101 |
/** {@inheritDoc} */ |
91 | 102 |
@Override |
... | ... | |
214 | 225 |
else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){ |
215 | 226 |
return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE); |
216 | 227 |
} |
217 |
else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.StillImage){
|
|
228 |
else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.Media){
|
|
218 | 229 |
if(derivedUnit.getKindOfUnit()!=null){ |
219 | 230 |
if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){ |
220 | 231 |
return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE); |
... | ... | |
225 | 236 |
else if(derivedUnit.getKindOfUnit().equals(getSpecimenScanTerm())){ |
226 | 237 |
return ImageResources.getImage(ImageResources.SPECIMEN_SCAN_DERIVATE); |
227 | 238 |
} |
239 |
else if(derivedUnit.getKindOfUnit().equals(getDetailImageTerm())){ |
|
240 |
return ImageResources.getImage(ImageResources.DETAIL_IMAGE_DERIVATE); |
|
241 |
} |
|
228 | 242 |
} |
229 | 243 |
} |
230 | 244 |
} |
Also available in: Unified diff