- added derivate hierarchy section
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 3 Mar 2015 11:49:51 +0000 (11:49 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 3 Mar 2015 11:49:51 +0000 (11:49 +0000)
 - refactored DerivateContentProvider

.gitattributes
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenHierarchyDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenHierarchyDetailSection.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java with 51% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateContentProvider.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java with 90% similarity]

index fcbb12d05dd24da386bfd3b6aaed3521497ed302..4b633aea8337a0e6dc3f09ad6fefa41ee0643698 100644 (file)
@@ -542,7 +542,6 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/d
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientReferenceService.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTermService.java -text
-eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDragListener.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java -text
@@ -1634,8 +1633,6 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occ
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseWizardPage.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralWizardPage.java -text
@@ -1659,6 +1656,8 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occ
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SourceCollectionDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenHierarchyDetailElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenHierarchyDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenAbstractDeterminationEventDetailSection.java -text
@@ -1782,6 +1781,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasourc
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/DeleteDataSourceHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/EditDataSourceHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/UpdateDataSourceHandler.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateContentProvider.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchComposite.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchCompositeController.java -text
index 68445078d0e23e189d5822ff05a32bc6e8b67e7e..8dc0e35a4d194e0638e7354ff64d19437d6ae50b 100644 (file)
@@ -46,6 +46,7 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateContentProvider;
 import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
 
 /**
@@ -104,7 +105,7 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
         generateMultiLinkSingleReads();
         labelProvider.setMultiLinkSingleReads(multiLinkSingleReads);
         IEditorInput editorInput = getEditorInput();
-        viewer.setInput(editorInput);
+        viewer.setInput(((DerivateViewEditorInput) editorInput).getRootUUIDs());
         //set selection to selected derivate if only one was selected
         if(editorInput instanceof DerivateViewEditorInput){
             Set<UUID> derivateUUIDs = ((DerivateViewEditorInput) editorInput).getDerivateUUIDs();
index e4b2e38747b2f401072b435a986e435e19600bc9..c9602541c4e83934303c76844121b2f12c88d625 100644 (file)
@@ -204,8 +204,6 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectionDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.CurrentDeterminationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitFacadeDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitFacadeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailElement;
@@ -224,6 +222,8 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.OriginalLabelDataSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.SourceCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenHierarchyDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenHierarchyDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenCurrentDeterminationDetailSection;
@@ -1570,12 +1570,6 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    public DerivedUnitFacadeDetailSection createDerivedUnitFacadeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DerivedUnitFacadeDetailSection section = new DerivedUnitFacadeDetailSection(this, conversation, parentElement, selectionProvider, style);
-        addAndAdaptSection(parentElement, section);
-        return section;
-    }
-
     public FieldUnitDetailSection createFieldUnitDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
         FieldUnitDetailSection section = new FieldUnitDetailSection(this, conversation, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
@@ -1588,6 +1582,12 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+    public SpecimenHierarchyDetailSection createSpecimenHierarchyDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        SpecimenHierarchyDetailSection section = new SpecimenHierarchyDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
     public DerivedUnitBaseDetailSection createDerivedUnitBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
         DerivedUnitBaseDetailSection section = new DerivedUnitBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
@@ -1931,12 +1931,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public DerivedUnitFacadeDetailElement createDerivedUnitFacadeDetailElement(ICdmFormElement parentElement){
-        DerivedUnitFacadeDetailElement element = new DerivedUnitFacadeDetailElement(this, parentElement);
-        addAndAdaptElement(parentElement, element);
-        return element;
-    }
-
     public NonViralNameDetailElement createNonViralNameDetailElement(ICdmFormElement parentElement){
         NonViralNameDetailElement element = new NonViralNameDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
@@ -2106,6 +2100,11 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+    public SpecimenHierarchyDetailElement createSpecimenHierarchyDetailElement(ICdmFormElement parentElement) {
+        SpecimenHierarchyDetailElement element = new SpecimenHierarchyDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
 
     public DerivedUnitBaseDetailElement createDerivedUnitBaseDetailElement(ICdmFormElement parentElement) {
         DerivedUnitBaseDetailElement element = new DerivedUnitBaseDetailElement(this, parentElement);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java
deleted file mode 100644 (file)
index a736d50..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.ui.section.occurrence;
-
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
-
-/**
- * <p>DerivedUnitFacadeDetailElement class.</p>
- *
- * @author n.hoffmann
- * @created Jun 17, 2010
- * @version 1.0
- */
-public class DerivedUnitFacadeDetailElement extends AbstractCdmDetailElement<DerivedUnit> {
-
-       private DerivedUnitFacade facade;
-
-       private final DerivedUnitFacadeConfigurator configurator;
-
-       private DerivedUnitGeneralDetailSection section_general;
-       private GatheringEventDetailSection section_gatheringEvent;
-       private DerivedUnitBaseDetailSection section_derivedUnitBase;
-       private FieldUnitDetailSection section_fieldUnit;
-
-       /**
-        * <p>Constructor for DerivedUnitFacadeDetailElement.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        */
-       public DerivedUnitFacadeDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement) {
-               super(formFactory, formElement);
-               configurator = DerivedUnitFacadeConfigurator.NewInstance();
-               configurator.setMoveDerivedUnitMediaToGallery(true);
-               configurator.setMoveFieldObjectMediaToGallery(true);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void setEntity(DerivedUnit entity) {
-               super.setEntity(entity);
-               try {
-                       facade = DerivedUnitFacade.NewInstance(entity, configurator);
-
-                       section_general.setEntity(facade);
-                       section_derivedUnitBase.setEntity(facade);
-                       section_gatheringEvent.setEntity(facade);
-                       section_fieldUnit.setEntity(facade);
-
-               } catch (DerivedUnitFacadeNotSupportedException e) {
-                       MessagingUtils.messageDialog("Error", this, "SpecimenFacadeNotSupportedException while inititating SpecimenFacade", e);
-               }
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void removeElements() {
-               super.removeElements();
-               if(section_general != null){
-                       removeControl(section_general);
-                       section_general.dispose();
-                       section_general = null;
-               }
-               if(section_derivedUnitBase != null){
-                       removeControl(section_derivedUnitBase);
-                       section_derivedUnitBase.dispose();
-                       section_derivedUnitBase = null;
-               }
-               if(section_gatheringEvent != null){
-                       removeControl(section_gatheringEvent);
-                       section_gatheringEvent.dispose();
-                       section_gatheringEvent = null;
-               }
-               if(section_fieldUnit != null){
-                       removeControl(section_fieldUnit);
-                       section_fieldUnit.dispose();
-                       section_fieldUnit = null;
-               }
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public DerivedUnit getEntity() {
-               throw new IllegalArgumentException("Should not be called");
-       }
-
-       /**
-        * <p>Getter for the field <code>facade</code>.</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.facade.DerivedUnitFacade} object.
-        */
-       public DerivedUnitFacade getFacade(){
-               return facade;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       protected void createControls(ICdmFormElement formElement,
-                       DerivedUnit entity, int style) {
-
-               section_general = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-               section_general.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-               addControl(section_general);
-               addElement(section_general);
-
-               section_gatheringEvent = formFactory.createGatheringEventDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
-               section_gatheringEvent.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-               addControl(section_gatheringEvent);
-               addElement(section_gatheringEvent);
-
-               section_fieldUnit = formFactory.createFieldUnitDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
-               section_fieldUnit.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-               addControl(section_fieldUnit);
-               addElement(section_fieldUnit);
-
-               section_derivedUnitBase = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
-               section_derivedUnitBase.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-               addControl(section_derivedUnitBase);
-               addElement(section_derivedUnitBase);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void handleEvent(Object eventSource) {
-               if(eventSource == section_derivedUnitBase || eventSource == section_gatheringEvent || eventSource == section_fieldUnit){
-                       if(getParentElement() instanceof AbstractCdmDetailSection) {
-                ((AbstractCdmDetailSection) getParentElement()).updateTitle();
-            }
-               }
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenHierarchyDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenHierarchyDetailElement.java
new file mode 100644 (file)
index 0000000..70623d7
--- /dev/null
@@ -0,0 +1,87 @@
+// $Id$
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.ui.section.occurrence;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.UUID;
+
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Tree;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateContentProvider;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 16, 2010
+ * @version 1.0
+ */
+public class SpecimenHierarchyDetailElement extends AbstractCdmDetailElement<SpecimenOrObservationBase<?>> {
+
+    /**
+     * @param formFactory
+     * @param formElement
+     */
+    public SpecimenHierarchyDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
+     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
+     */
+    @Override
+    protected void createControls(ICdmFormElement formElement, SpecimenOrObservationBase<?> entity, int style) {
+        TreeViewer viewer = new TreeViewer(getLayoutComposite());
+        DerivateLabelProvider labelProvider = new DerivateLabelProvider();
+        Tree tree = viewer.getTree();
+
+        labelProvider.setConversation(getConversationHolder());
+        tree.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
+        viewer.setContentProvider(new DerivateContentProvider());
+        viewer.setLabelProvider(labelProvider);
+        //get root (field unit)
+        Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(entity.getUuid());
+        Collection<UUID> fieldUnitUuids = new HashSet<UUID>();
+        for (FieldUnit fieldUnit : fieldUnits) {
+            fieldUnitUuids.add(fieldUnit.getUuid());
+        }
+        viewer.setInput(Collections.singleton(fieldUnitUuids));
+
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
+     * .lang.Object)
+     */
+    @Override
+    public void handleEvent(Object eventSource) {
+    }
+
+}
@@ -13,47 +13,50 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
- * <p>DerivedUnitFacadeDetailSection class.</p>
- *
  * @author n.hoffmann
- * @created Jun 17, 2010
+ * @created Dec 16, 2010
  * @version 1.0
  */
-public class DerivedUnitFacadeDetailSection extends AbstractCdmDetailSection<DerivedUnit> {
-
-       /**
-        * <p>Constructor for DerivedUnitFacadeDetailSection.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style a int.
+public class SpecimenHierarchyDetailSection extends AbstractCdmDetailSection<SpecimenOrObservationBase<?>> {
+
+       private SpecimenHierarchyDetailElement specimenHierarchyDetailElement;
+
+    /**
+        * @param formFactory
+        * @param conversation
+        * @param parentElement
+        * @param selectionProvider
+        * @param style
         */
-       public DerivedUnitFacadeDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
-                       ICdmFormElement parentElement,
+       public SpecimenHierarchyDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
                super(formFactory, conversation, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
+        */
        @Override
        public String getHeading() {
-               return "Unit";
+               return "Specimen Hierarchy";
        }
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
         */
        @Override
-       protected AbstractCdmDetailElement<DerivedUnit> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnit> parentElement, int style) {
-           return formFactory.createDerivedUnitFacadeDetailElement(parentElement);
+       protected AbstractCdmDetailElement<SpecimenOrObservationBase<?>> createCdmDetailElement(AbstractCdmDetailSection<SpecimenOrObservationBase<?>> parentElement, int style) {
+           specimenHierarchyDetailElement = formFactory.createSpecimenHierarchyDetailElement(parentElement);
+        return specimenHierarchyDetailElement;
        }
+
 }
@@ -1,4 +1,4 @@
-package eu.etaxonomy.taxeditor.editor.view.derivate;
+package eu.etaxonomy.taxeditor.view.derivateSearch;
 
 import java.util.ArrayList;
 import java.util.LinkedHashSet;
@@ -35,13 +35,15 @@ public class DerivateContentProvider implements ITreeContentProvider {
        @Override
        public Object[] getElements(Object inputElement) {
            List<TreeNode> rootElements = new ArrayList<TreeNode>();
-           if(inputElement instanceof DerivateViewEditorInput){
-               Set<UUID> rootUUIDs = ((DerivateViewEditorInput) inputElement).getRootUUIDs();
-               for (UUID uuid : rootUUIDs) {
-                   SpecimenOrObservationBase<?> rootElement = CdmStore.getService(IOccurrenceService.class).load(uuid);
-                if(rootElement!=null){
-                    rootElements.add(new TreeNode(rootElement));
-                }
+           if(inputElement instanceof Set){
+               for (Object o: (Set)inputElement) {
+                   if(o instanceof UUID){
+                       UUID uuid = (UUID)o;
+                       SpecimenOrObservationBase<?> rootElement = CdmStore.getService(IOccurrenceService.class).load(uuid);
+                       if(rootElement!=null){
+                           rootElements.add(new TreeNode(rootElement));
+                       }
+                   }
             }
            }
            return rootElements.toArray();