Create taxon/parse name when wizard is closed and not with every key
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / classification / TaxonNodeDetailElement.java
index 5ac40f536071de654a8df5356bf562f4269081a4..6d347db6260973ab52da57d8d5cfdb5298475ba4 100644 (file)
@@ -11,6 +11,7 @@
 package eu.etaxonomy.taxeditor.ui.section.classification;
 
 import org.apache.commons.lang.StringUtils;
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
@@ -22,7 +23,6 @@ import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.parser.ParseHandler;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -55,8 +55,6 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
 
        private Taxon taxon;
 
-       private Reference secReference;
-
        private TextWithLabelElement textNewTaxonName;
 
        private TaxonNodeAgentRelationCollectionSection selectionNodeAgentRelation;
@@ -170,8 +168,6 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                        setClassification(selection_classification.getEntity());
                } else if (eventSource == selection_parentTaxonNode) {
                        setParentTreeNode(selection_parentTaxonNode.getEntity());
-               } else if (eventSource == selection_SecRef) {
-                       setSecReference(selection_SecRef.getEntity());
                } else if (eventSource == selection_reuseExistingTaxon) {
                                boolean enabled = selection_reuseExistingTaxon.getEntity() == null;
                                selection_reuseExistingName.setEnabled(enabled);
@@ -203,7 +199,6 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                        selection_reuseExistingTaxon.setEnabled(enabled);
                        selection_reuseExistingName.setEnabled(enabled);
 
-                       setTaxon(textNewTaxonName.getText());
                        complete = !textNewTaxonName.getText().isEmpty();
                } else if (eventSource == checkbox_openInEditor) {
                        setOpenInEditor(checkbox_openInEditor.getSelection());
@@ -229,10 +224,6 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                return parentTreeNode;
        }
 
-       public Taxon getTaxon() {
-               return taxon;
-       }
-
        private void setClassification(Classification classification) {
                this.classification = classification;
                setParentTreeNode(classification);
@@ -268,11 +259,6 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
         selection_SecRef.setEntity(((TaxonNode)treeNode).getTaxon().getSec());
        }
 
-       private void setSecReference(Reference secRef){
-               this.secReference = secRef;
-               setTaxon(textNewTaxonName.getText());
-       }
-
        private void setTaxon(Taxon taxon) {
                this.taxon = taxon;
                if (isCreateNew()){
@@ -281,24 +267,12 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                selection_SecRef.setEntity(taxon.getSec());
        }
 
-       private void setTaxon(String taxonNameString) {
-               TaxonNameBase taxonName = ParseHandler.parseReferencedName(
-                               taxonNameString, null);
-               setTaxon(taxonName);
-       }
-
        private void setTaxon(TaxonNameBase taxonName) {
                Reference secundum = null;
                if (getParentTreeNode() != null) {
                        if (this.selection_SecRef.getEntity() != null){
                                secundum = this.selection_SecRef.getEntity();
-                       } /*else if (getParentTreeNode() instanceof Classification) {
-                               secundum = ((Classification) getParentTreeNode())
-                                               .getReference();
-                       } else if (getParentTreeNode() instanceof TaxonNode) {
-                               secundum = ((TaxonNode) getParentTreeNode()).getTaxon()
-                                               .getSec();
-                       }*/
+                       }
                }
                if (taxonName != null){
                    taxon = Taxon.NewInstance(taxonName, secundum);
@@ -314,10 +288,18 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                this.openInEditor = openInEditor;
        }
 
-       public TextWithLabelElement getTextNewTaxonName() {
-        return textNewTaxonName;
+       public String getTaxonName() {
+        return textNewTaxonName.getText();
     }
 
+       public Reference getReference(){
+           return selection_SecRef.getSelection();
+       }
+
+       public Control getMainControl(){
+           return textNewTaxonName.getMainControl();
+       }
+
        public boolean isComplete() {
            boolean allComplete = true;
            if (!isCreateNew()){