Merge branch 'develop' into unify_derivative_views
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / derivate / DerivateViewEditorInput.java
index 08960026e0cafe68f8e4388581f2cffe5e3b668e..950533d113f7481f3717cbf08b95eb872a1055ab 100644 (file)
@@ -9,32 +9,39 @@
 */
 package eu.etaxonomy.taxeditor.editor.view.derivate;
 
+import java.util.Set;
 import java.util.UUID;
 
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPersistableElement;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
-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;
 
 /**
+ * Editor input for the {@link DerivateView} which holds the currently selected derivate for which
+ * the derivate hierarchy should be shown in the DerivateView.<br>
+ * It also holds a {@link SpecimenOrObservationBase} which is the root of the hierarchy. (both may be the same object)
  * @author pplitzner
  * @date 25.11.2013
  *
  */
 public class DerivateViewEditorInput implements IEditorInput {
 
-    private final UUID uuid;
+    /**
+     * The {@link UUID}s of the derivative entities
+     */
+    private Set<UUID> derivativeUUIDs;
 
     /**
-     * @param uuid
+     * Creates an editor input for the {@link DerivateView} with the currently selected derivates and the
+     * corresponding {@link FieldUnit}s (both may be the same object).
+     * @param derivateUuids the {@link UUID}s of the derivates for which the derivate hierarchy should be shown
+     * @param derivativeUUIDs the root of the hierarchy
      */
-    public DerivateViewEditorInput(UUID uuid) {
-        super();
-        this.uuid = uuid;
+    public DerivateViewEditorInput(Set<UUID> derivateUuids) {
+        this.derivativeUUIDs = derivateUuids;
     }
 
     /* (non-Javadoc)
@@ -68,7 +75,7 @@ public class DerivateViewEditorInput implements IEditorInput {
      */
     @Override
     public String getName() {
-        return uuid.toString();
+        return getEditorName();
     }
 
     /* (non-Javadoc)
@@ -84,29 +91,28 @@ public class DerivateViewEditorInput implements IEditorInput {
      */
     @Override
     public String getToolTipText() {
-        return uuid.toString();
+        return getEditorName();
     }
 
-    public SpecimenOrObservationBase<DerivedUnitFacadeCacheStrategy> getDerivate(){
-        IOccurrenceService service = CdmStore.getService(IOccurrenceService.class);
-        return service.find(uuid);
+    private String getEditorName() {
+            return "Derivative Editor";
     }
 
-
-    /* (non-Javadoc)
-     * @see java.lang.Object#hashCode()
+    /**
+     * @return the derivativeUUIDs
      */
+    public Set<UUID> getDerivativeUUIDs() {
+        return derivativeUUIDs;
+    }
+
     @Override
     public int hashCode() {
         final int prime = 31;
         int result = 1;
-        result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
+        result = prime * result + ((derivativeUUIDs == null) ? 0 : derivativeUUIDs.hashCode());
         return result;
     }
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         if (this == obj) {
@@ -119,11 +125,11 @@ public class DerivateViewEditorInput implements IEditorInput {
             return false;
         }
         DerivateViewEditorInput other = (DerivateViewEditorInput) obj;
-        if (uuid == null) {
-            if (other.uuid != null) {
+        if (derivativeUUIDs == null) {
+            if (other.derivativeUUIDs != null) {
                 return false;
             }
-        } else if (!uuid.equals(other.uuid)) {
+        } else if (!derivativeUUIDs.equals(other.derivativeUUIDs)) {
             return false;
         }
         return true;