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 / section / classification / TaxonNodeWizardPage.java
index df24d7c6c3fb97633b1c61a574f927b3f9709100..62d95788b0a643f6d1e38aca7021ce9a95b52bd1 100644 (file)
@@ -35,6 +35,7 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeNode> implements Listener{
 
     private final IWizardPageListener wizardPageListener;
+    private final boolean isCreateNew;
 
     /**
         * <p>
@@ -52,10 +53,12 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
      * @param closeOnEnterListener
         */
        public TaxonNodeWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ITaxonTreeNode entity, IWizardPageListener closeOnEnterListener) {
+                       ConversationHolder conversation, ITaxonTreeNode entity, IWizardPageListener closeOnEnterListener, boolean isCreateNew) {
                super(formFactory, conversation, entity);
                this.wizardPageListener = closeOnEnterListener;
-               setTitle("Create a new Taxon");
+               setTitle("TaxonNode");
+               this.isCreateNew = isCreateNew;
+
        }
 
        /*
@@ -68,10 +71,12 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
        /** {@inheritDoc} */
        @Override
        public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
-           TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement);
+           TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement, this.isCreateNew);
                detailElement.setEntity(entity);
                formFactory.addPropertyChangeListener(this);
-               detailElement.getTextNewTaxonName().getMainControl().addListener(SWT.KeyDown, this);
+               if (isCreateNew){
+                   detailElement.getTextNewTaxonName().getMainControl().addListener(SWT.KeyDown, this);
+               }
                return detailElement;
        }
 
@@ -96,9 +101,7 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
        /** {@inheritDoc} */
        @Override
        public void propertyChange(PropertyChangeEvent event) {
-               if (event.getSource() == getDetailElement()) {
-                       checkComplete();
-               }
+               checkComplete();
        }
 
        @Override
@@ -108,8 +111,14 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
                if (detailElement.getClassification() == null) {
                        setMessage("No classification set.", WARNING);
                }
-               else if(detailElement.getTextNewTaxonName().getText().isEmpty()){
-                   setMessage("No taxon name set.", ERROR);
+               else if(isCreateNew ){
+                   if(detailElement.getTextNewTaxonName().getText().isEmpty()){
+                       setMessage("No taxon name set.", ERROR);
+                   } else{
+                       setMessage(null);
+                   setPageComplete(true);
+                   return;
+                   }
                }
                else if(!detailElement.isComplete()){
                    setMessage("Not all required fields are filled.", ERROR);