- added Identifier details section
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 3 Mar 2015 14:31:03 +0000 (14:31 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 3 Mar 2015 14:31:03 +0000 (14:31 +0000)
.gitattributes
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/identifier/IdentifierDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java [new file with mode: 0644]

index 4b633aea8337a0e6dc3f09ad6fefa41ee0643698..292f101cf9512954698985d661e6b37aee591019 100644 (file)
@@ -1584,6 +1584,8 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/gro
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupSelectionElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/MemberDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/MemberDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/GeographicalScopeDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailSection.java -text
index c9602541c4e83934303c76844121b2f12c88d625..e2d81214b845b12d84e2b310de88b164a724c4be 100644 (file)
@@ -165,6 +165,8 @@ import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.key.GeographicalScopeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection;
@@ -235,6 +237,7 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecime
 import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenSourceCollectionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractSampleDesignationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoCollectionDetailSection;
@@ -2296,6 +2299,12 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+    public IdentifierDetailSection createIdentifierDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        IdentifierDetailSection section = new IdentifierDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
     public CurrentSampleDesignationDetailSection createCurrentSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         CurrentSampleDesignationDetailSection section = new CurrentSampleDesignationDetailSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
@@ -2531,7 +2540,12 @@ public class CdmFormFactory extends FormToolkit {
                 element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
             }
         } else if (entity instanceof Identifier) {
-            element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
+            if(parentElement instanceof AbstractSampleDesignationDetailSection){
+                element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
+            }
+            else{
+                element = new IdentifierDetailElement(this, parentElement, (Identifier) entity, removeListener, style);
+            }
         }
 
         if (element == null) {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailElement.java
new file mode 100644 (file)
index 0000000..9171b03
--- /dev/null
@@ -0,0 +1,111 @@
+// $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.identifier;
+
+import org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+
+/**
+ * <p>
+ * CollectionDetailElement class.
+ * </p>
+ *
+ * @author n.hoffmann
+ * @created Oct 13, 2010
+ * @version 1.0
+ */
+public class IdentifierDetailElement extends AbstractEntityCollectionElement<Identifier> {
+
+       private TextWithLabelElement textIdentifier;
+
+       private TermComboElement<DefinedTerm> comboIdentifierType;
+
+       /**
+     * <p>
+     * Constructor for CollectingAreasDetailElement.
+     * </p>
+     *
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param section
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
+     *            object.
+     * @param entity
+     *            a {@link eu.etaxonomy.cdm.model.location.NamedArea} object.
+     * @param removeListener
+     *            a {@link org.eclipse.swt.events.SelectionListener} object.
+     * @param style
+     *            a int.
+     */
+    public IdentifierDetailElement(CdmFormFactory formFactory,
+            AbstractFormSection section, Identifier entity,
+            SelectionListener removeListener, int style) {
+        super(formFactory, section, entity, removeListener, null, style);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#setEntity
+     * (java.lang.Object)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void setEntity(Identifier entity) {
+        this.entity = entity;
+        textIdentifier.setText(entity.getIdentifier());
+        comboIdentifierType.setSelection(entity.getType());
+    }
+
+       /*
+        * (non-Javadoc)
+        *
+        * @see
+        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
+        * (eu.etaxonomy.taxeditor.forms.ICdmFormElement,
+        * eu.etaxonomy.cdm.model.common.IAnnotatableEntity, int)
+        */
+       /** {@inheritDoc} */
+       @Override
+    public void createControls(ICdmFormElement formElement, int style) {
+               textIdentifier = formFactory.createTextWithLabelElement(formElement, "Identifier", null, style);
+               comboIdentifierType = formFactory.createDefinedTermComboElement(TermType.IdentifierType, formElement, "Type", null, style);
+       }
+
+       /*
+        * (non-Javadoc)
+        *
+        * @see
+        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
+        * .lang.Object)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public void handleEvent(Object eventSource) {
+               if (eventSource == textIdentifier) {
+                       getEntity().setIdentifier(textIdentifier.getText());
+               } else if (eventSource == comboIdentifierType) {
+                       getEntity().setType(comboIdentifierType.getSelection());
+               }
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java
new file mode 100644 (file)
index 0000000..03e13f8
--- /dev/null
@@ -0,0 +1,144 @@
+// $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.identifier;
+
+import java.util.Collection;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+
+/**
+ * <p>
+ * CollectingAreasDetailSection class.
+ * </p>
+ *
+ * @author n.hoffmann
+ * @created Oct 14, 2010
+ * @version 1.0
+ */
+public class IdentifierDetailSection extends AbstractEntityCollectionSection<DerivedUnitFacade, Identifier> {
+
+       /**
+        * <p>Constructor for CollectingAreasDetailSection.</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 style a int.
+        */
+       public IdentifierDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
+               super(formFactory, conversation, parentElement, "Identifiers", style);
+       }
+
+       @Override
+    protected Control createToolbar() {
+        ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
+
+        Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
+            /* (non-Javadoc)
+             * @see org.eclipse.jface.action.Action#run()
+             */
+            @Override
+            public void run() {
+                Identifier element = createNewElement();
+                if(element != null){
+                    if(! getSection().isExpanded()) {
+                        getSection().setExpanded(true);
+                    }
+                    internalUpdateSection(true);
+                }
+            }
+        };
+        addAction.setImageDescriptor(new ImageDescriptor() {
+
+            @Override
+            public ImageData getImageData() {
+                return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
+            }
+        });
+        addAction.setToolTipText(getTooltipString());
+
+        toolBarManager.add(addAction);
+
+        return toolBarManager.createControl(this);
+    }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public Collection<Identifier> getCollection(DerivedUnitFacade entity) {
+               return entity.getIdentifiers();
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
+        */
+       /** {@inheritDoc} */
+       @Override
+       public Identifier createNewElement() {
+               return Identifier.NewInstance(getEntity().baseUnit(), null, null);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public void addElement(Identifier element) {
+               getEntity().addIdentifier(element);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public void removeElement(Identifier element) {
+           getEntity().removeIdentifier(getEntity().getIdentifiers().get(0));
+           getConversationHolder().commit();
+           System.out.println();
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
+        */
+       /** {@inheritDoc} */
+       @Override
+       public String getEmptyString() {
+               return "No identifiers yet.";
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected String getTooltipString() {
+               return "Add an identifier";
+       }
+
+}