add the possibility to add taxonnode agent relations to a taxonnode and to edit a...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / CdmFormFactory.java
index 3efeb550a425ac28619ff3a4522cc54ec84712a9..8052c82f410c67ed1d40c7a2ca290f10e7e8f5bf 100644 (file)
@@ -102,6 +102,7 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
@@ -127,6 +128,8 @@ import eu.etaxonomy.taxeditor.ui.section.agent.TeamMemberSection;
 import eu.etaxonomy.taxeditor.ui.section.agent.TeamOrPersonBaseDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.classification.ClassificationDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.classification.ClassificationDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeAgentRelationCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeAgentRelationCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.common.ReferenceEntityDetailElement;
@@ -1907,8 +1910,16 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public TaxonNodeDetailElement createTaxonNodeDetailElement(ICdmFormElement parentElement){
-        TaxonNodeDetailElement element = new TaxonNodeDetailElement(this, parentElement);
+    public TaxonNodeAgentRelationCollectionSection createTaxonNodeAgentRelationCollectionElement(ICdmFormElement parentElement, ConversationHolder conversation, int style){
+        TaxonNodeAgentRelationCollectionSection element = new TaxonNodeAgentRelationCollectionSection(this, conversation, parentElement, style);
+        adapt(element);
+        parentElement.addElement(element);
+
+        return element;
+    }
+
+    public TaxonNodeDetailElement createTaxonNodeDetailElement(ICdmFormElement parentElement, boolean createNew){
+        TaxonNodeDetailElement element = new TaxonNodeDetailElement(this, parentElement, createNew);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -2416,6 +2427,7 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+
     public AbstractEntityCollectionElement createEntityCollectionElement(AbstractFormSection parentElement,
             Object versionableEntity, SelectionListener removeListener, Color backgroundColor, int style) {
         AbstractEntityCollectionElement element = null;
@@ -2424,7 +2436,7 @@ public class CdmFormFactory extends FormToolkit {
 
         if (entity instanceof Annotation) {
             element = new AnnotationElement(this, parentElement, (Annotation) entity, removeListener, style);
-        } else if (entity instanceof Person) {
+        }else if (entity instanceof Person) {
             element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
         } else if (entity instanceof Credit) {
             element = new CreditElement(this, parentElement, (Credit) entity, removeListener, style);
@@ -2432,7 +2444,9 @@ public class CdmFormFactory extends FormToolkit {
             element = new ExtensionElement(this, parentElement, (Extension) entity, removeListener, style);
         } else if (entity instanceof Marker) {
             element = new MarkerElement(this, parentElement, (Marker) entity, removeListener, style);
-        } else if (entity instanceof Media) {
+        } else if (entity instanceof TaxonNodeAgentRelation) {
+            element = new TaxonNodeAgentRelationCollectionElement(this, parentElement, (TaxonNodeAgentRelation) entity, removeListener, backgroundColor, style);
+        }else if (entity instanceof Media) {
             element = new MediaMetaElement(this, parentElement, (Media) entity, removeListener, true, style);
         } else if (entity instanceof MediaRepresentation) {
             element = new MediaRepresentationElement(this, parentElement, (MediaRepresentation) entity, removeListener,
@@ -2450,7 +2464,11 @@ public class CdmFormFactory extends FormToolkit {
         } else if (entity instanceof DescriptionElementSource) {
             element = new DescriptionElementSourceElement(this, parentElement, (DescriptionElementSource) entity,
                     removeListener, style);
-        } else if (entity instanceof IdentifiableSource) {
+        } else if (entity instanceof TaxonNodeAgentRelation) {
+            element = new TaxonNodeAgentRelationCollectionElement(this, parentElement, (TaxonNodeAgentRelation) entity,
+                    removeListener,backgroundColor, style);
+        }
+        else if (entity instanceof IdentifiableSource) {
             element = new IdentifiableSourceElement(this, parentElement, (IdentifiableSource) entity, removeListener,
                     style);
         } else if (entity instanceof DefinedTerm) {
@@ -2567,6 +2585,7 @@ public class CdmFormFactory extends FormToolkit {
             element = new StatisticalMeasureCollectionElement(this, parentElement, (StatisticalMeasure) entity, removeListener, backgroundColor, style);
         }
 
+
         if (element == null) {
             MessagingUtils.messageDialog("No element for entity", this,
                     "Could not generate element for entity. Looks like the case is not handled already. Check implementation. Entity: "
@@ -2793,4 +2812,17 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+    /**
+     * @param formElement
+     * @param conversationHolder
+     * @param style
+     * @return
+     */
+    public TaxonNodeAgentRelationCollectionSection createTaxonNodeAgentRelationCollectionSection(
+            ICdmFormElement formElement, ConversationHolder conversationHolder, int style) {
+        TaxonNodeAgentRelationCollectionSection section = new TaxonNodeAgentRelationCollectionSection(this, conversationHolder, formElement, style);
+        addAndAdaptSection(formElement, section);
+        return section;
+    }
+
 }