From 5a308df48a3122156cddb2b50bd3959bcc1e8aee Mon Sep 17 00:00:00 2001
From: Patric Plitzner
Date: Thu, 3 Jul 2014 13:36:19 +0000
Subject: [PATCH] - generalized adding MediaSpecimen in DerivateView
---
.../editor/view/derivate/DerivateView.java | 3 ++-
.../CreateDerivateContextMenu.java | 27 ++++---------------
.../MediaSpecimenGeneralDetailSection.java | 3 +++
.../derivateSearch/DerivateLabelProvider.java | 22 ++++++++++++---
4 files changed, 28 insertions(+), 27 deletions(-)
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
index 06aaa37cd..bab27cfed 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
@@ -8,6 +8,7 @@ import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.jface.viewers.TreeViewer;
@@ -88,7 +89,7 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
viewer.setContentProvider(new DerivateContentProvider());
labelProvider = new DerivateLabelProvider();
viewer.setLabelProvider(labelProvider);
- viewer.setAutoExpandLevel(2);
+ viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
// Propagate selection from viewer
getSite().setSelectionProvider(viewer);
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java
index c21f3696a..b956e86c7 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java
@@ -15,7 +15,6 @@ import org.eclipse.ui.PlatformUI;
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;
@@ -30,7 +29,6 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
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.
@@ -47,9 +45,6 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
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);
@@ -64,18 +59,14 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
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, specimenScanTerm);
- createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
- createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
+ createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
}
//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, specimenScanTerm);
- createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
- createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
+ createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
}
//context menu for TissueSample
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
@@ -104,14 +95,10 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
return contributionItems;
}
- private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
+ private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class> childClass, SpecimenOrObservationType specimenType) {
MenuItem menuItem = new MenuItem(menu, SWT.NONE);
menuItem.setText(menuLabel);
- 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);
+ menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType));
}
private class WidgetSelectionListener extends SelectionAdapter{
@@ -120,18 +107,15 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
//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, DefinedTerm kindOfUnit) {
+ public WidgetSelectionListener(TreeNode selectedNode, Class> childClass, SpecimenOrObservationType specimenType) {
this.selectedNode = selectedNode;
this.childClass = childClass;
this.specimenType = specimenType;
- this.kindOfUnit = kindOfUnit;
}
/* (non-Javadoc)
@@ -159,7 +143,6 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
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);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java
index b4da94565..48df3b4ab 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java
@@ -64,6 +64,9 @@ public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection
else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getSpecimenScanTerm())){
text = "Specimen Scan";
}
+ else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getDetailImageTerm())){
+ text = "Detail Image";
+ }
}
if(text!=null){
super.setText(text);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
index ba8fa96b5..d628deaaa 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
@@ -49,19 +49,23 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
private static DefinedTerm photoTerm = null;
private static DefinedTerm drawingTerm = null;
private static DefinedTerm specimenScanTerm = null;
+ private static DefinedTerm detailImageTerm = null;
private static void initializeTerms() {
List preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class);
for (DefinedTerm definedTerm : preferredTerms) {
- if(definedTerm.getUuid().equals(UUID.fromString("04673952-dab1-42ff-b47a-5e847c350eaf"))){//photo
+ if(definedTerm.getUuid().equals(UUID.fromString("c5c59c42-f254-471e-96c6-09f459f7c903"))){
photoTerm = definedTerm;
}
- else if(definedTerm.getUuid().equals(UUID.fromString("76204a15-098f-4afe-9e8f-fa344ee3fdbb"))){//drawing
+ else if(definedTerm.getUuid().equals(UUID.fromString("669b0409-4aa4-4695-aae4-a95ed27bad4c"))){
drawingTerm = definedTerm;
}
- else if(definedTerm.getUuid().equals(UUID.fromString("c0b127d6-c849-48f9-bbc3-29e3337c1d03"))){//cover TODO temporary until new term is created
+ else if(definedTerm.getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){
specimenScanTerm = definedTerm;
}
+ else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
+ detailImageTerm = definedTerm;
+ }
}
}
@@ -86,6 +90,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
return specimenScanTerm;
}
+ public static DefinedTerm getDetailImageTerm(){
+ if(detailImageTerm==null){
+ initializeTerms();
+ }
+ return detailImageTerm;
+ }
+
/** {@inheritDoc} */
@Override
@@ -214,7 +225,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
}
- else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.StillImage){
+ else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.Media){
if(derivedUnit.getKindOfUnit()!=null){
if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
@@ -225,6 +236,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
else if(derivedUnit.getKindOfUnit().equals(getSpecimenScanTerm())){
return ImageResources.getImage(ImageResources.SPECIMEN_SCAN_DERIVATE);
}
+ else if(derivedUnit.getKindOfUnit().equals(getDetailImageTerm())){
+ return ImageResources.getImage(ImageResources.DETAIL_IMAGE_DERIVATE);
+ }
}
}
}
--
2.34.1