ref #7428: move updateViews into AbstractUtility
authorKatja Luther <k.luther@bgbm.org>
Wed, 13 Mar 2019 15:00:38 +0000 (16:00 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 13 Mar 2019 15:00:38 +0000 (16:00 +0100)
12 files changed:
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/TaxonNameEditorE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/Messages.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/messages.properties
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/messages_de.properties
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetPublishFlagForSubtreeHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetSecReferenceForSubtreeHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetPublishForSubtreeOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetSecundumForSubtreeOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/UpdateSubtreeOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/ITaxonEditor.java

index b323d84626a11f3c698c1f59e0f0be8bb6ce9507..a3adb9baa61b0c6aa3ffda2d735291d9658fa3ce 100644 (file)
@@ -300,4 +300,13 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
         return null;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void update() {
+        input.performSearch(lastQuery, getSelection());
+
+    }
+
 }
index 6156c2b832c3e6a7cb79e388912cb0bc61161c9b..8143cec48e01d35037e0207bbfc880800e38c1dc 100644 (file)
@@ -38,6 +38,8 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetEditor;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
 import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
@@ -235,6 +237,29 @@ public class EditorUtil extends AbstractUtility {
         return dirtyParts;
     }
 
+    public static Collection<MPart> checkForTaxonChanges(UUID taxonUUID, EPartService partService ){
+        Collection<MPart> parts = partService.getParts();
+        Collection<MPart> dirtyParts = new HashSet();
+        //check if part is already opened
+        boolean isDirty = false;
+        for (MPart part : parts) {
+            if(part.getObject() instanceof TaxonNameEditorE4
+                    && ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null
+                    && ((TaxonNameEditorE4) part.getObject()).getTaxon().getUuid().equals(taxonUUID)){
+                if (part.isDirty()){
+                    dirtyParts.add(part);
+                }
+
+                break;
+            }else if (taxonUUID == null){
+                if (part.isDirty() && (part.getObject() instanceof TaxonNameEditorE4 || (part.getObject() instanceof BulkEditorE4 && ((BulkEditorE4)part.getObject()).getEditorInput() instanceof TaxonEditorInput))){
+                    dirtyParts.add(part);
+                }
+            }
+        }
+        return dirtyParts;
+    }
+
        /**
         * An uninitialized taxon is one that hasn't been saved yet. As such, it
         * should appear in neither the list of recent names nor in the taxonomic
@@ -419,4 +444,5 @@ public class EditorUtil extends AbstractUtility {
 
         }
     }
+
 }
index 06210fe9aa9ed42611fd684eb3b70bf9588a52fc..bcf42d545cbbc538b168fbeb33e153bf641445b2 100644 (file)
@@ -31,9 +31,12 @@ import org.eclipse.e4.ui.di.Focus;
 import org.eclipse.e4.ui.di.Persist;
 import org.eclipse.e4.ui.di.UIEventTopic;
 import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.e4.ui.model.application.ui.MDirtyable;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.services.EMenuService;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
@@ -69,6 +72,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
 import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
 import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
+import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupE4;
 import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainerE4;
@@ -139,6 +143,9 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     @Inject
     private MDirtyable dirty;
 
+    @Inject
+    private MApplication application;
+
     private MPart thisPart;
 
     private TaxonEditorInputE4 input;
@@ -778,4 +785,15 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
 
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void update() {
+        EPartService partService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EPartService.class);
+        EModelService modelService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EModelService.class);
+        EditorUtil.openTaxonBaseE4(this.getTaxon().getUuid(), modelService, partService, application);
+
+    }
+
 }
index 27660d242b96b5b69d3841d69e45bc4ba1a347fc..31dffaff959f977b1ea758bbb2d3071c230ca33b 100644 (file)
@@ -182,7 +182,11 @@ public class Messages extends NLS {
     public static String TaxonNavigatorLabels_SET_PUBLISH_FOR_CHILDREN;
        public static String TaxonNavigatorLabels_ACCEPTED_TAXA_NEED_TO_BE_FROM_SAME_CLASSIFICATION;
     public static String TaxonNavigatorLabels_SET_UNPLACED;
+    public static String NO;
+    public static String YES;
 
+    public static String SetPublishFlagForSubtreeHandlerE4_UnsavedChanges;
+    public static String SetPublishFlagForSubtreeHandlerE4_UnsavedChangesQuestion;
     static {
         // initialize resource bundle
         NLS.initializeMessages(BUNDLE_NAME, Messages.class);
index d4caf08bf0884cb086b37726c1bbb0bb3bd468ce..26869bab2ae963df1573f2ba5f0105fb227b1fc5 100644 (file)
@@ -158,3 +158,7 @@ TreeNodeDropAdapter_UNSAVED_PARENT_MESSAGE=There are unsaved changes in the pare
 SetPublishForSubtreeOperation_CHANGE_PUBLISH_OP=Change publish flag for all children
 TaxonNavigatorLabels_SET_PUBLISH_FOR_CHILDREN=Change publish flag for all children
 TaxonNavigatorLabels_SET_UNPLACED=Set unplaced flag for taxonnode(s)
+NO=No
+YES=Yes
+SetPublishFlagForSubtreeHandlerE4_UnsavedChanges=There are unsaved changes
+SetPublishFlagForSubtreeHandlerE4_UnsavedChangesQuestion=There are changes, do you want to save them? \nIf you do not save, the changes may be overwritten.
index be48d70623a7a83283c07e518998d88c476b8d62..d387669d430f67db8398e6bb5e1dcc0082b6f496 100644 (file)
@@ -159,3 +159,9 @@ TreeNodeDropAdapter_UNSAVED_PARENT_MESSAGE=Es gibt 
 SetPublishForSubtreeOperation_CHANGE_PUBLISH_OP=Publish Flag für alle Kinder ändern
 TaxonNavigatorLabels_SET_PUBLISH_FOR_CHILDREN=Ändere Publish Flag für alle Kinder
 TaxonNavigatorLabels_SET_UNPLACED=Setze unplaced Flag für den/die Taxonknoten
+
+NO=Nein
+YES=Ja
+
+SetPublishFlagForSubtreeHandlerE4_UnsavedChanges=Es gibt ungespeicherte Änderungen
+SetPublishFlagForSubtreeHandlerE4_UnsavedChangesQuestion=Es gibt Änderungen, wollen Sie diese speichern? \nWenn Sie nicht speichern, könnten diese Änderungen verloren gehen.
index e566638119f1141e369bfeb5fc1ba0085cd05653..99f189034cd3ca65f055bbafbca935897bbb2407 100755 (executable)
@@ -35,6 +35,7 @@ import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetPublishForSubtreeOperation;
 import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
@@ -54,13 +55,15 @@ public class SetPublishFlagForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
     public SetPublishFlagForSubtreeHandlerE4() {
         //FIXME add missing l10n property
 //        super(TaxonNavigatorLabels.CHANGE_PUBLISH_FOR_SUBTREE);
-        super("");
+        super(""); //$NON-NLS-1$
     }
 
 
     private TaxonNodeDto taxonNode;
     private PublishForSubtreeConfigurator configurator;
-
+    private static final String NO = Messages.NO;
+    private static final String CANCEL = Messages.RemotingMoveTaxonNodeHandler_CANCEL;
+    private static final String YES = Messages.YES;
 
     @Override
     public IStatus allowOperations(IStructuredSelection selection, Shell shell, MPart activePart,
@@ -86,20 +89,29 @@ public class SetPublishFlagForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
                     "unknown", //$NON-NLS-1$
                     TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
         }
-        Collection<MPart> dirtyParts = EditorUtil.checkForChanges(null, partService);
+        Collection<MPart> dirtyParts = EditorUtil.checkForTaxonChanges(null, partService);
 
         if (dirtyParts != null && !dirtyParts.isEmpty()){
-            boolean proceed = MessageDialog.openQuestion(null,
-                    "There are unsaved changes", "Do you want to save the changes?");
+            String[] buttonLables = {YES, NO,CANCEL};
+            MessageDialog dialog = new MessageDialog(null,  Messages.SetPublishFlagForSubtreeHandlerE4_UnsavedChanges, null, Messages.SetPublishFlagForSubtreeHandlerE4_UnsavedChangesQuestion, MessageDialog.QUESTION_WITH_CANCEL, buttonLables, 0);
+            dialog.open();
+            int returnCode = dialog.getReturnCode();
+            boolean proceed = false;
+            if (returnCode == 0){
+                proceed = true;
+            }else if (returnCode == 2){
+                return Status.CANCEL_STATUS;
+            }
+
             Iterator<MPart> partIterator = dirtyParts.iterator();
             while( partIterator.hasNext() ){
                 MPart part = partIterator.next();
                 if (proceed) {
                     if (part != null){
-                        if (part.getElementId().equals("eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4")){
+                        if (part.getElementId().equals("eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4")){ //$NON-NLS-1$
                             TaxonNameEditorE4 targetEditor = (TaxonNameEditorE4) WorkbenchUtility.getE4WrappedPart(part);
                             targetEditor.save(new NullProgressMonitor());
-                        }else if (part.getElementId().equals("bulkeditor.editor")){
+                        }else if (part.getElementId().equals("bulkeditor.editor")){ //$NON-NLS-1$
                             BulkEditorE4 targetEditor = (BulkEditorE4) WorkbenchUtility.getE4WrappedPart(part);
                             targetEditor.save(new NullProgressMonitor());
                         }
index ad60d001bfa03119633f161185990087d75eebb8..62e916aa839cbb99cb8b46b53d2748705526dd12 100755 (executable)
@@ -8,15 +8,20 @@
  */
 package eu.etaxonomy.taxeditor.navigation.navigator.e4.handler;
 
+import java.util.Collection;
+import java.util.Iterator;
+
 import javax.inject.Named;
 
 import org.eclipse.core.commands.operations.AbstractOperation;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.e4.core.di.annotations.CanExecute;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.jface.window.Window;
@@ -26,10 +31,15 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetSecundumForSubtreeOperation;
 import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.SetSecundumForSubtreeConfigurationWizard;
+import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 
 /**
  * @author k.luther
@@ -74,6 +84,38 @@ public class SetSecReferenceForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
                     "unknown", //$NON-NLS-1$
                     TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
         }
+        Collection<MPart> dirtyParts = EditorUtil.checkForTaxonChanges(null, partService);
+
+        if (dirtyParts != null && !dirtyParts.isEmpty()){
+            String[] buttonLables = {Messages.YES, Messages.NO,Messages.TreeNodeDropAdapter_CANCEL};
+            MessageDialog dialog = new MessageDialog(null,  Messages.SetPublishFlagForSubtreeHandlerE4_UnsavedChanges, null, Messages.SetPublishFlagForSubtreeHandlerE4_UnsavedChangesQuestion, MessageDialog.QUESTION_WITH_CANCEL, buttonLables, 0);
+            dialog.open();
+            int returnCode = dialog.getReturnCode();
+            boolean proceed = false;
+            if (returnCode == 0){
+                proceed = true;
+            }else if (returnCode == 2){
+                return Status.CANCEL_STATUS;
+            }
+
+            Iterator<MPart> partIterator = dirtyParts.iterator();
+            while( partIterator.hasNext() ){
+                MPart part = partIterator.next();
+                if (proceed) {
+                    if (part != null){
+                        if (part.getElementId().equals("eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4")){ //$NON-NLS-1$
+                            TaxonNameEditorE4 targetEditor = (TaxonNameEditorE4) WorkbenchUtility.getE4WrappedPart(part);
+                            targetEditor.save(new NullProgressMonitor());
+                        }else if (part.getElementId().equals("bulkeditor.editor")){ //$NON-NLS-1$
+                            BulkEditorE4 targetEditor = (BulkEditorE4) WorkbenchUtility.getE4WrappedPart(part);
+                            targetEditor.save(new NullProgressMonitor());
+                        }
+
+                    }
+
+                }
+            }
+        }
 
         configurator = new SecundumForSubtreeConfigurator(taxonNode.getUuid());
         SetSecundumForSubtreeConfigurationWizard wizard = new SetSecundumForSubtreeConfigurationWizard(configurator);
index e6349699e8627e62cc6eb1303a983784560bfd0d..66e88271c13dd4019e5e6b41df50acf4b760f162 100755 (executable)
@@ -12,26 +12,20 @@ package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 import java.util.UUID;
 
 import org.apache.log4j.Logger;
-import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.swt.widgets.Display;
 
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.PublishForSubtreeConfigurator;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
@@ -80,28 +74,28 @@ public class SetPublishForSubtreeOperation extends UpdateSubtreeOperation implem
     }
 
 
-    private Job createJob(IProgressMonitor monitor){
-        Assert.isNotNull(config, "Configuration may not be null");
-
-        final Display display = Display.getDefault();
-        taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
-        Job job = new Job(Messages.SetPublishFlagForSubtreeOperation_SET_SEC_TASK) {
-
-
-            @Override
-            protected IStatus run(IProgressMonitor monitor) {
-                if (config instanceof PublishForSubtreeConfigurator){
-                       updateResult =  taxonNodeService.setPublishForSubtree(config.getSubtreeUuid(), ((PublishForSubtreeConfigurator)config).isPublish(), config.isIncludeAcceptedTaxa(), config.isIncludeSynonyms(), config.isIncludeSharedTaxa(), null);
-                }else {
-                       return Status.CANCEL_STATUS;
-                }
-                updateNameEditors();
-                return Status.OK_STATUS;
-
-            }
-        };
-        return job;
-    }
+//    private Job createJob(IProgressMonitor monitor){
+//        Assert.isNotNull(config, "Configuration may not be null");
+//
+//        final Display display = Display.getDefault();
+//        taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
+//        Job job = new Job(Messages.SetPublishFlagForSubtreeOperation_SET_SEC_TASK) {
+//
+//
+//            @Override
+//            protected IStatus run(IProgressMonitor monitor) {
+//                if (config instanceof PublishForSubtreeConfigurator){
+//                     updateResult =  taxonNodeService.setPublishForSubtree(config.getSubtreeUuid(), ((PublishForSubtreeConfigurator)config).isPublish(), config.isIncludeAcceptedTaxa(), config.isIncludeSynonyms(), config.isIncludeSharedTaxa(), null);
+//                }else {
+//                     return Status.CANCEL_STATUS;
+//                }
+//                updateNameEditors();
+//                return Status.OK_STATUS;
+//
+//            }
+//        };
+//        return job;
+//    }
 
     public void runMoniteredOperation() {
 
@@ -109,14 +103,14 @@ public class SetPublishForSubtreeOperation extends UpdateSubtreeOperation implem
         Display.getDefault().asyncExec(new Runnable() {
             @Override
             public void run() {
-                AbstractUtility.executeMoniteredOperation("Set Publish Flag for Subtree: ",
+                EditorUtil.executeMoniteredOperation("Set Publish Flag for Subtree: ",
                         uuid,
                         1000,
                         false,
                         SetPublishForSubtreeOperation.this,
                         null,
                         true);
-            updateNameEditors();
+            //updateNameEditors();
             }
 
         });
index 2a044999003b9b94f690f1b8e726028ed40ec483..5720c7b37cb7bbe7adc81c831a280f46f053673f 100755 (executable)
@@ -13,12 +13,8 @@ import java.util.UUID;
 import javax.inject.Inject;
 
 import org.apache.log4j.Logger;
-import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
@@ -31,7 +27,6 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 
@@ -79,26 +74,26 @@ public class SetSecundumForSubtreeOperation extends UpdateSubtreeOperation imple
     }
 
 
-    private Job createJob(IProgressMonitor monitor){
-        Assert.isNotNull(config, "Configuration may not be null");
-
-        final Display display = Display.getDefault();
-
-        Job job = new Job(Messages.SetSecundumForSubtreeOperation_SET_SEC_TASK) {
-            @Override
-            protected IStatus run(IProgressMonitor monitor) {
-               if (config instanceof SecundumForSubtreeConfigurator){
-                                       updateResult = taxonNodeService.setSecundumForSubtree((SecundumForSubtreeConfigurator)config);
-                               }else{
-                                       return Status.CANCEL_STATUS;
-                               }
-
-                               return Status.OK_STATUS;
-
-            }
-        };
-        return job;
-    }
+//    private Job createJob(IProgressMonitor monitor){
+//        Assert.isNotNull(config, "Configuration may not be null");
+//
+//        final Display display = Display.getDefault();
+//
+//        Job job = new Job(Messages.SetSecundumForSubtreeOperation_SET_SEC_TASK) {
+//            @Override
+//            protected IStatus run(IProgressMonitor monitor) {
+//             if (config instanceof SecundumForSubtreeConfigurator){
+//                                     updateResult = taxonNodeService.setSecundumForSubtree((SecundumForSubtreeConfigurator)config);
+//                             }else{
+//                                     return Status.CANCEL_STATUS;
+//                             }
+//
+//                             return Status.OK_STATUS;
+//
+//            }
+//        };
+//        return job;
+//    }
 
 
     public void runMoniteredOperation() {
@@ -107,14 +102,14 @@ public class SetSecundumForSubtreeOperation extends UpdateSubtreeOperation imple
         Display.getDefault().asyncExec(new Runnable() {
             @Override
             public void run() {
-                AbstractUtility.executeMoniteredOperation("Set Secundum Reference for Subtree: ",
+                EditorUtil.executeMoniteredOperation("Set Secundum Reference for Subtree: ",
                         uuid,
                         1000,
                         false,
                         SetSecundumForSubtreeOperation.this,
                         null,
                         true);
-                updateNameEditors();
+               // updateNameEditors();
             }
         });
 
index ba9fed2dd167c4ae3aca754f06c8dc1e2a2d7f9d..ef92fd06eca6d6a7aaaf302d17720616f2052599 100644 (file)
@@ -22,6 +22,7 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
 import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
@@ -57,7 +58,7 @@ public abstract class UpdateSubtreeOperation extends RemotingCdmUpdateOperation
                subtreeNode = CdmStore.getService(ITaxonNodeService.class).load(config.getSubtreeUuid());
            }
          public void updateNameEditors(){
-             List<TaxonNode> nodesToUpdate = new ArrayList();
+             List<Taxon> taxaToUpdate = new ArrayList();
              for (CdmBase object: updateResult.getUpdatedObjects()){
               Taxon taxon = null;
               TaxonNode node = null;
@@ -70,7 +71,7 @@ public abstract class UpdateSubtreeOperation extends RemotingCdmUpdateOperation
                   taxon = syn.getAcceptedTaxon();
                   node = taxon.getTaxonNode(subtreeNode.getClassification());
               }
-              nodesToUpdate.add(node);
+              taxaToUpdate.add(taxon);
              }
 
              Display.getDefault().asyncExec(new Runnable() {
@@ -84,11 +85,13 @@ public abstract class UpdateSubtreeOperation extends RemotingCdmUpdateOperation
                                            setFocus = true;
                                        }
                                        if (object instanceof TaxonNameEditorE4){
-                                           if (object != null){
-                                               EditorUtil.openTaxonBaseE4(((TaxonNameEditorE4)object).getTaxon().getUuid(), modelService, partService, application);
+                                           if (object != null ){
+                                               if (taxaToUpdate.contains(((TaxonNameEditorE4)object).getTaxon())){
+                                    EditorUtil.openTaxonBaseE4(((TaxonNameEditorE4)object).getTaxon().getUuid(), modelService, partService, application);
+                                }
                                            }
                                        }
-                                       if (object instanceof BulkEditorE4){
+                                       if (object instanceof BulkEditorE4 && ((BulkEditorE4)object).getEditorInput() instanceof TaxonEditorInput){
                                            ((BulkEditorE4)object).getEditorInput().performSearch( ((BulkEditorE4)object).getLastQuery(), ((BulkEditorE4)object).getSelection());
                                        }
                        }
index dd8fa722ec138ea7c446ea5d48f3723277abcdbd..e675b7908a707205a0d098bc0f96f06c3bcfca26 100755 (executable)
@@ -5,9 +5,11 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 
 public interface ITaxonEditor {
        /**
-        * 
+        *
         * @return the @Taxon of the editor
-        * 
+        *
         */
        public abstract Taxon getTaxon();
+
+       public abstract void update();
 }