merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / detail / DetailsViewer.java
index 6300a9538b7aacf767200a7c4f92591503ec6e18..a5df6cd3159d2602b3820e4cd3fa70aa25a506df 100644 (file)
@@ -36,6 +36,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
@@ -202,24 +203,30 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                        createTeamOrPersonBaseDetailSection(rootElement);
 
         } else if (input instanceof DescriptionBase) {
-            Set<Marker> descriptionMarkers = ((DescriptionBase) input).getMarkers();
-            MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(
-                    UsageTermCollection.uuidUseMarkerType);
-                       Boolean isUseDescription = false;
-                       for (Marker marker : descriptionMarkers) {
-                               if (marker.getMarkerType().equals(useMarkertype)) {
-                                       isUseDescription = true;
-                               }
-                       }
-            if (((DescriptionBase) input).isImageGallery()) {
-                               createImageGallerySection(rootElement);
-
-                       } else if (isUseDescription) {
-                               createUseDescriptionSection(rootElement);
-                       } else {
-                               createDescriptionSection(rootElement);
-
-                       }
+            if(input instanceof SpecimenDescription){
+                //TODO: add more sections to DetailsView for SpecimenDescription
+                createSpecimenDescriptionSection(rootElement);
+            }
+            else{
+                Set<Marker> descriptionMarkers = ((DescriptionBase) input).getMarkers();
+                MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(
+                        UsageTermCollection.uuidUseMarkerType);
+                Boolean isUseDescription = false;
+                for (Marker marker : descriptionMarkers) {
+                    if (marker.getMarkerType().equals(useMarkertype)) {
+                        isUseDescription = true;
+                    }
+                }
+                if (((DescriptionBase) input).isImageGallery()) {
+                    createImageGallerySection(rootElement);
+
+                } else if (isUseDescription) {
+                    createUseDescriptionSection(rootElement);
+                } else {
+                    createDescriptionSection(rootElement);
+
+                }
+            }
         } else if (input instanceof DescriptionElementBase) {
             Set<Marker> descriptionMarkers = ((DescriptionElementBase) input).getInDescription().getMarkers();
             MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(
@@ -514,6 +521,17 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                addPart(scopeSection);
        }
 
+       /**
+        * createDescriptionSection
+        *
+        * @param parent
+        */
+       private void createSpecimenDescriptionSection(RootElement parent) {
+           destroySections();
+           DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+           addPart(descriptionDetailSection);
+       }
+
        /**
         * Creates the use Description section
      *