fix #7794: add finish and open button to taxonnode wizard
authorKatja Luther <k.luther@bgbm.org>
Wed, 23 Jan 2019 14:19:16 +0000 (15:19 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 23 Jan 2019 14:19:16 +0000 (15:19 +0100)
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/NewTaxonNodeHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizardDialog.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeWizardPage.java

index b11cc4b029a5e8aea2c42cf8f1098c98f562a6ef..98f5613e41f6f92a49d728430e502eb7351b25fe 100644 (file)
@@ -29,6 +29,7 @@ import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
 import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizardDialog;
 
 /**
  *
@@ -45,7 +46,7 @@ public class NewTaxonNodeHandlerE4 {
 
                final NewTaxonNodeWizard wizard = new NewTaxonNodeWizard();
                wizard.init(null, selection);
-               final WizardDialog dialog = new WizardDialog(shell, wizard);
+               final WizardDialog dialog = new NewTaxonNodeWizardDialog(shell, wizard);
                wizard.addWizardPageListener(new IWizardPageListener() {
                    @Override
                    public void close() {
index bd4681a84fcdf4bd6f91fcc50c40e659ac74a599..edfcb12444fc28113d4989ad96638feb8da15cf1 100644 (file)
@@ -43,12 +43,13 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
     private boolean openEmptyEditor;
     private UUID generatedTaxonNodeUuid;
     private IWizardPageListener wizardPageListener;
+    private boolean isOpenInEditor = false;
 
     @Override
     public void addPages() {
         taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity(), wizardPageListener, true);
-
         addPage(taxonNodePage);
+
     }
 
     @Override
@@ -190,12 +191,18 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
 
 
     /**
-     * <p>openInEditor</p>
+     * <p>
+     * openInEditor
+     * </p>
      *
      * @return a boolean.
      */
-    public boolean openInEditor(){
-        return taxonNodePage.openInEditor();
+    public boolean openInEditor() {
+        return isOpenInEditor ;
+    }
+
+    public void setOpenInEditor(boolean isOpenInEditor) {
+        this.isOpenInEditor = isOpenInEditor;
     }
 
     /**
@@ -232,4 +239,6 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
         this.wizardPageListener = wizardPageListener;
     }
 
+
+
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizardDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizardDialog.java
new file mode 100755 (executable)
index 0000000..c1b0cf1
--- /dev/null
@@ -0,0 +1,76 @@
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.newWizard;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * @author k.luther
+ * @since 23.01.2019
+ *
+ */
+public class NewTaxonNodeWizardDialog extends WizardDialog {
+
+    private Button finishAndOpen;
+    private IWizard newTaxonNodeWizard;
+    /**
+     * @param parentShell
+     * @param newWizard
+     */
+    public NewTaxonNodeWizardDialog(Shell parentShell, IWizard newWizard) {
+        super(parentShell, newWizard);
+        newTaxonNodeWizard = newWizard;
+    }
+
+    @Override
+    protected void createButtonsForButtonBar(Composite parent) {
+        finishAndOpen = createButton(parent, IDialogConstants.FINISH_ID,"Finish and Open", false);
+
+        finishAndOpen.addSelectionListener(new SelectionListener() {
+            /*
+             * @see SelectionListener.widgetSelected (SelectionEvent)
+             */
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                ((NewTaxonNodeWizard)newTaxonNodeWizard).setOpenInEditor(true);
+                finishPressed();
+            }
+            /*
+             * @see SelectionListener.widgetDefaultSelected(SelectionEvent)
+             */
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+
+            }
+        });
+        super.createButtonsForButtonBar(parent);
+    }
+
+    @Override
+    public void updateButtons() {
+
+        boolean canFinish = newTaxonNodeWizard.canFinish();
+
+        finishAndOpen.setEnabled(canFinish);
+
+        super.updateButtons();
+     // finishAndOpen is default unless it is disabled and next is enabled
+        if (canFinish) {
+            getShell().setDefaultButton(finishAndOpen);
+        }
+    }
+
+}
index fa7e07fd7ffc2c54e46eb230d562b49a1d5fbd6f..9236879690b17afddb63e7a5f4cdb332bf7a328b 100644 (file)
@@ -68,7 +68,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
 
        private TaxonNodeAgentRelationCollectionSection selectionNodeAgentRelation;
 
-       private CheckboxElement checkbox_openInEditor;
+//     private CheckboxElement checkbox_openInEditor;
 
        private CheckboxElement checkbox_unplaced;
 
@@ -79,7 +79,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
 
     private MultilanguageTextElement multiLanguageTextExcludedNotes;
 
-       private boolean openInEditor;
+//     private boolean openInEditor;
 
        private boolean complete;
 
@@ -212,9 +212,9 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                    selectionNodeAgentRelation.setEntity((TaxonNode)entity);
                    selectionNodeAgentRelation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
                }
-               checkbox_openInEditor = formFactory.createCheckbox(formElement,
-                       "Open in Editor", true, style);
-               setOpenInEditor(true);
+//             checkbox_openInEditor = formFactory.createCheckbox(formElement,
+//                     "Open in Editor", true, style);
+//             setOpenInEditor(true);
        }
 
        private void preFillTaxonName() {
@@ -308,9 +308,9 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
 
             complete = CdmUtils.isNotBlank(textNewTaxonName.getText());
         }
-               if (eventSource == checkbox_openInEditor) {
-            setOpenInEditor(checkbox_openInEditor.getSelection());
-        }
+//             if (eventSource == checkbox_openInEditor) {
+//            setOpenInEditor(checkbox_openInEditor.getSelection());
+//        }
                if (eventSource == selectionNodeAgentRelation){
                   boolean allComplete = true;
                   for (ICdmFormElement element : selectionNodeAgentRelation.getElements()){
@@ -324,9 +324,9 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                return classification;
        }
 
-       public boolean isOpenInEditor() {
-               return openInEditor;
-       }
+//     public boolean isOpenInEditor() {
+//             return openInEditor;
+//     }
 
        public ITaxonTreeNode getParentTreeNode() {
                return parentTreeNode;
@@ -402,9 +402,9 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                }
        }
 
-       private void setOpenInEditor(boolean openInEditor) {
-               this.openInEditor = openInEditor;
-       }
+//     private void setOpenInEditor(boolean openInEditor) {
+//             this.openInEditor = openInEditor;
+//     }
 
        public String getTaxonName() {
         return textNewTaxonName.getText();
index 28f228e7399bddacd051deb32583566b5e0c0eb9..bf2de50cfb8a882e0f3ad8689e50405d278c2ced 100644 (file)
@@ -42,6 +42,7 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
 
     private ParseHandler parseHandler;
 
+
     /**
         * <p>
         * Constructor for TaxonNodeWizardPage.
@@ -79,18 +80,9 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
                return detailElement;
        }
 
-       /**
-        * <p>
-        * openInEditor
-        * </p>
-        *
-        * @return a boolean.
-        */
-       public boolean openInEditor() {
-               return ((TaxonNodeDetailElement) getDetailElement()).isOpenInEditor();
-       }
 
-       /** {@inheritDoc} */
+
+    /** {@inheritDoc} */
        @Override
        public void propertyChange(PropertyChangeEvent event) {
                checkComplete();