merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / key / PolytomousKeyNodeDetailElement.java
index 5d62b47787633755b418c78ae962835fbadacf98..05a9ee0be1f4197ea03269d7e91cce57c097b21d 100644 (file)
@@ -3,17 +3,16 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.key;
 
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
-import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.SelectionType;
-import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.forms.KeyStatementElement;
-import eu.etaxonomy.taxeditor.ui.forms.NumberWithLabelElement;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.KeyStatementElement;
+import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.selection.FeatureSelectionElement;
-import eu.etaxonomy.taxeditor.ui.selection.PolytomousKeyNodeSelectionElement;
-import eu.etaxonomy.taxeditor.ui.selection.PolytomousKeySelectionElement;
-import eu.etaxonomy.taxeditor.ui.selection.TaxonSelectionElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
  * @author n.hoffmann
@@ -24,13 +23,13 @@ public class PolytomousKeyNodeDetailElement extends
 
        private KeyStatementElement element_statement;
 
-       private FeatureSelectionElement selection_feature;
+       private EntitySelectionElement<Feature> selection_feature;
 
-       private TaxonSelectionElement selection_taxon;
+       private EntitySelectionElement<Taxon> selection_taxon;
 
-       private PolytomousKeySelectionElement selection_subkey;
+       private EntitySelectionElement<PolytomousKey> selection_subkey;
 
-       private PolytomousKeyNodeSelectionElement selection_otherNode;
+       private EntitySelectionElement<PolytomousKeyNode> selection_otherNode;
 
        private KeyStatementElement element_question;
 
@@ -44,45 +43,50 @@ public class PolytomousKeyNodeDetailElement extends
                        PolytomousKeyNode entity, int style) {
                if (!entity.isLeaf()) {
                        NumberWithLabelElement number_nodeNumber = formFactory
-                                       .createIntegerTextWithLabelElement(formElement,
+                                       .createNumberTextWithLabelElement(formElement,
                                                        "Node Number", entity.getNodeNumber(), style);
                        number_nodeNumber.setEnabled(false);
                }
 
+               if (entity.getParent() != null) {
+                       PolytomousKeyNode parent = entity.getParent();
+
+                       element_question = formFactory.createKeyStatementElement(
+                                       formElement, "Question", parent.getQuestion(), 50, style);
+
+                       selection_feature = formFactory
+                                       .createSelectionElement(Feature.class,
+                                                       getConversationHolder(), formElement, "Feature",
+                                                       parent.getFeature(),
+                                                       EntitySelectionElement.EDITABLE | EntitySelectionElement.DELETABLE, style);
+               }
+
                element_statement = formFactory.createKeyStatementElement(formElement,
                                "Statement", entity.getStatement(), 50, style);
 
-               selection_feature = (FeatureSelectionElement) formFactory
-                               .createSelectionElement(SelectionType.FEATURE,
-                                               getConversationHolder(), formElement, "Feature",
-                                               entity.getFeature(), FeatureSelectionElement.DEFAULT,
-                                               style);
-
-               if (entity.isLeaf()) {
-                       selection_taxon = (TaxonSelectionElement) formFactory
-                                       .createSelectionElement(SelectionType.TAXON,
+               //if (entity.isLeaf()) {
+                       selection_taxon = formFactory
+                                       .createSelectionElement(Taxon.class,
                                                        getConversationHolder(), formElement, "Taxon",
-                                                       entity.getTaxon(), TaxonSelectionElement.DEFAULT,
+                                                       entity.getTaxon(), EntitySelectionElement.NOTHING,
                                                        style);
-               }
+               //}
 
-               selection_subkey = (PolytomousKeySelectionElement) formFactory
-                               .createSelectionElement(SelectionType.POLYTOMOUS_KEY,
+               selection_subkey = formFactory
+                               .createSelectionElement(PolytomousKey.class,
                                                getConversationHolder(), formElement, "Subkey",
                                                entity.getSubkey(),
-                                               PolytomousKeySelectionElement.DEFAULT, style);
+                                               EntitySelectionElement.EDITABLE | EntitySelectionElement.DELETABLE, style);
 
-               selection_otherNode = (PolytomousKeyNodeSelectionElement) formFactory
-                               .createSelectionElement(SelectionType.POLYTOMOUS_KEY_NODE,
+               selection_otherNode = formFactory
+                               .createSelectionElement(PolytomousKeyNode.class,
                                                getConversationHolder(), formElement, "Other Node",
                                                entity.getOtherNode(),
-                                               PolytomousKeyNodeSelectionElement.DEFAULT, style);
+                                               EntitySelectionElement.DELETABLE, style);
 
                formFactory.createMultiLanguageTextElement(formElement,
                                "Modifying Text", entity.getModifyingText(), 50, style);
 
-               element_question = formFactory.createKeyStatementElement(formElement,
-                               "Question", entity.getQuestion(), 50, style);
        }
 
        /*
@@ -95,11 +99,12 @@ public class PolytomousKeyNodeDetailElement extends
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == element_question) {
-                       getEntity().setQuestion(element_question.getKeyStatement());
+                       getEntity().getParent().setQuestion(
+                                       element_question.getKeyStatement());
                } else if (eventSource == element_statement) {
                        getEntity().setStatement(element_statement.getKeyStatement());
                } else if (eventSource == selection_feature) {
-                       getEntity().setFeature(selection_feature.getEntity());
+                       getEntity().getParent().setFeature(selection_feature.getEntity());
                } else if (eventSource == selection_taxon) {
                        getEntity().setTaxon(selection_taxon.getEntity());
                } else if (eventSource == selection_subkey) {