Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / classification / TaxonNodeWizardPage.java
index df24d7c6c3fb97633b1c61a574f927b3f9709100..c5d680c0168fafc136744e8427a58c7612e281ea 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
  * Copyright (C) 2007 EDIT
  * European Distributed Institute of Taxonomy
 
 package eu.etaxonomy.taxeditor.ui.section.classification;
 
+import java.util.UUID;
+
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.api.service.dto.CreateTaxonDTO;
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
+import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizard;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -30,11 +35,12 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
  *
  * @author n.hoffmann
  * @created Sep 15, 2009
- * @version 1.0
  */
-public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeNode> implements Listener{
+public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<TaxonNode> implements Listener{
 
     private final IWizardPageListener wizardPageListener;
+    private final boolean isCreateNew;
+
 
     /**
         * <p>
@@ -52,53 +58,41 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
      * @param closeOnEnterListener
         */
        public TaxonNodeWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ITaxonTreeNode entity, IWizardPageListener closeOnEnterListener) {
+                       ConversationHolder conversation, TaxonNode entity, IWizardPageListener closeOnEnterListener, boolean isCreateNew) {
                super(formFactory, conversation, entity);
                this.wizardPageListener = closeOnEnterListener;
-               setTitle("Create a new Taxon");
+
+               if (isCreateNew){
+                   setTitle(Messages.TaxonNodeWizardPage_new);
+               }else{
+                   setTitle(Messages.TaxonNodeWizardPage_edit);
+               }
+               this.isCreateNew = isCreateNew;
+
+
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement
-        * (eu.etaxonomy.taxeditor.forms.ICdmFormElement)
-        */
-       /** {@inheritDoc} */
        @Override
        public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
-           TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement);
-               detailElement.setEntity(entity);
+           TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement, this.isCreateNew);
+
+           if (isCreateNew){
+                   detailElement.setParentTreeNode(((NewTaxonNodeWizard)getWizard()).getParentEntity());
+               }else{
+                   detailElement.setEntity(entity);
+               }
+//         detailElement.setPersistentBackground(Abstrac);;
+
                formFactory.addPropertyChangeListener(this);
-               detailElement.getTextNewTaxonName().getMainControl().addListener(SWT.KeyDown, this);
+//             if (isCreateNew){
+//                 detailElement.getMainControl().addListener(SWT.KeyDown, this);
+//             }
                return detailElement;
        }
 
-       /**
-        * <p>
-        * openInEditor
-        * </p>
-        *
-        * @return a boolean.
-        */
-       public boolean openInEditor() {
-               return ((TaxonNodeDetailElement) getDetailElement()).isOpenInEditor();
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
-        * .jface.util.PropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
        @Override
        public void propertyChange(PropertyChangeEvent event) {
-               if (event.getSource() == getDetailElement()) {
-                       checkComplete();
-               }
+               checkComplete();
        }
 
        @Override
@@ -106,13 +100,19 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
                TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
 
                if (detailElement.getClassification() == null) {
-                       setMessage("No classification set.", WARNING);
+                       setMessage(Messages.TaxonNodeWizardPage_no_classification, WARNING);
                }
-               else if(detailElement.getTextNewTaxonName().getText().isEmpty()){
-                   setMessage("No taxon name set.", ERROR);
+               else if(isCreateNew ){
+                   if(CdmUtils.isBlank(detailElement.getTaxonName())){
+                       setMessage(Messages.TaxonNodeWizardPage_no_taxon_name, ERROR);
+                   } else{
+                       setMessage(null);
+                   setPageComplete(true);
+                   return;
+                   }
                }
                else if(!detailElement.isComplete()){
-                   setMessage("Not all required fields are filled.", ERROR);
+                   setMessage(Messages.TaxonNodeWizardPage_not_all_required_fields, ERROR);
                }
                else {
                        setMessage(null);
@@ -123,28 +123,37 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
                setPageComplete(false);
        }
 
-       /**
-        * <p>
-        * Getter for the field <code>parentTreeNode</code>.
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
-        */
-       public ITaxonTreeNode getParentTreeNode() {
-               return ((TaxonNodeDetailElement) getDetailElement())
-                               .getParentTreeNode();
+       public TaxonNode getParentTreeNode() {
+               return ((TaxonNodeDetailElement) getDetailElement()).getParentTreeNode();
+       }
+
+       public CreateTaxonDTO createTaxon() {
+
+           UUID nameUuid = null;
+           String taxonNameString = null;
+           if (((TaxonNodeDetailElement) getDetailElement()).getExistingName() != null){
+               nameUuid = ((TaxonNodeDetailElement) getDetailElement()).getExistingName().getUuid();
+           }else{
+               taxonNameString = ((TaxonNodeDetailElement) getDetailElement()).getTaxonName();
+           }
+
+           UUID secUuid = null;
+           if (((TaxonNodeDetailElement) getDetailElement()).getSecReference() != null){
+               secUuid = ((TaxonNodeDetailElement) getDetailElement()).getSecReference().getUuid();
+           }
+           boolean isPublish = ((TaxonNodeDetailElement) getDetailElement()).is_publish();
+           String secMicroReference = ((TaxonNodeDetailElement) getDetailElement()).getMicroReference();
+
+           CreateTaxonDTO createDto = new CreateTaxonDTO(nameUuid, secUuid,secMicroReference,false, null,isPublish,
+                   taxonNameString, PreferencesUtil.getPreferredNomenclaturalCode(), null);
+
+        return createDto;
        }
 
-       public Taxon getTaxon() {
-               return ((TaxonNodeDetailElement) getDetailElement()).getTaxon();
+       public TaxonNode getTaxonNode(){
+          return ((TaxonNodeDetailElement) getDetailElement()).getEntity();
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#dispose()
-        */
-       /** {@inheritDoc} */
        @Override
        public void dispose() {
                formFactory.removePropertyChangeListener(this);
@@ -154,10 +163,9 @@ 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();
         }
     }
-
 }