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 / TaxonNodeWizardPage.java
index 62d95788b0a643f6d1e38aca7021ce9a95b52bd1..f6e7a300d1b1105c24fe6edcf6364eadc497ff46 100644 (file)
@@ -16,9 +16,12 @@ import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
+import eu.etaxonomy.taxeditor.parser.ParseHandler;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -75,7 +78,7 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
                detailElement.setEntity(entity);
                formFactory.addPropertyChangeListener(this);
                if (isCreateNew){
-                   detailElement.getTextNewTaxonName().getMainControl().addListener(SWT.KeyDown, this);
+                   detailElement.getMainControl().addListener(SWT.KeyDown, this);
                }
                return detailElement;
        }
@@ -112,7 +115,7 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
                        setMessage("No classification set.", WARNING);
                }
                else if(isCreateNew ){
-                   if(detailElement.getTextNewTaxonName().getText().isEmpty()){
+                   if(detailElement.getTaxonName().isEmpty()){
                        setMessage("No taxon name set.", ERROR);
                    } else{
                        setMessage(null);
@@ -144,8 +147,11 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
                                .getParentTreeNode();
        }
 
-       public Taxon getTaxon() {
-               return ((TaxonNodeDetailElement) getDetailElement()).getTaxon();
+       public Taxon createTaxon() {
+               String taxonName = ((TaxonNodeDetailElement) getDetailElement()).getTaxonName();
+               Reference reference = ((TaxonNodeDetailElement) getDetailElement()).getReference();
+               NonViralName parseReferencedName = ParseHandler.parseReferencedName(taxonName, null);
+               return Taxon.NewInstance(parseReferencedName, reference);
        }
 
        /*
@@ -163,7 +169,7 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
     @Override
     public void handleEvent(Event event) {
         TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
-        if(event.widget == detailElement.getTextNewTaxonName().getMainControl()
+        if(event.widget == detailElement.getMainControl()
                 && event.keyCode == SWT.CR && isPageComplete()){
             wizardPageListener.close();
         }