Massive refactoring of the methodology in former class UiUtils
authorn.hoffmann <n.hoffmann@localhost>
Tue, 20 Jan 2009 19:05:15 +0000 (19:05 +0000)
committern.hoffmann <n.hoffmann@localhost>
Tue, 20 Jan 2009 19:05:15 +0000 (19:05 +0000)
62 files changed:
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/src/com/swtdesigner/ResourceManager.java
eclipseprojects/eu.etaxonomy.taxeditor/src/com/swtdesigner/SWTResourceManager.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/ApplicationActionBarAdvisor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/ApplicationWorkbenchAdvisor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/ApplicationWorkbenchWindowAdvisor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/FreetextPropertiesPerspective.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/ITaxEditorConstants.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java [deleted file]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SaveAllAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/UndoableAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteTaxonAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/MoveTaxonAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/SaveTaxonAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/SwapSynonymAndTaxonAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/io/ExportAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/io/ImportAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/AddQuickNameAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/ChangeCompositeToNewTaxonAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/ChangeSynonymToTaxonUiAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/ChangeTaxonToSynonymAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/DeleteMisappliedNameCompositeAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/DeleteSynonymCompositeAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/MoveTaxonDialogAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNameRelationWizardAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNameRelationsListWizardAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNewChildNameEditorAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenTaxonEditorAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/AddDescriptionElementCompositeAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/DeleteElementCompositeAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/EditorController.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/GlobalController.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/PropertySheetController.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/SearchController.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/TreeController.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmDataSourceDialog.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/AbstractTaxonEditor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/FreeTextElementFactory.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/MisappliedNameComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/SynonymComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmSessionDataRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmUtil.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/ICdmSessionDataRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/SearchView.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeView.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeViewer.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/AbstractEditorOperation.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/ChangeTaxonToSynonymOperation.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/DeleteTaxonOperation.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/ChangeSynonymToTaxonOperation.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/MakeSynonymAcceptedOperation.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/RemoveSynonymOperation.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/NameRelationsPropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/NomStatusPropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/NonViralNamePropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/TaxonBasePropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/namerelationswizard/ListNameRelationsWizardPage.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/SingleRefTypePropertySource.java

index 83142093f82062830358d33e9817053e6f40c663..b026adf7cb21a709a14aab5efc374dedd64374e0 100644 (file)
@@ -396,7 +396,6 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/ITaxEditorCons
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/Messages.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/SideBySidePerspective.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/TaxEditorPlugin.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/Messages.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/SideBySidePerspective.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/TaxEditorPlugin.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/NameTransfer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SaveAllAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SynonymRelationshipTransfer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/NameTransfer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SaveAllAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SynonymRelationshipTransfer.java -text
@@ -440,6 +439,11 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/Ope
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenTaxonEditorAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/AddDescriptionElementCompositeAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/DeleteElementCompositeAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenTaxonEditorAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/AddDescriptionElementCompositeAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/description/DeleteElementCompositeAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/EditorController.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/GlobalController.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/PropertySheetController.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/SearchController.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/TreeController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmDataSourceDialog.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmTransactionController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmDataSourceDialog.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmTransactionController.java -text
@@ -509,6 +513,7 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/Tax
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeView.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeViewer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/AbstractEditorOperation.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeView.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeViewer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/AbstractEditorOperation.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/ChangeTaxonToSynonymOperation.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/DeleteTaxonOperation.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/ChangeHomotypicGroupOperation.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/DeleteTaxonOperation.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/ChangeHomotypicGroupOperation.java -text
index b8480f6ebba9e606ca2f0b6beae809a6f4cb4508..8e426869aeeebb6fa8c4d3b0e6a6d7c1f653d61c 100644 (file)
@@ -141,10 +141,26 @@ public class ResourceManager extends SWTResourceManager {
      */
     public static void disposeImages() {
        SWTResourceManager.disposeImages();
      */
     public static void disposeImages() {
        SWTResourceManager.disposeImages();
-       //
-        for (Iterator<Image> I = m_DescriptorImageMap.values().iterator(); I.hasNext();)
-             I.next().dispose();
-        m_DescriptorImageMap.clear();
+       // dispose ImageDescriptor images
+       {
+               for (Iterator<Image> I = m_DescriptorImageMap.values().iterator(); I.hasNext();)
+                       I.next().dispose();
+               m_DescriptorImageMap.clear();
+       }
+       // dispose plugin images
+       {
+               for (Iterator<Image> I = m_URLImageMap.values().iterator(); I.hasNext();)
+                       I.next().dispose();
+               m_URLImageMap.clear();
+       }
+       // dispose decorated images
+               for (Iterator<HashMap<Image, Image>> I = m_ImageToDecoratorMap.values().iterator(); I.hasNext();) {
+                       HashMap<Image, Image> decoratedMap = I.next();
+                       for (Iterator<Image> J = decoratedMap.values().iterator(); J.hasNext();) {
+                               Image decoratedImage = J.next();
+                               decoratedImage.dispose();
+                       }
+               }
     }
 
     //////////////////////////////
     }
 
     //////////////////////////////
@@ -213,22 +229,21 @@ public class ResourceManager extends SWTResourceManager {
      * @return URL The URL representing the file at the specified path
      * @throws Exception
      */
      * @return URL The URL representing the file at the specified path
      * @throws Exception
      */
-       @SuppressWarnings("unchecked") //$NON-NLS-1$
        private static URL getPluginImageURL(Object plugin, String name) throws Exception {
                // try to work with 'plugin' as with OSGI BundleContext
                try {
        private static URL getPluginImageURL(Object plugin, String name) throws Exception {
                // try to work with 'plugin' as with OSGI BundleContext
                try {
-                       Class bundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$
-                       Class bundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$
+                       Class<?> bundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$
+                       Class<?> bundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$
                        if (bundleContextClass.isAssignableFrom(plugin.getClass())) {
                        if (bundleContextClass.isAssignableFrom(plugin.getClass())) {
-                               Method getBundleMethod = bundleContextClass.getMethod("getBundle", new Class[]{}); //$NON-NLS-1$
-                               Object bundle = getBundleMethod.invoke(plugin, new Object[]{});
+                               Method getBundleMethod = bundleContextClass.getMethod("getBundle", new Class[0]); //$NON-NLS-1$
+                               Object bundle = getBundleMethod.invoke(plugin, new Object[0]);
                                //
                                //
-                               Class ipathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
-                               Class pathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
-                               Constructor pathConstructor = pathClass.getConstructor(new Class[]{String.class});
+                               Class<?> ipathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
+                               Class<?> pathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
+                               Constructor<?> pathConstructor = pathClass.getConstructor(new Class[]{String.class});
                                Object path = pathConstructor.newInstance(new Object[]{name});
                                //
                                Object path = pathConstructor.newInstance(new Object[]{name});
                                //
-                               Class platformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$
+                               Class<?> platformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$
                                Method findMethod = platformClass.getMethod("find", new Class[]{bundleClass, ipathClass}); //$NON-NLS-1$
                                return (URL) findMethod.invoke(null, new Object[]{bundle, path});
                        }
                                Method findMethod = platformClass.getMethod("find", new Class[]{bundleClass, ipathClass}); //$NON-NLS-1$
                                return (URL) findMethod.invoke(null, new Object[]{bundle, path});
                        }
@@ -237,12 +252,12 @@ public class ResourceManager extends SWTResourceManager {
                }
                // else work with 'plugin' as with usual Eclipse plugin
                {
                }
                // else work with 'plugin' as with usual Eclipse plugin
                {
-                       Class pluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$
+                       Class<?> pluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$
                        if (pluginClass.isAssignableFrom(plugin.getClass())) {
                                //
                        if (pluginClass.isAssignableFrom(plugin.getClass())) {
                                //
-                               Class ipathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
-                               Class pathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
-                               Constructor pathConstructor = pathClass.getConstructor(new Class[]{String.class});
+                               Class<?> ipathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
+                               Class<?> pathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
+                               Constructor<?> pathConstructor = pathClass.getConstructor(new Class[]{String.class});
                                Object path = pathConstructor.newInstance(new Object[]{name});
                                //
                                Method findMethod = pluginClass.getMethod("find", new Class[]{ipathClass}); //$NON-NLS-1$
                                Object path = pathConstructor.newInstance(new Object[]{name});
                                //
                                Method findMethod = pluginClass.getMethod("find", new Class[]{ipathClass}); //$NON-NLS-1$
index f0b8891af9963031eab6385ed5a0ba35ec1c03d4..4d4f81293094124d767e9c4905fac5f18afa6afd 100644 (file)
@@ -384,9 +384,14 @@ public class SWTResourceManager {
      * Dispose all of the cached fonts
      */
     public static void disposeFonts() {
      * Dispose all of the cached fonts
      */
     public static void disposeFonts() {
+               // clear fonts
         for (Iterator<Font> iter = m_FontMap.values().iterator(); iter.hasNext();)
              iter.next().dispose();
         m_FontMap.clear();
         for (Iterator<Font> iter = m_FontMap.values().iterator(); iter.hasNext();)
              iter.next().dispose();
         m_FontMap.clear();
+               // clear bold fonts
+        for (Iterator<Font> iter = m_FontToBoldFontMap.values().iterator(); iter.hasNext();)
+               iter.next().dispose();
+        m_FontToBoldFontMap.clear();
     }
 
        //////////////////////////////
     }
 
        //////////////////////////////
index 7c90b5a019d34d3ea132e2b726ef44292a0f002c..318a0c9bca7d9231de3162880217bcb99f4e8ac7 100644 (file)
@@ -28,6 +28,7 @@ import eu.etaxonomy.cdm.io.common.ImportWrapper;
 import eu.etaxonomy.taxeditor.actions.io.ExportAction;
 import eu.etaxonomy.taxeditor.actions.io.ImportAction;
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;
 import eu.etaxonomy.taxeditor.actions.io.ExportAction;
 import eu.etaxonomy.taxeditor.actions.io.ImportAction;
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;
+import eu.etaxonomy.taxeditor.controller.GlobalController;
 
 /**
  * An action bar advisor is responsible for creating, adding, and disposing of
 
 /**
  * An action bar advisor is responsible for creating, adding, and disposing of
@@ -70,7 +71,7 @@ public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
                // Registering also provides automatic disposal of the actions when
                // the window is closed.
 
                // Registering also provides automatic disposal of the actions when
                // the window is closed.
 
-               UiUtil.setStatusLineManager(getActionBarConfigurer().getStatusLineManager());
+               GlobalController.setStatusLineManager(getActionBarConfigurer().getStatusLineManager());
                
                saveAction = ActionFactory.SAVE.create(window);
                register(saveAction);
                
                saveAction = ActionFactory.SAVE.create(window);
                register(saveAction);
index 430af0dfb1a01ebedf57d14165f4782018e7525b..a34eb46fcdd23a7ef4dafeee49860a97b3b5d500 100644 (file)
@@ -21,9 +21,12 @@ public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
        public void initialize(IWorkbenchConfigurer configurer) {
                super.initialize(configurer);
                                
        public void initialize(IWorkbenchConfigurer configurer) {
                super.initialize(configurer);
                                
-               // Remembers the user's layout and window size 
+               // Remembers the user's view layout, window size, window location etc.
                //  for the next time application is started
                //  for the next time application is started
-//             configurer.setSaveAndRestore(true);             
+               
+               // IMPORTANT as we don not have a mechanism to open views via a menu
+               // at the moment this has to be set to false everytime a new view is added,
+               // otherwise the view will not show because it is not stored in the memento
+               configurer.setSaveAndRestore(false);            
        }
        }
-
 }
 }
index 5bb702e381ba2248b4b51470a040df87b2a85942..6cd9385ec3e608ce86fa1787f9cb7c235874f964 100644 (file)
@@ -20,6 +20,7 @@ import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
 import org.eclipse.ui.application.WorkbenchWindowAdvisor;
 
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import org.eclipse.ui.application.WorkbenchWindowAdvisor;
 
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.controller.GlobalController;
 import eu.etaxonomy.taxeditor.preference.InitNomenclaturalCodePrefDialog;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 import eu.etaxonomy.taxeditor.preference.InitNomenclaturalCodePrefDialog;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
@@ -59,12 +60,12 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
                if (PreferencesUtil.getPreferredNomenclaturalCode() == null) {
 
                        // Query user re: preferred nom. code
                if (PreferencesUtil.getPreferredNomenclaturalCode() == null) {
 
                        // Query user re: preferred nom. code
-                       Dialog dialog = new InitNomenclaturalCodePrefDialog(UiUtil.getShell());
+                       Dialog dialog = new InitNomenclaturalCodePrefDialog(GlobalController.getShell());
                        int returnCode = dialog.open();
                        
                        // Short message confirming user's choice
                        String code = PreferencesUtil.getPreferredNomenclaturalCodeAsString();
                        int returnCode = dialog.open();
                        
                        // Short message confirming user's choice
                        String code = PreferencesUtil.getPreferredNomenclaturalCodeAsString();
-                       MessageDialog.openInformation(UiUtil.getShell(), "Nomenclatural code set", 
+                       MessageDialog.openInformation(GlobalController.getShell(), "Nomenclatural code set", 
                                        "The following has been set as your preferred nomenclatural code:\n\n\t" + 
                                        code + "\n\nYou can change the botanical code at any time in the \"Preferences\" menu.");
                }               
                                        "The following has been set as your preferred nomenclatural code:\n\n\t" + 
                                        code + "\n\nYou can change the botanical code at any time in the \"Preferences\" menu.");
                }               
index bad0134b655ba6b5b3c7dc7f7c12bfb706b443e2..99a83b895c7500d0f589a5f6569e2c1bd953f723 100644 (file)
@@ -29,6 +29,12 @@ public class FreetextPropertiesPerspective implements IPerspectiveFactory {
         * To remember the user's layout and window sizes for the next time they 
         *  start your application, add configurer.setSaveAndRestore(true); to the 
         *  initialize() method of WorkbenchAdvisor.
         * To remember the user's layout and window sizes for the next time they 
         *  start your application, add configurer.setSaveAndRestore(true); to the 
         *  initialize() method of WorkbenchAdvisor.
+        *  
+        *  IMPORTANT:
+        *  If you set configurer.setSaveAndRestore(true) and you are adding a new view 
+        *  to the perspective make sure you set it to false for at least one start. 
+        *  Otherwise the new view will not show.
+        *  
         */
        
        public static final String ID = "eu.etaxonomy.taxeditor.perspective.freetextproperties";
         */
        
        public static final String ID = "eu.etaxonomy.taxeditor.perspective.freetextproperties";
index eee19a0ee6d46c0ef1c3aefe28ef3c1af34e9811..20bee80f3ce733da672f2ac085c24027def0fb0b 100644 (file)
@@ -9,7 +9,6 @@
 \r
 package eu.etaxonomy.taxeditor;\r
 \r
 \r
 package eu.etaxonomy.taxeditor;\r
 \r
-import org.apache.log4j.Logger;\r
 \r
 /**\r
  * @author p.ciardelli\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -17,8 +16,6 @@ import org.apache.log4j.Logger;
  * @version 1.0\r
  */\r
 public class ITaxEditorConstants {\r
  * @version 1.0\r
  */\r
 public class ITaxEditorConstants {\r
-       private static final Logger logger = Logger\r
-                       .getLogger(ITaxEditorConstants.class);\r
        \r
        /* ***************************************************************************************\r
                        ICONS\r
        \r
        /* ***************************************************************************************\r
                        ICONS\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java
deleted file mode 100644 (file)
index 0795d22..0000000
+++ /dev/null
@@ -1,630 +0,0 @@
-/**\r
- * Copyright (C) 2007 EDIT\r
- * European Distributed Institute of Taxonomy \r
- * http://www.e-taxonomy.eu\r
- * \r
- * The contents of this file are subject to the Mozilla Public License Version 1.1\r
- * See LICENSE.TXT at the top of this package for the full license terms.\r
- */\r
-\r
-package eu.etaxonomy.taxeditor;\r
-\r
-import java.util.HashMap;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Set;\r
-import java.util.SortedSet;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.operations.IOperationHistory;\r
-import org.eclipse.core.commands.operations.IUndoContext;\r
-import org.eclipse.core.commands.operations.OperationHistoryFactory;\r
-import org.eclipse.core.runtime.IProgressMonitor;\r
-import org.eclipse.core.runtime.Status;\r
-import org.eclipse.jface.action.IStatusLineManager;\r
-import org.eclipse.swt.graphics.Color;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.swt.widgets.Tree;\r
-import org.eclipse.swt.widgets.TreeItem;\r
-import org.eclipse.ui.IActionBars;\r
-import org.eclipse.ui.IEditorInput;\r
-import org.eclipse.ui.IEditorPart;\r
-import org.eclipse.ui.IEditorReference;\r
-import org.eclipse.ui.IPageLayout;\r
-import org.eclipse.ui.IViewPart;\r
-import org.eclipse.ui.IViewReference;\r
-import org.eclipse.ui.IWorkbench;\r
-import org.eclipse.ui.IWorkbenchPage;\r
-import org.eclipse.ui.PartInitException;\r
-import org.eclipse.ui.operations.IWorkbenchOperationSupport;\r
-import org.eclipse.ui.views.properties.PropertySheet;\r
-import org.eclipse.ui.views.properties.PropertySheetPage;\r
-\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
-import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;\r
-import eu.etaxonomy.taxeditor.datasource.CdmTransactionController;\r
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
-import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
-import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
-import eu.etaxonomy.taxeditor.model.NameEditorInput;\r
-import eu.etaxonomy.taxeditor.navigation.SearchResult;\r
-import eu.etaxonomy.taxeditor.navigation.SearchResultView;\r
-import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
-import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView;\r
-import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
-import eu.etaxonomy.taxeditor.propertysheet.CustomSortPropertySheetEntry;\r
-\r
-/**\r
- * A collection of useful methods related to the UI.\r
- * \r
- * @author p.ciardelli\r
- * @created 27.05.2008\r
- * @version 1.0\r
- */\r
-public class UiUtil {\r
-       private static final Logger logger = Logger.getLogger(UiUtil.class);\r
-\r
-       public static Set<Feature> preferredFeatureSet;\r
-       public static Set<Rank> preferredRankSet;\r
-       private static IViewPart treeView;\r
-\r
-       private static IOperationHistory operationHistory;\r
-       \r
-       public static IViewPart getPropertySheet() {\r
-               for (IViewReference reference : getActivePage().getViewReferences()) {\r
-                       if (reference.getId().equals(IPageLayout.ID_PROP_SHEET)) {\r
-                               logger.warn(reference.getView(false).getSite().getPart().getTitle());\r
-                               return reference.getView(false);\r
-                       }\r
-               }\r
-               return null;\r
-       }\r
-       \r
-       /**\r
-        * By default, property sheet has buttons in the toolbar for \r
-        * "Show advanced properties" and "Show categories".\r
-        * <p>\r
-        * This is confusing for the user, hence a method to remove them\r
-        * until such time as advanced properties or categories are implemented.\r
-        */\r
-       public static void hidePropertySheetToolbar() {\r
-               PropertySheet propertySheet = (PropertySheet) getPropertySheet();\r
-               IActionBars actionBars = propertySheet.getViewSite().getActionBars();\r
-               actionBars.getToolBarManager().removeAll();\r
-               actionBars.getMenuManager().removeAll();\r
-       }\r
-       \r
-       /**\r
-        * The property sheet listener ensures only property sheets\r
-        *      with data cause the Property Sheet to be updated.\r
-        */\r
-       public static void addPropertySheetInputListener() {\r
-               IViewPart propertySheet = getPropertySheet();\r
-//             propertySheet.get\r
-               PropertySheet ps = (PropertySheet) propertySheet;\r
-//             ps.addPartPropertyListener(listener)\r
-//             ps.addPropertyListener(l)\r
-       }\r
-       \r
-       public static void saveAll(){\r
-               setIsSaving(true);\r
-               \r
-               // Get all open windows\r
-               for (IEditorPart taxonEditor : getOpenTaxonEditors()) {\r
-\r
-                       // Save the dirty ones\r
-                       if (taxonEditor.isDirty()) {\r
-                               \r
-                               \r
-                               IEditorInput input = taxonEditor.getEditorInput();\r
-                               if (input.getAdapter(Taxon.class) != null) {\r
-                                       Taxon taxon = (Taxon) input.getAdapter(Taxon.class);\r
-                                       CdmSessionDataRepository.getDefault().saveTaxon(taxon);\r
-                                       if (taxonEditor instanceof MultiPageTaxonEditor) {\r
-                                               ((MultiPageTaxonEditor) taxonEditor).setDirtyExtern(false);\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               // Commit the transaction       \r
-               CdmTransactionController.commitTransaction();\r
-       \r
-               // Force library objects to be associated with new transaction\r
-               CdmSessionDataRepository.getDefault().clearNonTaxonData();\r
-               \r
-               // Start a new transaction\r
-               CdmTransactionController.startTransaction();\r
-               \r
-               // Put all open taxa in the new transaction\r
-               CdmTransactionController.addSessionTaxaToTransaction();\r
-               \r
-               setIsSaving(false);\r
-               // TODO: delete undoHistory\r
-       }\r
-       \r
-       //public void deleteTaxon()\r
-       \r
-       /**\r
-        * @param input\r
-        * @return\r
-        * @throws PartInitException\r
-        */\r
-       public static IEditorPart getEditorByInput(IEditorInput input)\r
-                       throws PartInitException {\r
-               for (IEditorReference reference : getActivePage().getEditorReferences()) {\r
-                       if (reference.getEditorInput().equals(input)) {\r
-                               IEditorPart editor = reference.getEditor(false);\r
-                               return editor;\r
-                       }\r
-               }\r
-               return null;\r
-       }\r
-       \r
-       /**\r
-        * Returns a set of all currently open \r
-        * <code>MultiPageTaxonEditor</code>s.\r
-        * \r
-        * @return\r
-        */\r
-       public static Set<IEditorPart> getOpenTaxonEditors() {\r
-               \r
-               Set<IEditorPart> taxonEditors = new HashSet<IEditorPart>();\r
-               \r
-               for (IEditorReference reference : getActivePage().getEditorReferences()) {\r
-                       IEditorPart editor = reference.getEditor(false);\r
-                       if (editor instanceof MultiPageTaxonEditor) {\r
-                               taxonEditors.add(editor);\r
-                       }\r
-               }\r
-               return taxonEditors;\r
-       }\r
-\r
-       public static boolean closeOpenTaxonEditors() {\r
-               for (IEditorPart editor : getOpenTaxonEditors()) {\r
-                       if (!getActivePage().closeEditor(editor, true)) {\r
-                               return false;\r
-                       }\r
-               }\r
-               return true;\r
-       }\r
-       \r
-       public static IEditorPart getEditorByTaxon(Taxon taxon)\r
-                       throws PartInitException {\r
-               IEditorInput input = new NameEditorInput(taxon);\r
-               return getEditorByInput(input);\r
-       }\r
-       \r
-       /**\r
-        * @return\r
-        */\r
-       public static IWorkbenchPage getActivePage() {\r
-               return TaxEditorPlugin.getDefault().getWorkbench()\r
-                               .getActiveWorkbenchWindow().getActivePage();\r
-       }\r
-\r
-       /**\r
-        * @return\r
-        */\r
-       public static Shell getShell() {\r
-               return TaxEditorPlugin.getDefault().getWorkbench()\r
-                               .getActiveWorkbenchWindow().getShell();\r
-       }\r
-\r
-       /**\r
-        * @param input\r
-        * @param editorId\r
-        * @return \r
-        * @throws PartInitException\r
-        */\r
-       public static IEditorPart openEditor(IEditorInput input, String editorId)\r
-                       throws PartInitException {\r
-               return getActivePage().openEditor(input, editorId);\r
-       }\r
-       \r
-       /**\r
-        * Open an emtpy taxon editor\r
-        * \r
-        * @return\r
-        * @throws PartInitException\r
-        */\r
-       public static IEditorPart openTaxonEditor() \r
-                       throws PartInitException{\r
-               return openTaxonEditor(null);\r
-       }\r
-       \r
-       /** \r
-        * Open a taxon editor for the given taxon\r
-        * \r
-        * @param taxon\r
-        * @return\r
-        * @throws PartInitException\r
-        */\r
-       public static IEditorPart openTaxonEditor(Taxon taxon)\r
-                       throws PartInitException{\r
-               if(taxon == null){\r
-                       TaxonNameBase name = CdmParserController.parseFullReference("", null, null);\r
-                       name.setFullTitleCache("", false);\r
-                       name.setTitleCache("", false);\r
-                       taxon = Taxon.NewInstance(name, \r
-                                       CdmSessionDataRepository.getDefault().getDefaultSec());\r
-               }else{\r
-                       // If this taxon is not visible in the tree, open node\r
-                       TaxonomicTreeViewer treeViewer = getTreeViewer(); \r
-                       if (treeViewer != null) {\r
-                               treeViewer.revealTaxon(taxon);\r
-                       }\r
-                       \r
-                       // Add to recent names list\r
-                       RecentNamesView.addRecentName(taxon);\r
-               }\r
-               \r
-               IEditorInput input = new NameEditorInput(taxon);\r
-               return openEditor(input, MultiPageTaxonEditor.ID);\r
-       }\r
-\r
-       /**\r
-        * Redraws an open editor if it exists for the given taxon\r
-        * \r
-        * @param taxon\r
-        * @return\r
-        */\r
-       public static boolean redrawEditor(Taxon taxon){\r
-               \r
-               TaxonNameEditor editor = UiUtil.getTaxonNameEditor(taxon);\r
-               \r
-               if(editor == null || editor.redraw()){\r
-                       \r
-                       // Mark editor as changed and unsaved\r
-                       editor.setDirty();\r
-                       \r
-                       return true;    \r
-               }       \r
-               return false;\r
-       }\r
-       \r
-       /**\r
-        * @param taxon\r
-        * @param save\r
-        * @throws PartInitException\r
-        */\r
-       public static void closeEditor(Taxon taxon, boolean save)\r
-                       throws PartInitException {\r
-               IEditorPart editor = getEditorByTaxon(taxon);\r
-               closeEditor(editor, save);\r
-       }\r
-       \r
-       /**\r
-        * @param input\r
-        * @param save\r
-        * @throws PartInitException\r
-        */\r
-       public static void closeEditor(IEditorInput input, boolean save)\r
-                       throws PartInitException {\r
-               IEditorPart editor = getEditorByInput(input);\r
-               closeEditor(editor, save);\r
-       }\r
-\r
-       /**\r
-        * @param editor\r
-        * @param save\r
-        * @throws PartInitException\r
-        */\r
-       public static void closeEditor(IEditorPart editor, boolean save)\r
-                       throws PartInitException {\r
-               if (editor != null) {\r
-                       getActivePage().closeEditor(editor, save);\r
-               }\r
-       }\r
-\r
-       public static IViewPart getViewById(String id) {\r
-               return TaxEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().\r
-                               getActivePage().findView(id);\r
-       }\r
-       \r
-\r
-       /**\r
-        * Returns the <code>TaxonomicTreeViewer</code> used for navigation. Not to \r
-        * be confused with the window that contains it, <code>TaxonomicTreeView</code>. \r
-        * \r
-        * @return\r
-        */\r
-       public static TaxonomicTreeViewer getTreeViewer() {\r
-               TaxonomicTreeView view = getTreeView();\r
-               if (view == null) {\r
-                       return null;\r
-               }\r
-               return view.getTreeViewer();\r
-       }\r
-\r
-       /**\r
-        * @see eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView#createTreeViewer()\r
-        * \r
-        * @return\r
-        */\r
-       public static TaxonomicTreeViewer createTreeViewer() {\r
-               TaxonomicTreeView view = getTreeView();\r
-               if (view == null) {\r
-                       return null;\r
-               }\r
-               return view.createTreeViewer();\r
-       }\r
-       \r
-       /**\r
-        * Returns the <code>TaxonomicTreeView</code> containing the \r
-        * <code>TaxonomicTreeViewer</code> used for navigation. \r
-        * \r
-        * @return\r
-        */     \r
-       public static TaxonomicTreeView getTreeView() {\r
-               if (treeView == null) {\r
-                       treeView = getViewById(TaxonomicTreeView.ID);\r
-                       if (!(treeView instanceof TaxonomicTreeView)) {\r
-                               treeView = null;\r
-                       }\r
-               }\r
-               return (TaxonomicTreeView) treeView;\r
-       }\r
-       \r
-\r
-       public static IWorkbenchOperationSupport getOperationSupport() {\r
-               IWorkbench workbench = TaxEditorPlugin.getDefault().getWorkbench();\r
-               return workbench.getOperationSupport();\r
-       }\r
-       \r
-       public static IOperationHistory getOperationHistory() {\r
-//             if (operationHistory == null) {\r
-////                   operationHistory = getOperationSupport().getOperationHistory();\r
-//                     operationHistory = OperationHistoryFactory.getOperationHistory();\r
-//             }\r
-//             return operationHistory;\r
-               return getOperationSupport().getOperationHistory();\r
-       }\r
-\r
-       public static IUndoContext getWorkbenchUndoContext() {\r
-               // TODO make this more specific than GLOBAL_UNDO_CONTEXT\r
-//             return getOperationSupport().getUndoContext();\r
-               return IOperationHistory.GLOBAL_UNDO_CONTEXT;\r
-       }\r
-\r
-       public static void doEditorSave(Taxon taxon, boolean confirm) {\r
-               IEditorPart editor = null;\r
-               try {\r
-                       editor = getEditorByTaxon(taxon);\r
-               } catch (PartInitException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-               if (editor != null) {\r
-                       getActivePage().saveEditor(editor, confirm);\r
-               }\r
-       }\r
-       \r
-\r
-//     public static EditorGroupComposite getMisappliedNameGroupComposite(\r
-//                     IManagedForm managedForm) {\r
-//\r
-//             // Iterate through parent's children until we find a composite which has a data field\r
-//             //      for MISAPPLIED_NAME\r
-//             Composite parent = managedForm.getForm().getBody();\r
-//             for (Control groupComposite : parent.getChildren()) {\r
-//                     if (groupComposite instanceof EditorGroupComposite) {\r
-//                             if (groupComposite.getData(ITaxEditorConstants.MISAPPLIED_NAME) != null) {\r
-//                                     return (EditorGroupComposite) groupComposite;\r
-//                             }\r
-//                     }\r
-//             }\r
-//             return null;\r
-//     }\r
-\r
-//     public static EditorGroupComposite createMisappliedNameGroupComposite(\r
-//                     IManagedForm managedForm) {\r
-//             \r
-//             Composite parent = managedForm.getForm().getBody();\r
-//             \r
-//             EditorGroupComposite composite = new EditorGroupComposite(parent, managedForm);\r
-//             composite.setData(ITaxEditorConstants.MISAPPLIED_NAME,"");\r
-//             new CompositeBorderDecorator(composite, managedForm);\r
-//             return composite;\r
-//     }\r
-       \r
-       public static void setStatusMessage(String msg) {\r
-               getPropertySheet().getViewSite().getActionBars().getStatusLineManager().setMessage(msg); \r
-       }\r
-\r
-       public static void setPropertySheetTree(Tree tree) {\r
-               TaxEditorPlugin.getDefault().setPropertySheetTree(tree);                \r
-       }\r
-       \r
-       public static Tree getPropertySheetTree() {\r
-               return TaxEditorPlugin.getDefault().getPropertySheetTree();             \r
-       }\r
-\r
-       public static void setPropertySheetPage(PropertySheetPage page) {\r
-               TaxEditorPlugin.getDefault().setPropertySheetPage(page);\r
-       }\r
-       \r
-       public static PropertySheetPage getPropertySheetPage() {\r
-               return TaxEditorPlugin.getDefault().getPropertySheetPage();     \r
-       }\r
-       \r
-       /**\r
-        *              UiUtil.paintPropertySheetRow(P_DATEPUBLISHED, new Color(Display.getDefault(), WarningAnnotation.WARNING_RGB), true);\r
-        *              UiUtil.unpaintPropertySheetRow(P_DATEPUBLISHED);\r
-        * \r
-        * @param id\r
-        * @param color\r
-        * @param doPaintChildren\r
-        */\r
-       public static void paintPropertySheetRow(String id, Color color, boolean doPaintChildren) {\r
-               \r
-               // Catch null property sheet name\r
-               if (id == null) {\r
-                       return;\r
-               }\r
-               \r
-               // Catch uninit'ed property sheet tree\r
-               if (getPropertySheetTree() == null) {\r
-                       return;\r
-               }\r
-               \r
-               paintPropertySheetRow(id, color, doPaintChildren, getPropertySheetTree());\r
-       }\r
-       \r
-       private static void paintPropertySheetRow(String id, Color color, boolean doPaintChildren, Object treeOrItem) {\r
-               \r
-               // Init items w zero-length array\r
-               TreeItem[] items = new TreeItem[]{};\r
-               \r
-               // Get child items depending to class\r
-               if (treeOrItem instanceof Tree) {\r
-                       items = ((Tree) treeOrItem).getItems();\r
-               }\r
-               if (treeOrItem instanceof TreeItem) {\r
-                       items = ((TreeItem) treeOrItem).getItems();\r
-               }\r
-               \r
-               // If array hasn't been populated by the above, return\r
-               if (items.length == 0) {\r
-                       return;\r
-               }\r
-\r
-               // Prop. sheet id's take the form "01:xxxx" for sorting - truncate\r
-               id = CustomSortPropertySheetEntry.truncateDisplayName(id);\r
-               \r
-               // Iterate through child items\r
-               for (TreeItem item : items) {\r
-\r
-                       // Item found, paint it\r
-                       if (id.equals(item.getText())) {\r
-                               paintItem(item, color, doPaintChildren);\r
-                               return;\r
-                       }                       \r
-\r
-                       // Recursively search for item to paint in child items\r
-                       if (item.getItemCount() > 0) {\r
-                               paintPropertySheetRow(id, color, doPaintChildren, item);\r
-                       }\r
-               }       \r
-       }\r
-       \r
-       /**\r
-        * Note: children are only painted if submenu has already been created, i.e. opened once.\r
-        * \r
-        * @param item\r
-        * @param color\r
-        * @param doPaintChildren\r
-        */\r
-       private static void paintItem(TreeItem item, Color color, boolean doPaintChildren) {\r
-               \r
-               // Paint the item\r
-               item.setBackground(color);\r
-               \r
-               // Recursively paint child items if requested\r
-               if (doPaintChildren) {\r
-                       for (TreeItem childItem : item.getItems()) {\r
-                               paintItem(childItem, color, doPaintChildren);\r
-                       }\r
-               }\r
-       }\r
-       \r
-       public static void unpaintPropertySheetRow(String id) {\r
-               \r
-               // Catch uninit'ed property sheet tree\r
-               if (getPropertySheetTree() == null) {\r
-                       return;\r
-               }\r
-               \r
-               // Get tree's background color to "unpaint"\r
-               Color color = getPropertySheetTree().getBackground();\r
-               \r
-               paintPropertySheetRow(id, color, true);\r
-       }\r
-\r
-       /**\r
-        * Get the name out of the session's name relations vocabulary, not directly\r
-        * from the object. \r
-        * \r
-        * @param type\r
-        * @return\r
-        */\r
-       public static String getNameRelationLabelType(NameRelationshipType type) {\r
-               SortedSet<NameRelationshipType> vocab = \r
-                               CdmSessionDataRepository.getDefault().getNameRelationshipTypes();\r
-               for (NameRelationshipType type1 : vocab) {\r
-                       if (type1.equals(type)) {\r
-                               return type1.getLabel();\r
-                       }\r
-               }\r
-               return "";\r
-       }\r
-\r
-       static boolean isSaving = false;\r
-\r
-       private static IStatusLineManager statusLineManager;\r
-\r
-       private static Map<Taxon, TaxonNameEditor> taxonNameEditors;\r
-\r
-       public static void setIsSaving(boolean isSavin) {\r
-               isSaving = isSavin;\r
-       }\r
-       \r
-       public static boolean getIsSaving() {\r
-               return isSaving;\r
-       }\r
-\r
-       public static void setStatusLineManager(IStatusLineManager manager) {\r
-               statusLineManager = manager;\r
-       }\r
-\r
-       public static void setStatusLine(String message) {\r
-               statusLineManager.setMessage(message);\r
-       }\r
-       \r
-       public static IProgressMonitor getStatusLineProgressMonitor() {\r
-               statusLineManager.setCancelEnabled(false);\r
-               return statusLineManager.getProgressMonitor();\r
-       }\r
-\r
-       public static void addTaxonNameEditor(\r
-                       Taxon taxon, TaxonNameEditor taxonNameEditor) {\r
-               if (taxonNameEditors == null) {\r
-                       taxonNameEditors = new HashMap<Taxon, TaxonNameEditor>();\r
-               }\r
-               taxonNameEditors.put(taxon, taxonNameEditor);\r
-       }\r
-\r
-       public static TaxonNameEditor getTaxonNameEditor(Taxon taxon) {\r
-               if (taxonNameEditors == null) {\r
-                       return null;\r
-               }\r
-               return taxonNameEditors.get(taxon);\r
-       }\r
-\r
-       public static IUndoContext getTaxonNameEditorUndoContext(Taxon taxon) {\r
-               // TODO make this taxon name editor specific\r
-//             return getTaxonNameEditor(taxon).getUndoContext();\r
-               return IOperationHistory.GLOBAL_UNDO_CONTEXT;\r
-       }\r
-       \r
-       static String srv = "";\r
-       \r
-       public static void openSearchResultsView(SearchResult searchResult) {\r
-               srv += "1";\r
-               logger.warn("opening search results window " + srv);\r
-               try {\r
-                       IViewPart resultsView = getActivePage().showView(SearchResultView.ID, \r
-                                       srv, IWorkbenchPage.VIEW_VISIBLE);\r
-                       ((SearchResultView) resultsView).setResult(searchResult);\r
-               } catch (PartInitException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-}
\ No newline at end of file
index 6e8c7373af37edde1f9719bdb2eb546712d88607..ed76c618f106ea1a05dabdb28e49bc92f497b7d7 100644 (file)
@@ -18,8 +18,8 @@ import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
 
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
 
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.UiUtil;
 import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;
 import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;
+import eu.etaxonomy.taxeditor.controller.EditorController;
 import eu.etaxonomy.taxeditor.datasource.CdmTransactionController;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;
 import eu.etaxonomy.taxeditor.datasource.CdmTransactionController;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;
@@ -54,10 +54,10 @@ public class SaveAllAction implements IWorkbenchWindowActionDelegate {
         */
        public void run(IAction action) {
 
         */
        public void run(IAction action) {
 
-               UiUtil.setIsSaving(true);
+               EditorController.setSaving(true);
                
                // Get all open windows
                
                // Get all open windows
-               for (IEditorPart taxonEditor : UiUtil.getOpenTaxonEditors()) {
+               for (IEditorPart taxonEditor : EditorController.getOpenEditors()) {
 
                        // Save the dirty ones
                        if (taxonEditor.isDirty()) {
 
                        // Save the dirty ones
                        if (taxonEditor.isDirty()) {
@@ -84,7 +84,7 @@ public class SaveAllAction implements IWorkbenchWindowActionDelegate {
                // Put all open taxa in the new transaction
                CdmTransactionController.addSessionTaxaToTransaction();
                
                // Put all open taxa in the new transaction
                CdmTransactionController.addSessionTaxaToTransaction();
                
-               UiUtil.setIsSaving(false);
+               EditorController.setSaving(false);
                // TODO: delete undoHistory
        }
 
                // TODO: delete undoHistory
        }
 
index 47576da82276bf5456a8fab46aa91c109cd0ef6c..0940553b33570b2b60c632eff98f26710e133bbe 100644 (file)
@@ -21,7 +21,7 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 \r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 \r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 \r
 /**\r
  * @author p.ciardelli\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -44,8 +44,8 @@ public abstract class UndoableAction extends Action {
        \r
        \r
        public void run() {     \r
        \r
        \r
        public void run() {     \r
-               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-               IUndoContext undoContext = UiUtil.getWorkbenchUndoContext();\r
+               IOperationHistory operationHistory = GlobalController.getOperationHistory();\r
+               IUndoContext undoContext = GlobalController.getWorkbenchUndoContext();\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
index fabf90a7d1b286a7d03a41ba4e160f5f66df741d..e58766f153e4ec8d838f6f2ddea4b55532f41849 100644 (file)
@@ -27,7 +27,7 @@ import org.eclipse.jface.resource.ImageDescriptor;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.operations.DeleteTaxonOperation;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.operations.DeleteTaxonOperation;\r
 \r
 /**\r
@@ -44,7 +44,6 @@ public class DeleteTaxonAction extends Action {
        private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
                        .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
 \r
        private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
                        .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
 \r
-       private IOperationHistory operationHistory;\r
        private IUndoContext undoContext;\r
        \r
        Taxon taxon;\r
        private IUndoContext undoContext;\r
        \r
        Taxon taxon;\r
@@ -53,8 +52,7 @@ public class DeleteTaxonAction extends Action {
                super(text);\r
                setImageDescriptor(image);\r
                \r
                super(text);\r
                setImageDescriptor(image);\r
                \r
-               operationHistory = UiUtil.getOperationHistory();\r
-               undoContext = UiUtil.getWorkbenchUndoContext();\r
+               undoContext = GlobalController.getWorkbenchUndoContext();\r
        }\r
 \r
        public DeleteTaxonAction(Taxon taxon) {\r
        }\r
 \r
        public DeleteTaxonAction(Taxon taxon) {\r
@@ -67,66 +65,6 @@ public class DeleteTaxonAction extends Action {
                IUndoableOperation operation = new DeleteTaxonOperation\r
                                (this.getText(), undoContext, taxon);\r
 \r
                IUndoableOperation operation = new DeleteTaxonOperation\r
                                (this.getText(), undoContext, taxon);\r
 \r
-               IProgressMonitor monitor = UiUtil.getStatusLineProgressMonitor();\r
-               \r
-               try {\r
-                       IStatus status = operationHistory.execute(operation, monitor, null);\r
-               } catch (ExecutionException e) {\r
-                       logger.error("Error deleting taxon", e);\r
-               }       \r
-               \r
-               // Handle this in an operation so we are able to undo it\r
-               \r
-//             \r
-//             // Get taxon name for progress monitor\r
-//             String taxonName = CdmUtil.getDisplayName(taxon);\r
-//             \r
-//             // Get and start progress monitor\r
-//             IProgressMonitor monitor = UiUtil.getStatusLineProgressMonitor();\r
-//             monitor.beginTask("Deleting taxon '" + taxonName + "'.", 10);\r
-//             \r
-//             // Call save all action\r
-//             new SaveAllAction().run(null);\r
-//             monitor.worked(2);\r
-//             \r
-//             // If the taxon has children, cancel operation\r
-//             // TODO add option to continue, and delete children\r
-//             if (taxon.hasTaxonomicChildren()) {\r
-//                     MessageDialog.openInformation(UiUtil.getShell(), "Cannot delete taxon", \r
-//                                     "'" + CdmUtil.getDisplayName(taxon) + "' has taxonomic children. " +\r
-//                                     "These must be manually deleted before their parent.");\r
-//                     monitor.done();\r
-//                     return;\r
-//             }\r
-//             monitor.worked(1);\r
-//             \r
-//             \r
-//             // Close taxon's editor, if any is active\r
-//             try {\r
-//                     UiUtil.closeEditor(taxon, true);\r
-//             } catch (PartInitException e) {\r
-//                     e.printStackTrace();\r
-//             }\r
-//             monitor.worked(1);\r
-//\r
-//             // Delete taxon from CDM layer\r
-//             CdmSessionDataRepository.getDefault().deleteTaxon(taxon);\r
-//             monitor.worked(4);\r
-//                             \r
-//             \r
-//             \r
-//             // Call save all action\r
-//             new SaveAllAction().run(null);\r
-//             monitor.worked(2);\r
-//             \r
-//             // Close the progress monitor\r
-//             monitor.done();\r
-//             \r
-//             // Announce taxon was deleted on status line\r
-//             UiUtil.setStatusLine("Deleted taxon '" + taxonName + "'.");\r
-//             \r
-////           Status status = new Status(IStatus.INFO, TaxEditorPlugin.PLUGIN_ID, \r
-////                           "Deleted.", null);\r
-////           StatusManager.getManager().handle(status, StatusManager.SHOW);\r
+               GlobalController.executeOperation(operation);\r
        }\r
 }
\ No newline at end of file
        }\r
 }
\ No newline at end of file
index 609be0b86f2ae31ca0c628aeadd116ccd230e7eb..8b8b10cc21b86807dd199619fc4a65f62f4770f5 100644 (file)
@@ -15,7 +15,7 @@ import org.eclipse.jface.viewers.ISelection;
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
 \r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
 \r
index f73a36b48a8e37386fded791ec59ba09035cf63a..e3160a9b65f050e51edb2216234febbfc94e6d24 100644 (file)
@@ -15,7 +15,7 @@ import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;
 public class SaveTaxonAction extends Action {\r
        private static final Logger logger = Logger.getLogger(SaveTaxonAction.class);\r
        \r
 public class SaveTaxonAction extends Action {\r
        private static final Logger logger = Logger.getLogger(SaveTaxonAction.class);\r
        \r
-       Taxon taxon;\r
+       private Taxon taxon;\r
        \r
        public SaveTaxonAction(Taxon taxon) {\r
                this.taxon = taxon;\r
        \r
        public SaveTaxonAction(Taxon taxon) {\r
                this.taxon = taxon;\r
@@ -25,6 +25,5 @@ public class SaveTaxonAction extends Action {
                \r
                // Save the taxon to the CDM\r
                CdmSessionDataRepository.getDefault().saveTaxon(taxon);\r
                \r
                // Save the taxon to the CDM\r
                CdmSessionDataRepository.getDefault().saveTaxon(taxon);\r
-               // TODO delete undoHistory for this editor\r
        }\r
 }
\ No newline at end of file
        }\r
 }
\ No newline at end of file
index fa58e68efb72c15b53a606ccf9fb3b0cf3e4d43f..cd88519b8a500a8dab09311d3af3b4cb1a478b7a 100644 (file)
@@ -24,7 +24,8 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 /**\r
@@ -54,9 +55,9 @@ public class SwapSynonymAndTaxonAction extends Action {
                // instead of implementing the logic here\r
                \r
                try {\r
                // instead of implementing the logic here\r
                \r
                try {\r
-                       IEditorPart oldEditor = UiUtil.getEditorByTaxon(taxon);\r
+                       IEditorPart oldEditor = EditorController.getEditorByTaxon(taxon);\r
                        if (oldEditor.isDirty()) {\r
                        if (oldEditor.isDirty()) {\r
-                               if (!MessageDialog.openConfirm(UiUtil.getShell(), "Save before proceeding", \r
+                               if (!MessageDialog.openConfirm(GlobalController.getShell(), "Save before proceeding", \r
                                                "All changes must be saved before proceeding with this action.\n\n" +\r
                                                "Press \"OK\" to save and continue, or \"Cancel\" to cancel this action.")) {\r
                                        return;\r
                                                "All changes must be saved before proceeding with this action.\n\n" +\r
                                                "Press \"OK\" to save and continue, or \"Cancel\" to cancel this action.")) {\r
                                        return;\r
@@ -65,7 +66,7 @@ public class SwapSynonymAndTaxonAction extends Action {
                        }\r
                } catch (PartInitException e) {\r
                        e.printStackTrace();\r
                        }\r
                } catch (PartInitException e) {\r
                        e.printStackTrace();\r
-                       MessageDialog.openError(UiUtil.getShell(), "Error", "Error swapping synonym and taxon");\r
+                       MessageDialog.openError(GlobalController.getShell(), "Error", "Error swapping synonym and taxon");\r
                        return;\r
                }\r
                \r
                        return;\r
                }\r
                \r
index 8ea4287668ede45515fb8fe62a8ee2643abc3719..a719b848d288a5afd13dc3f634e98c8107a2852d 100644 (file)
@@ -21,7 +21,7 @@ import org.eclipse.swt.widgets.FileDialog;
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.cdm.io.common.CdmDefaultExport;\r
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;\r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.cdm.io.common.CdmDefaultExport;\r
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;\r
 \r
 /**\r
@@ -62,7 +62,7 @@ public class ExportAction extends Action {
                String title = "Export " + getText();\r
                \r
                // Get file from user\r
                String title = "Export " + getText();\r
                \r
                // Get file from user\r
-               dialog = new FileDialog(UiUtil.getShell(), SWT.SAVE);\r
+               dialog = new FileDialog(GlobalController.getShell(), SWT.SAVE);\r
                dialog.setFileName("export.xml");\r
                String filePath = dialog.open();\r
                file = new File(filePath);              \r
                dialog.setFileName("export.xml");\r
                String filePath = dialog.open();\r
                file = new File(filePath);              \r
@@ -84,9 +84,9 @@ public class ExportAction extends Action {
                \r
                // Tell user whether import was a success or a dismal failure\r
                if (isSuccessfulExport) {\r
                \r
                // Tell user whether import was a success or a dismal failure\r
                if (isSuccessfulExport) {\r
-                       MessageDialog.openInformation(UiUtil.getShell(), title, "Export successful");\r
+                       MessageDialog.openInformation(GlobalController.getShell(), title, "Export successful");\r
                } else {\r
                } else {\r
-                       MessageDialog.openError(UiUtil.getShell(), title, "Export was unsuccessful.");\r
+                       MessageDialog.openError(GlobalController.getShell(), title, "Export was unsuccessful.");\r
                }\r
        }\r
 }\r
                }\r
        }\r
 }\r
index f27c09b2033c06d3e4607a4ebad7752cd9e52355..26a3d6c5971da4296c10554ff0a09e4b506d308f 100644 (file)
@@ -19,7 +19,8 @@ import org.eclipse.swt.widgets.FileDialog;
 \r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.cdm.io.common.ImportWrapper;\r
 \r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.cdm.io.common.ImportWrapper;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.TreeController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;\r
 \r
 /**\r
@@ -57,7 +58,7 @@ public class ImportAction extends Action {
                String title = "Import " + getText();\r
                \r
                // Make sure user is aware of the implications of an import\r
                String title = "Import " + getText();\r
                \r
                // Make sure user is aware of the implications of an import\r
-               boolean doProceed = MessageDialog.openConfirm(UiUtil.getShell(), title, \r
+               boolean doProceed = MessageDialog.openConfirm(GlobalController.getShell(), title, \r
                                "Import may require a great deal of time and system resources.\n\n" +\r
                                "Are you sure you would like to proceed?");\r
                if (!doProceed) {\r
                                "Import may require a great deal of time and system resources.\n\n" +\r
                                "Are you sure you would like to proceed?");\r
                if (!doProceed) {\r
@@ -65,7 +66,7 @@ public class ImportAction extends Action {
                }\r
                \r
                // Get file from user\r
                }\r
                \r
                // Get file from user\r
-               dialog = new FileDialog(UiUtil.getShell());\r
+               dialog = new FileDialog(GlobalController.getShell());\r
                String filePath = dialog.open();\r
                file = new File(filePath);\r
                                                \r
                String filePath = dialog.open();\r
                file = new File(filePath);\r
                                                \r
@@ -83,7 +84,7 @@ public class ImportAction extends Action {
                        source = file.toURI().toURL().toString();\r
                        //source = file.toString();\r
                } catch (/*MalformedURL*/Exception e) {\r
                        source = file.toURI().toURL().toString();\r
                        //source = file.toString();\r
                } catch (/*MalformedURL*/Exception e) {\r
-                       MessageDialog.openError(UiUtil.getShell(), title, "File could not be read.");\r
+                       MessageDialog.openError(GlobalController.getShell(), title, "File could not be read.");\r
                        return;\r
                }\r
                \r
                        return;\r
                }\r
                \r
@@ -92,10 +93,10 @@ public class ImportAction extends Action {
                \r
                // Tell user whether import was a success or a dismal failure\r
                if (isSuccessfulImport) {\r
                \r
                // Tell user whether import was a success or a dismal failure\r
                if (isSuccessfulImport) {\r
-                       MessageDialog.openInformation(UiUtil.getShell(), title, "Import successful");\r
-                       UiUtil.getTreeViewer().refresh();\r
+                       MessageDialog.openInformation(GlobalController.getShell(), title, "Import successful");\r
+                       TreeController.getTreeViewer().refresh();\r
                } else {\r
                } else {\r
-                       MessageDialog.openError(UiUtil.getShell(), title, "Import was unsuccessful.");\r
+                       MessageDialog.openError(GlobalController.getShell(), title, "Import was unsuccessful.");\r
                }\r
                \r
        }\r
                }\r
                \r
        }\r
index 31e8160c28bc0adbd5b15a10353b26279bacb067..d956d6d0a1558b4f7397faf90456afd47f86a543 100644 (file)
@@ -18,7 +18,7 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.TreeController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
@@ -70,7 +70,7 @@ public class AddQuickNameAction extends Action {
                \r
                firePropertyChange(ITaxEditorConstants.QUICK_NAME_TAXON, null, quickNameTaxon);\r
                \r
                \r
                firePropertyChange(ITaxEditorConstants.QUICK_NAME_TAXON, null, quickNameTaxon);\r
                \r
-               TaxonomicTreeViewer treeViewer = UiUtil.getTreeViewer();\r
+               TaxonomicTreeViewer treeViewer = TreeController.getTreeViewer();\r
                if (treeViewer == null) {\r
                        return;\r
                }\r
                if (treeViewer == null) {\r
                        return;\r
                }\r
index 428099b7d23ef07d4617f0612cbf1b00c1b33405..53957c82135a91c2dc6f5bd57675728b8429e13b 100644 (file)
@@ -30,6 +30,9 @@ import eu.etaxonomy.taxeditor.editor.name.NameComposite;
  * @author p.ciardelli\r
  * @created 09.06.2008\r
  * @version 1.0\r
  * @author p.ciardelli\r
  * @created 09.06.2008\r
  * @version 1.0\r
+ * \r
+ * @deprecated\r
+ * TODO seems like this is not beeing used at the moment\r
  */\r
 public class ChangeCompositeToNewTaxonAction extends UndoableAction {\r
        private static final Logger logger = Logger\r
  */\r
 public class ChangeCompositeToNewTaxonAction extends UndoableAction {\r
        private static final Logger logger = Logger\r
index 5ae5d2cd6978744c96dd7272bf431d042c532608..5890907282083da64bdbdbbe111f86c5ef1a27cd 100644 (file)
@@ -23,9 +23,9 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.UndoableAction;\r
 import eu.etaxonomy.taxeditor.actions.cdm.SwapSynonymAndTaxonAction;\r
 import eu.etaxonomy.taxeditor.actions.UndoableAction;\r
 import eu.etaxonomy.taxeditor.actions.cdm.SwapSynonymAndTaxonAction;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.editor.name.NameComposite;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
 import eu.etaxonomy.taxeditor.editor.name.NameComposite;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
@@ -65,14 +65,8 @@ public class ChangeSynonymToTaxonUiAction extends UndoableAction {
                                                Taxon newTaxon = (Taxon) event.getNewValue();\r
 \r
                                                // Close editor for existing taxon\r
                                                Taxon newTaxon = (Taxon) event.getNewValue();\r
 \r
                                                // Close editor for existing taxon\r
-                                               IEditorPart oldEditor;\r
-                                               try {\r
-                                                       oldEditor = UiUtil.getEditorByTaxon(taxon);\r
-                                                       UiUtil.closeEditor(oldEditor, true);\r
-                                               } catch (PartInitException e) {\r
-                                                       // TODO Auto-generated catch block\r
-                                                       e.printStackTrace();\r
-                                               }\r
+                                               EditorController.close(taxon, true);\r
+                                               \r
 \r
                                                // Remove old taxon from tree\r
                                                CdmSessionDataRepository.getDefault().removeTaxon(taxon);\r
 \r
                                                // Remove old taxon from tree\r
                                                CdmSessionDataRepository.getDefault().removeTaxon(taxon);\r
index 7940a81ff69a1122d4266c561ce9f3748c0eeaaf..1bd8628fc16c3b10d4e250a4e416b7df5bf368b1 100644 (file)
 package eu.etaxonomy.taxeditor.actions.ui;\r
 \r
 import org.apache.log4j.Logger;\r
 package eu.etaxonomy.taxeditor.actions.ui;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.action.Action;\r
-import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.ui.IEditorPart;\r
-import org.eclipse.ui.PartInitException;\r
 \r
 \r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
-import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;\r
-import eu.etaxonomy.taxeditor.editor.SelectTaxonDialog;\r
-import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
-import eu.etaxonomy.taxeditor.model.CdmUtil;\r
-import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.ChangeTaxonToSynonymOperation;\r
 \r
 /**\r
  * @author p.ciardelli\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -44,99 +34,22 @@ public class ChangeTaxonToSynonymAction extends Action {
        private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
                        .getImageRegistry().getDescriptor(ITaxEditorConstants.TAXON_TO_SYNONYM_ICON);\r
 \r
        private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
                        .getImageRegistry().getDescriptor(ITaxEditorConstants.TAXON_TO_SYNONYM_ICON);\r
 \r
-       private Taxon oldTaxon;\r
+       private Taxon taxon;\r
 \r
        private ChangeTaxonToSynonymAction() {\r
                super(text);\r
                setImageDescriptor(image);\r
        }\r
 \r
 \r
        private ChangeTaxonToSynonymAction() {\r
                super(text);\r
                setImageDescriptor(image);\r
        }\r
 \r
-       public ChangeTaxonToSynonymAction(Taxon oldTaxon) {\r
+       public ChangeTaxonToSynonymAction(Taxon taxon) {\r
                this();\r
                this();\r
-               this.oldTaxon = oldTaxon;\r
+               this.taxon = taxon;\r
        }\r
 \r
        public void run() {\r
        }\r
 \r
        public void run() {\r
+               IUndoableOperation operation = new ChangeTaxonToSynonymOperation(getText(), \r
+                               GlobalController.getWorkbenchUndoContext(), taxon);\r
                \r
                \r
-               IEditorPart oldEditor = null;\r
-               \r
-               try {   \r
-                       // Prompt user "Would you like to save?" before showing dialog\r
-                       // "Cancel" cancels action - "No" does not\r
-                       oldEditor = UiUtil.getEditorByTaxon(oldTaxon);\r
-                       if (oldEditor.isDirty()) {\r
-                               if (!MessageDialog.openConfirm(UiUtil.getShell(), "Save before proceeding", \r
-                                               "All changes must be saved before proceeding with this action.\n\n" +\r
-                                               "Press \"OK\" to save and continue, or \"Cancel\" to cancel this action.")) {\r
-                                       return;\r
-                               }\r
-                               oldEditor.doSave(null);\r
-                       }\r
-//                     if (UiUtil.getActivePage().saveEditor(oldEditor, true) == false) {\r
-//                             return;\r
-//                     }\r
-               } catch (PartInitException e1) {\r
-                       e1.printStackTrace();\r
-               }\r
-               \r
-               // Get destination taxon from dialog\r
-               Shell shell = UiUtil.getShell();\r
-               SelectTaxonDialog dialog = new SelectTaxonDialog(shell, SelectTaxonDialog.TAXON_TO_SYNONYM);\r
-               Taxon destinationTaxon = dialog.open(oldTaxon);\r
-               \r
-               // Abort action if user cancelled dialog without choosing a taxon\r
-               if (destinationTaxon == null) {\r
-                       return;\r
-               }\r
-                               \r
-               // Move oldTaxon in CDM\r
-               TaxonNameBase synonymName = oldTaxon.getName();\r
-               SynonymRelationshipType synonymType;\r
-               if (CdmUtil.isNameHomotypic(synonymName, destinationTaxon)) {\r
-//                     makeTaxonSynonym\r
-//                     oldTaxon.makeSynonym();\r
-//                     destinationTaxon.addHomotypicSynonymName(synonymName);\r
-                       synonymType = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF();\r
-               } else {\r
-//                     destinationTaxon.addHeterotypicSynonymName(synonymName);\r
-                       synonymType = SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF();\r
-               }\r
-               CdmUtil.makeTaxonSynonym(oldTaxon, destinationTaxon, synonymType,\r
-                               null, null);\r
-               \r
-               // TODO move any children, descriptions, synonyms\r
-               for (TaxonDescription description: oldTaxon.getDescriptions()) {\r
-                       destinationTaxon.addDescription(description);\r
-                       oldTaxon.removeDescription(description);\r
-               }\r
-               \r
-               for (TaxonRelationship fromRelation : oldTaxon.getRelationsFromThisTaxon()) {\r
-                       fromRelation.setFromTaxon(destinationTaxon);\r
-               }\r
-               \r
-               for (TaxonRelationship toRelation : oldTaxon.getRelationsToThisTaxon()) {\r
-                       toRelation.setToTaxon(destinationTaxon);\r
-               }\r
-                               \r
-//             if (!TaxEditorPlugin.getDefault().getObservableRecentNamesList().\r
-//                             contains(oldTaxon)) {   \r
-//                     TaxEditorPlugin.getDefault().getObservableRecentNamesList().\r
-//                                     remove(oldTaxon);\r
-//                     RecentNamesView.removeRecentName(oldTaxon);\r
-//             }\r
-               \r
-               CdmSessionDataRepository.getDefault().removeTaxon(oldTaxon);    \r
-                               \r
-               // Close open editor for oldTaxon without forcing save.\r
-               // User has already saved or declined to do so above.\r
-               try {\r
-                       UiUtil.closeEditor(oldEditor, false);\r
-               } catch (PartInitException e) {\r
-                       e.printStackTrace();\r
-               }\r
-               \r
-               // Open editor for new oldTaxon\r
-               new SaveTaxonAction(destinationTaxon).run();\r
-               new OpenTaxonEditorAction(destinationTaxon).run();\r
+               GlobalController.executeOperation(operation);\r
        }\r
 }
\ No newline at end of file
        }\r
 }
\ No newline at end of file
index 5ba19336cf43619d1f2f29b6a134c7318521ae27..a416690814b66a3b69f7b28d87cf046a18956c3e 100644 (file)
@@ -27,8 +27,8 @@ import org.eclipse.jface.util.PropertyChangeEvent;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.cdm.DeleteMisappliedNameFromTaxonAction;\r
 import eu.etaxonomy.taxeditor.actions.cdm.DeleteMisappliedNameFromTaxonAction;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.name.NameComposite;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.editor.name.NameComposite;\r
 \r
 /**\r
@@ -72,8 +72,8 @@ public class DeleteMisappliedNameCompositeAction extends Action {
        }\r
 \r
        public void run() {\r
        }\r
 \r
        public void run() {\r
-               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-               IUndoContext undoContext = UiUtil.getWorkbenchUndoContext();\r
+               IOperationHistory operationHistory = GlobalController.getOperationHistory();\r
+               IUndoContext undoContext = GlobalController.getWorkbenchUndoContext();\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
index 3b86e3ee553f63fadad8b3c4d47dd3caa328e25a..ae7bea49a6bd8904e03bad8a481dabcf7ae09970 100644 (file)
@@ -28,14 +28,18 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.cdm.DeleteSynonymFromTaxonAction;\r
 import eu.etaxonomy.taxeditor.actions.cdm.DeleteSynonymFromTaxonAction;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.name.NameComposite;\r
 \r
 /**\r
  * @author p.ciardelli\r
  * @created 04.06.2008\r
  * @version 1.0\r
 import eu.etaxonomy.taxeditor.editor.name.NameComposite;\r
 \r
 /**\r
  * @author p.ciardelli\r
  * @created 04.06.2008\r
  * @version 1.0\r
+ * \r
+ * @deprecated \r
+ * \r
+ * TODO delete this deprecated class\r
  */\r
 public class DeleteSynonymCompositeAction extends Action {\r
        private static final Logger logger = Logger\r
  */\r
 public class DeleteSynonymCompositeAction extends Action {\r
        private static final Logger logger = Logger\r
@@ -73,8 +77,8 @@ public class DeleteSynonymCompositeAction extends Action {
        }\r
 \r
        public void run() {\r
        }\r
 \r
        public void run() {\r
-               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-               IUndoContext undoContext = UiUtil.getWorkbenchUndoContext();\r
+               IOperationHistory operationHistory = GlobalController.getOperationHistory();\r
+               IUndoContext undoContext = GlobalController.getWorkbenchUndoContext();\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
index 2b58358a42334e89f19e3ecc4bc15a48fd1261aa..445535b7ee46548a47fdfdf00391b2af0d7600a6 100644 (file)
@@ -10,6 +10,8 @@
 package eu.etaxonomy.taxeditor.actions.ui;\r
 \r
 import org.apache.log4j.Logger;\r
 package eu.etaxonomy.taxeditor.actions.ui;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.widgets.Shell;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.widgets.Shell;\r
@@ -20,10 +22,12 @@ import org.eclipse.ui.PartInitException;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.cdm.MoveTaxonAction;\r
 import eu.etaxonomy.taxeditor.actions.cdm.MoveTaxonAction;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.SelectTaxonDialog;\r
 import eu.etaxonomy.taxeditor.model.NameEditorInput;\r
 import eu.etaxonomy.taxeditor.editor.SelectTaxonDialog;\r
 import eu.etaxonomy.taxeditor.model.NameEditorInput;\r
+import eu.etaxonomy.taxeditor.operations.MoveTaxonOperation;\r
 \r
 /**\r
  * @author p.ciardelli\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -57,9 +61,8 @@ public class MoveTaxonDialogAction extends Action {
                try {   \r
                        // Prompt user "Would you like to save?" before showing dialog\r
                        // "Cancel" cancels action - "No" does not\r
                try {   \r
                        // Prompt user "Would you like to save?" before showing dialog\r
                        // "Cancel" cancels action - "No" does not\r
-                       IEditorInput editorInput = new NameEditorInput(taxon);\r
-                       editor = UiUtil.getEditorByInput(editorInput);\r
-                       if (UiUtil.getActivePage().saveEditor(editor, true) == false) {\r
+                       editor = EditorController.getEditorByTaxon(taxon);\r
+                       if (GlobalController.getActivePage().saveEditor(editor, true) == false) {\r
                                return;\r
                        }\r
                } catch (PartInitException e1) {\r
                                return;\r
                        }\r
                } catch (PartInitException e1) {\r
@@ -67,7 +70,7 @@ public class MoveTaxonDialogAction extends Action {
                }\r
                \r
                // Get destination taxon from dialog\r
                }\r
                \r
                // Get destination taxon from dialog\r
-               Shell shell = UiUtil.getShell();\r
+               Shell shell = GlobalController.getShell();\r
                SelectTaxonDialog dialog = new SelectTaxonDialog(shell, SelectTaxonDialog.TAXON_TO_NEW_PARENT);\r
                Taxon destinationTaxon = dialog.open(taxon);\r
                \r
                SelectTaxonDialog dialog = new SelectTaxonDialog(shell, SelectTaxonDialog.TAXON_TO_NEW_PARENT);\r
                Taxon destinationTaxon = dialog.open(taxon);\r
                \r
@@ -77,8 +80,10 @@ public class MoveTaxonDialogAction extends Action {
                }\r
                                \r
                // Move taxon in CDM\r
                }\r
                                \r
                // Move taxon in CDM\r
-//             Taxon oldParent = taxon.getTaxonomicParent();\r
-               new MoveTaxonAction(taxon, destinationTaxon).run();\r
+               IUndoableOperation operation = new MoveTaxonOperation(this.getText(), \r
+                               GlobalController.getWorkbenchUndoContext(), taxon, destinationTaxon);\r
+               \r
+               GlobalController.executeOperation(operation);\r
                \r
                // For some reason, old parent is not getting the hint that one of its children is gone\r
 //             new SaveTaxonAction(oldParent).run();\r
                \r
                // For some reason, old parent is not getting the hint that one of its children is gone\r
 //             new SaveTaxonAction(oldParent).run();\r
index e5750610541c6b0f7fa5a3d2596066bb0c4c031a..cd20d1376145393b47faf08a18a39eedcb9908ac 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.jface.wizard.WizardDialog;
 \r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 \r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.propertysheet.namerelationswizard.NameRelationWizard;\r
 import eu.etaxonomy.taxeditor.propertysheet.namerelationswizard.NameRelationWizardModel;\r
 \r
 import eu.etaxonomy.taxeditor.propertysheet.namerelationswizard.NameRelationWizard;\r
 import eu.etaxonomy.taxeditor.propertysheet.namerelationswizard.NameRelationWizardModel;\r
 \r
@@ -73,7 +73,7 @@ public class OpenNameRelationWizardAction extends Action {
                \r
                Wizard wizard = new NameRelationWizard(relationModel);\r
                \r
                \r
                Wizard wizard = new NameRelationWizard(relationModel);\r
                \r
-               WizardDialog dialog = new WizardDialog(UiUtil.getShell(), wizard);\r
+               WizardDialog dialog = new WizardDialog(GlobalController.getShell(), wizard);\r
                dialog.create();\r
                dialog.open();\r
        }\r
                dialog.create();\r
                dialog.open();\r
        }\r
index 7f04fb74f4c3c77e13c76e2714f6ab7f68518847..cc9e114a19cf7df55f89e3874916084a2800c3b5 100644 (file)
@@ -18,7 +18,7 @@ import org.eclipse.jface.wizard.WizardDialog;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.propertysheet.namerelationswizard.NameRelationsListWizard;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.propertysheet.namerelationswizard.NameRelationsListWizard;\r
 \r
 /**\r
@@ -57,7 +57,7 @@ public class OpenNameRelationsListWizardAction extends Action {
                Wizard wizard = new NameRelationsListWizard(name);\r
 \r
                // Instantiates the wizard container with the wizard and opens it\r
                Wizard wizard = new NameRelationsListWizard(name);\r
 \r
                // Instantiates the wizard container with the wizard and opens it\r
-               WizardDialog dialog = new WizardDialog(UiUtil.getShell(), wizard);\r
+               WizardDialog dialog = new WizardDialog(GlobalController.getShell(), wizard);\r
                dialog.create();\r
                dialog.open();\r
        }\r
                dialog.create();\r
                dialog.open();\r
        }\r
index 55523882d52b08a48b041a8c5575cd42f499d16e..96346fe9295187a0821495c30d78f5ceb8b444b7 100644 (file)
@@ -12,17 +12,13 @@ package eu.etaxonomy.taxeditor.actions.ui;
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
-import org.eclipse.ui.PartInitException;\r
 \r
 \r
-import eu.etaxonomy.cdm.model.name.BotanicalName;\r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
-import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 \r
 /**\r
@@ -65,11 +61,8 @@ public class OpenNewChildNameEditorAction extends Action {
                parentTaxon.addTaxonomicChild(taxon, null, null);\r
                \r
                // Open editor for new taxon\r
                parentTaxon.addTaxonomicChild(taxon, null, null);\r
                \r
                // Open editor for new taxon\r
-               try {\r
-                       UiUtil.openTaxonEditor(taxon);\r
-               } catch (PartInitException e) {\r
-                       e.printStackTrace();\r
-               }\r
+               EditorController.open(taxon);\r
+               \r
                \r
                //new OpenTaxonEditorAction(taxon).run();\r
        }\r
                \r
                //new OpenTaxonEditorAction(taxon).run();\r
        }\r
index d0d19433966a3bd4389f90b13385af034cbd1a6f..972ae0d2224cbc7c99eb0297b716d09c9924dc12 100644 (file)
@@ -14,21 +14,11 @@ import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.jface.viewers.ISelection;\r
 import org.eclipse.jface.action.IAction;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.ui.IEditorInput;\r
 import org.eclipse.ui.IWorkbenchWindow;\r
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;\r
 import org.eclipse.ui.IWorkbenchWindow;\r
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;\r
-import org.eclipse.ui.PartInitException;\r
 \r
 \r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;\r
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
-import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
-import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
-import eu.etaxonomy.taxeditor.model.NameEditorInput;\r
-import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
-import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
 \r
 /**\r
  * Opens a taxon editor for an existing or new taxon.\r
 \r
 /**\r
  * Opens a taxon editor for an existing or new taxon.\r
@@ -70,11 +60,7 @@ public class OpenTaxonEditorAction extends Action implements IWorkbenchWindowAct
        @Override\r
        public void run() {\r
                \r
        @Override\r
        public void run() {\r
                \r
-       try {\r
-                       UiUtil.openTaxonEditor(taxon);\r
-               } catch (PartInitException e) {\r
-                       e.printStackTrace();\r
-               }\r
+       EditorController.open(taxon);\r
                \r
                // For clients who re-use the same instance of this class, \r
                //      taxon is re-initalized to ensure a new Taxon is opened every time\r
                \r
                // For clients who re-use the same instance of this class, \r
                //      taxon is re-initalized to ensure a new Taxon is opened every time\r
index a14843378bac26030c97484cb3eedb092599ebd3..a6d3fd1df18570c18ce5eb714051d12fe95f2906 100644 (file)
@@ -31,7 +31,7 @@ import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
 import eu.etaxonomy.cdm.model.description.TextData;\r
 import eu.etaxonomy.cdm.model.description.TextFormat;\r
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
 import eu.etaxonomy.cdm.model.description.TextData;\r
 import eu.etaxonomy.cdm.model.description.TextFormat;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.description.DescriptionElementComposite;\r
 import eu.etaxonomy.taxeditor.editor.description.FeatureGroupComposite;\r
 \r
 import eu.etaxonomy.taxeditor.editor.description.DescriptionElementComposite;\r
 import eu.etaxonomy.taxeditor.editor.description.FeatureGroupComposite;\r
 \r
@@ -97,8 +97,8 @@ public class AddDescriptionElementCompositeAction extends Action {
        }\r
 \r
        public void run() {\r
        }\r
 \r
        public void run() {\r
-               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-               IUndoContext undoContext = UiUtil.getWorkbenchUndoContext();\r
+               IOperationHistory operationHistory = GlobalController.getOperationHistory();\r
+               IUndoContext undoContext = GlobalController.getWorkbenchUndoContext();\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
index 9aecf8e559279eae2d4a13d500ae14c36a3f2cf9..f6f0be097c82da42e999e213cd6fa81f50d2df77 100644 (file)
@@ -28,7 +28,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 \r
 /**\r
  * @author p.ciardelli\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -83,8 +83,8 @@ public class DeleteElementCompositeAction extends Action {
        }\r
 \r
        public void run() {\r
        }\r
 \r
        public void run() {\r
-               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-               IUndoContext undoContext = UiUtil.getWorkbenchUndoContext();\r
+               IOperationHistory operationHistory = GlobalController.getOperationHistory();\r
+               IUndoContext undoContext = GlobalController.getWorkbenchUndoContext();\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
                operation.addContext(undoContext);\r
                try {\r
                        operationHistory.execute(operation, null, null);\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/EditorController.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/EditorController.java
new file mode 100644 (file)
index 0000000..1d80090
--- /dev/null
@@ -0,0 +1,291 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.controller;\r
+\r
+import java.util.HashMap;\r
+import java.util.HashSet;\r
+import java.util.Map;\r
+import java.util.Set;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IOperationHistory;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.ui.IEditorInput;\r
+import org.eclipse.ui.IEditorPart;\r
+import org.eclipse.ui.IEditorReference;\r
+import org.eclipse.ui.IWorkbenchPage;\r
+import org.eclipse.ui.PartInitException;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.datasource.CdmTransactionController;\r
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
+import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
+import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+import eu.etaxonomy.taxeditor.model.NameEditorInput;\r
+import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
+import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 20.01.2009\r
+ * @version 1.0\r
+ */\r
+public class EditorController {\r
+       private static final Logger logger = Logger.getLogger(EditorController.class);\r
+\r
+\r
+       private static Map<Taxon, TaxonNameEditor> taxonNameEditors;\r
+\r
+\r
+       private static boolean isSaving = false;\r
+       \r
+       private static IWorkbenchPage getActivePage(){\r
+               return GlobalController.getActivePage();\r
+       }\r
+       \r
+       /**\r
+        * @param input\r
+        * @return\r
+        * @throws PartInitException\r
+        */\r
+       private static IEditorPart getEditorByInput(IEditorInput input)\r
+                       throws PartInitException {\r
+               for (IEditorReference reference : getActivePage().getEditorReferences()) {\r
+                       if (reference.getEditorInput().equals(input)) {\r
+                               IEditorPart editor = reference.getEditor(false);\r
+                               return editor;\r
+                       }\r
+               }\r
+               return null;\r
+       }\r
+\r
+       public static boolean closeAll() {\r
+               for (IEditorPart editor : getOpenEditors()) {\r
+                       if (!getActivePage().closeEditor(editor, true)) {\r
+                               return false;\r
+                       }\r
+               }\r
+               return true;\r
+       }\r
+\r
+       public static IEditorPart getEditorByTaxon(Taxon taxon)\r
+                       throws PartInitException {\r
+               IEditorInput input = new NameEditorInput(taxon);\r
+               return getEditorByInput(input);\r
+       }\r
+\r
+       /**\r
+        * @param input\r
+        * @param editorId\r
+        * @return \r
+        * @throws PartInitException\r
+        */\r
+       private static IEditorPart open(IEditorInput input, String editorId)\r
+                       throws PartInitException {\r
+               return getActivePage().openEditor(input, editorId);\r
+       }\r
+\r
+       /**\r
+        * Open an emtpy taxon editor\r
+        * \r
+        * @return\r
+        * @throws PartInitException\r
+        */\r
+       public static IEditorPart open() \r
+                       throws PartInitException{\r
+               return open(null);\r
+       }\r
+\r
+       /** \r
+        * Open a taxon editor for the given taxon\r
+        * \r
+        * @param taxon\r
+        * @return\r
+        * @throws PartInitException\r
+        */\r
+       public static IEditorPart open(Taxon taxon){\r
+               if(taxon == null){\r
+                       TaxonNameBase name = CdmParserController.parseFullReference("", null, null);\r
+                       name.setFullTitleCache("", false);\r
+                       name.setTitleCache("", false);\r
+                       taxon = Taxon.NewInstance(name, \r
+                                       CdmSessionDataRepository.getDefault().getDefaultSec());\r
+               }else{\r
+                       // If this taxon is not visible in the tree, open node\r
+                       TaxonomicTreeViewer treeViewer = TreeController.getTreeViewer(); \r
+                       if (treeViewer != null) {\r
+                               treeViewer.revealTaxon(taxon);\r
+                       }\r
+                       \r
+                       // Add to recent names list\r
+                       RecentNamesView.addRecentName(taxon);\r
+               }\r
+               \r
+               IEditorInput input = new NameEditorInput(taxon);\r
+               \r
+               try {\r
+                       return open(input, MultiPageTaxonEditor.ID);\r
+               } catch (PartInitException e) {\r
+                       logger.error("Error opening editor.", e);\r
+               }\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Redraws an open editor if it exists for the given taxon\r
+        * \r
+        * @param taxon\r
+        * @return\r
+        */\r
+       public static boolean redraw(Taxon taxon){\r
+               \r
+               TaxonNameEditor editor = EditorController.getEditor(taxon);\r
+               \r
+               if(editor == null || editor.redraw()){\r
+                       \r
+                       // Mark editor as changed and unsaved\r
+                       editor.setDirty();\r
+                       \r
+                       return true;    \r
+               }       \r
+               return false;\r
+       }\r
+\r
+       /**\r
+        * @param taxon\r
+        * @param save\r
+        */\r
+       public static void close(Taxon taxon, boolean save) {\r
+               IEditorPart editor;\r
+               try {\r
+                       editor = getEditorByTaxon(taxon);\r
+                       close(editor, save);\r
+               } catch (PartInitException e) {\r
+                       logger.error("Error closing taxon editor", e);\r
+               }\r
+               \r
+       }\r
+\r
+       /**\r
+        * @param editor\r
+        * @param save\r
+        * @throws PartInitException\r
+        */\r
+       private static void close(IEditorPart editor, boolean save)\r
+                       throws PartInitException {\r
+               if (editor != null) {\r
+                       getActivePage().closeEditor(editor, save);\r
+               }\r
+       }\r
+\r
+       public static void save(Taxon taxon, boolean confirm) {\r
+               IEditorPart editor = null;\r
+               try {\r
+                       editor = getEditorByTaxon(taxon);\r
+               } catch (PartInitException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
+               if (editor != null) {\r
+                       GlobalController.getActivePage().saveEditor(editor, confirm);\r
+               }\r
+       }\r
+\r
+       public static void saveAll(){\r
+               setSaving(true);\r
+               \r
+               // Get all open windows\r
+               for (IEditorPart taxonEditor : getOpenEditors()) {\r
+       \r
+                       // Save the dirty ones\r
+                       if (taxonEditor.isDirty()) {\r
+                               \r
+                               \r
+                               IEditorInput input = taxonEditor.getEditorInput();\r
+                               if (input.getAdapter(Taxon.class) != null) {\r
+                                       Taxon taxon = (Taxon) input.getAdapter(Taxon.class);\r
+                                       CdmSessionDataRepository.getDefault().saveTaxon(taxon);\r
+                                       if (taxonEditor instanceof MultiPageTaxonEditor) {\r
+                                               ((MultiPageTaxonEditor) taxonEditor).setDirtyExtern(false);\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       \r
+               // Commit the transaction       \r
+               CdmTransactionController.commitTransaction();\r
+       \r
+               // Force library objects to be associated with new transaction\r
+               CdmSessionDataRepository.getDefault().clearNonTaxonData();\r
+               \r
+               // Start a new transaction\r
+               CdmTransactionController.startTransaction();\r
+               \r
+               // Put all open taxa in the new transaction\r
+               CdmTransactionController.addSessionTaxaToTransaction();\r
+               \r
+               setSaving(false);\r
+               // TODO: delete undoHistory\r
+       }\r
+\r
+       public static void setSaving(boolean isSaving) {\r
+               EditorController.isSaving = isSaving;\r
+       }\r
+\r
+       public static boolean isSaving() {\r
+               return isSaving;\r
+       }\r
+\r
+       public static void addEditor(\r
+                       Taxon taxon, TaxonNameEditor taxonNameEditor) {\r
+               if (taxonNameEditors == null) {\r
+                       taxonNameEditors = new HashMap<Taxon, TaxonNameEditor>();\r
+               }\r
+               taxonNameEditors.put(taxon, taxonNameEditor);\r
+       }\r
+\r
+       public static TaxonNameEditor getEditor(Taxon taxon) {\r
+               if (taxonNameEditors == null) {\r
+                       return null;\r
+               }\r
+               return taxonNameEditors.get(taxon);\r
+       }\r
+\r
+       /**\r
+        * Returns a set of all currently open \r
+        * <code>MultiPageTaxonEditor</code>s.\r
+        * \r
+        * @return\r
+        */\r
+       public static Set<IEditorPart> getOpenEditors() {\r
+               \r
+               Set<IEditorPart> taxonEditors = new HashSet<IEditorPart>();\r
+               \r
+               for (IEditorReference reference : getActivePage().getEditorReferences()) {\r
+                       IEditorPart editor = reference.getEditor(false);\r
+                       if (editor instanceof MultiPageTaxonEditor) {\r
+                               taxonEditors.add(editor);\r
+                       }\r
+               }\r
+               return taxonEditors;\r
+       }\r
+\r
+       public static IUndoContext getUndoContext(Taxon taxon) {\r
+                       // TODO make this taxon name editor specific\r
+       //              return getTaxonNameEditor(taxon).getUndoContext();\r
+                       return IOperationHistory.GLOBAL_UNDO_CONTEXT;\r
+       }\r
+\r
+\r
+       \r
+\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/GlobalController.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/GlobalController.java
new file mode 100644 (file)
index 0000000..e6d9b6f
--- /dev/null
@@ -0,0 +1,161 @@
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.controller;\r
+\r
+import java.util.Set;\r
+import java.util.SortedSet;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IOperationHistory;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.jface.action.IStatusLineManager;\r
+import org.eclipse.swt.widgets.Shell;\r
+import org.eclipse.ui.IViewPart;\r
+import org.eclipse.ui.IWorkbenchPage;\r
+import org.eclipse.ui.operations.IWorkbenchOperationSupport;\r
+\r
+import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
+import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+\r
+/**\r
+ * A collection of useful methods related to the UI.\r
+ * \r
+ * @author p.ciardelli\r
+ * @created 27.05.2008\r
+ * @version 1.0\r
+ */\r
+public class GlobalController {\r
+       private static final Logger logger = Logger.getLogger(GlobalController.class);\r
+\r
+       private static Set<Feature> preferredFeatureSet;\r
+       private static Set<Rank> preferredRankSet;\r
+       \r
+       /**\r
+        * @return\r
+        */\r
+       public static IWorkbenchPage getActivePage() {\r
+               return TaxEditorPlugin.getDefault().getWorkbench()\r
+                               .getActiveWorkbenchWindow().getActivePage();\r
+       }\r
+\r
+       /**\r
+        * @return\r
+        */\r
+       public static Shell getShell() {\r
+               return TaxEditorPlugin.getDefault().getWorkbench()\r
+                               .getActiveWorkbenchWindow().getShell();\r
+       }\r
+\r
+       public static IViewPart getViewById(String id) {\r
+               return TaxEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().\r
+                               getActivePage().findView(id);\r
+       }\r
+       \r
+\r
+       public static IWorkbenchOperationSupport getOperationSupport() {\r
+               return TaxEditorPlugin.getDefault().getWorkbench().\r
+                               getOperationSupport();\r
+       }\r
+       \r
+       public static IOperationHistory getOperationHistory() {\r
+//             if (operationHistory == null) {\r
+////                   operationHistory = getOperationSupport().getOperationHistory();\r
+//                     operationHistory = OperationHistoryFactory.getOperationHistory();\r
+//             }\r
+//             return operationHistory;\r
+               return getOperationSupport().getOperationHistory();\r
+       }\r
+\r
+       public static IUndoContext getWorkbenchUndoContext() {\r
+               // TODO make this more specific than GLOBAL_UNDO_CONTEXT\r
+//             return getOperationSupport().getUndoContext();\r
+               return IOperationHistory.GLOBAL_UNDO_CONTEXT;\r
+       }\r
+\r
+       public static void setStatusMessage(String msg) {\r
+               PropertySheetController.getPropertySheet().getViewSite().getActionBars().getStatusLineManager().setMessage(msg); \r
+       }\r
+\r
+       /**\r
+        * Get the name out of the session's name relations vocabulary, not directly\r
+        * from the object. \r
+        * \r
+        * @param type\r
+        * @return\r
+        */\r
+       public static String getNameRelationLabelType(NameRelationshipType type) {\r
+               SortedSet<NameRelationshipType> vocab = \r
+                               CdmSessionDataRepository.getDefault().getNameRelationshipTypes();\r
+               for (NameRelationshipType type1 : vocab) {\r
+                       if (type1.equals(type)) {\r
+                               return type1.getLabel();\r
+                       }\r
+               }\r
+               return "";\r
+       }\r
+       \r
+       private static IStatusLineManager statusLineManager;\r
+\r
+       public static void setStatusLineManager(IStatusLineManager manager) {\r
+               statusLineManager = manager;\r
+       }\r
+\r
+       public static void setStatusLine(String message) {\r
+               statusLineManager.setMessage(message);\r
+       }\r
+       \r
+       public static IProgressMonitor getStatusLineProgressMonitor() {\r
+               statusLineManager.setCancelEnabled(false);\r
+               return statusLineManager.getProgressMonitor();\r
+       }\r
+\r
+       public static Set<Feature> getPreferredFeatures() {\r
+               return preferredFeatureSet;\r
+       }\r
+\r
+       public static void setPreferredFeatures(Set<Feature> preferredFeatureSet) {\r
+               GlobalController.preferredFeatureSet = preferredFeatureSet;\r
+       }\r
+\r
+       public static Set<Rank> getPreferredRanks() {\r
+               return preferredRankSet;\r
+       }\r
+\r
+       public static void setPreferredRanks(Set<Rank> preferredRankSet) {\r
+               GlobalController.preferredRankSet = preferredRankSet;\r
+       }\r
+\r
+       public static void addPreferredRank(Rank rank) {\r
+               preferredRankSet.add(rank);\r
+       }\r
+\r
+       public static void addPreferredFeature(Feature feature) {\r
+               GlobalController.preferredFeatureSet.add(feature);              \r
+       }\r
+       \r
+       public static void executeOperation(IUndoableOperation operation){\r
+               try {\r
+                       IStatus status = getOperationHistory().execute(operation, getStatusLineProgressMonitor(), null);\r
+                       String statusString = status.equals(Status.OK_STATUS) ? "completed" : "cancelled";\r
+                       setStatusLine(operation.getLabel() + " " + statusString + ".");\r
+               } catch (ExecutionException e) {\r
+                       logger.error("Error executing operation: " + operation.getLabel(), e);\r
+               }\r
+       }\r
+\r
+}
\ No newline at end of file
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/PropertySheetController.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/PropertySheetController.java
new file mode 100644 (file)
index 0000000..9b54ed3
--- /dev/null
@@ -0,0 +1,180 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.controller;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.swt.graphics.Color;\r
+import org.eclipse.swt.widgets.Tree;\r
+import org.eclipse.swt.widgets.TreeItem;\r
+import org.eclipse.ui.IActionBars;\r
+import org.eclipse.ui.IPageLayout;\r
+import org.eclipse.ui.IViewPart;\r
+import org.eclipse.ui.IViewReference;\r
+import org.eclipse.ui.views.properties.PropertySheet;\r
+import org.eclipse.ui.views.properties.PropertySheetPage;\r
+\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.propertysheet.CustomSortPropertySheetEntry;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 20.01.2009\r
+ * @version 1.0\r
+ */\r
+public class PropertySheetController {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(PropertySheetController.class);\r
+\r
+       public static IViewPart getPropertySheet() {\r
+               for (IViewReference reference : GlobalController.getActivePage().getViewReferences()) {\r
+                       if (reference.getId().equals(IPageLayout.ID_PROP_SHEET)) {\r
+                               logger.warn(reference.getView(false).getSite().getPart().getTitle());\r
+                               return reference.getView(false);\r
+                       }\r
+               }\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * By default, property sheet has buttons in the toolbar for \r
+        * "Show advanced properties" and "Show categories".\r
+        * <p>\r
+        * This is confusing for the user, hence a method to remove them\r
+        * until such time as advanced properties or categories are implemented.\r
+        */\r
+       public static void hidePropertySheetToolbar() {\r
+               PropertySheet propertySheet = (PropertySheet) getPropertySheet();\r
+               IActionBars actionBars = propertySheet.getViewSite().getActionBars();\r
+               actionBars.getToolBarManager().removeAll();\r
+               actionBars.getMenuManager().removeAll();\r
+       }\r
+\r
+       /**\r
+                * The property sheet listener ensures only property sheets\r
+                *      with data cause the Property Sheet to be updated.\r
+                */\r
+               public static void addPropertySheetInputListener() {\r
+                       IViewPart propertySheet = getPropertySheet();\r
+       //              propertySheet.get\r
+                       PropertySheet ps = (PropertySheet) propertySheet;\r
+       //              ps.addPartPropertyListener(listener)\r
+       //              ps.addPropertyListener(l)\r
+               }\r
+\r
+       public static void setPropertySheetTree(Tree tree) {\r
+               TaxEditorPlugin.getDefault().setPropertySheetTree(tree);                \r
+       }\r
+\r
+       public static Tree getPropertySheetTree() {\r
+               return TaxEditorPlugin.getDefault().getPropertySheetTree();             \r
+       }\r
+\r
+       public static void setPropertySheetPage(PropertySheetPage page) {\r
+               TaxEditorPlugin.getDefault().setPropertySheetPage(page);\r
+       }\r
+\r
+       public static PropertySheetPage getPropertySheetPage() {\r
+               return TaxEditorPlugin.getDefault().getPropertySheetPage();     \r
+       }\r
+\r
+       /**\r
+        *              UiUtil.paintPropertySheetRow(P_DATEPUBLISHED, new Color(Display.getDefault(), WarningAnnotation.WARNING_RGB), true);\r
+        *              UiUtil.unpaintPropertySheetRow(P_DATEPUBLISHED);\r
+        * \r
+        * @param id\r
+        * @param color\r
+        * @param doPaintChildren\r
+        */\r
+       public static void paintPropertySheetRow(String id, Color color, boolean doPaintChildren) {\r
+               \r
+               // Catch null property sheet name\r
+               if (id == null) {\r
+                       return;\r
+               }\r
+               \r
+               // Catch uninit'ed property sheet tree\r
+               if (getPropertySheetTree() == null) {\r
+                       return;\r
+               }\r
+               \r
+               paintPropertySheetRow(id, color, doPaintChildren, getPropertySheetTree());\r
+       }\r
+\r
+       private static void paintPropertySheetRow(String id, Color color, boolean doPaintChildren, Object treeOrItem) {\r
+               \r
+               // Init items w zero-length array\r
+               TreeItem[] items = new TreeItem[]{};\r
+               \r
+               // Get child items depending to class\r
+               if (treeOrItem instanceof Tree) {\r
+                       items = ((Tree) treeOrItem).getItems();\r
+               }\r
+               if (treeOrItem instanceof TreeItem) {\r
+                       items = ((TreeItem) treeOrItem).getItems();\r
+               }\r
+               \r
+               // If array hasn't been populated by the above, return\r
+               if (items.length == 0) {\r
+                       return;\r
+               }\r
+       \r
+               // Prop. sheet id's take the form "01:xxxx" for sorting - truncate\r
+               id = CustomSortPropertySheetEntry.truncateDisplayName(id);\r
+               \r
+               // Iterate through child items\r
+               for (TreeItem item : items) {\r
+       \r
+                       // Item found, paint it\r
+                       if (id.equals(item.getText())) {\r
+                               paintItem(item, color, doPaintChildren);\r
+                               return;\r
+                       }                       \r
+       \r
+                       // Recursively search for item to paint in child items\r
+                       if (item.getItemCount() > 0) {\r
+                               paintPropertySheetRow(id, color, doPaintChildren, item);\r
+                       }\r
+               }       \r
+       }\r
+\r
+       public static void unpaintPropertySheetRow(String id) {\r
+               \r
+               // Catch uninit'ed property sheet tree\r
+               if (getPropertySheetTree() == null) {\r
+                       return;\r
+               }\r
+               \r
+               // Get tree's background color to "unpaint"\r
+               Color color = getPropertySheetTree().getBackground();\r
+               \r
+               paintPropertySheetRow(id, color, true);\r
+       }\r
+\r
+       /**\r
+        * Note: children are only painted if submenu has already been created, i.e. opened once.\r
+        * \r
+        * @param item\r
+        * @param color\r
+        * @param doPaintChildren\r
+        */\r
+       public static void paintItem(TreeItem item, Color color, boolean doPaintChildren) {\r
+               \r
+               // Paint the item\r
+               item.setBackground(color);\r
+               \r
+               // Recursively paint child items if requested\r
+               if (doPaintChildren) {\r
+                       for (TreeItem childItem : item.getItems()) {\r
+                               paintItem(childItem, color, doPaintChildren);\r
+                       }\r
+               }\r
+       }\r
+       \r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/SearchController.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/SearchController.java
new file mode 100644 (file)
index 0000000..0a61131
--- /dev/null
@@ -0,0 +1,42 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.controller;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.ui.IViewPart;\r
+import org.eclipse.ui.IWorkbenchPage;\r
+import org.eclipse.ui.PartInitException;\r
+\r
+import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.navigation.SearchResult;\r
+import eu.etaxonomy.taxeditor.navigation.SearchResultView;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 20.01.2009\r
+ * @version 1.0\r
+ */\r
+public class SearchController {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(SearchController.class);\r
+       private static String srv = "";\r
+\r
+       public static void openSearchResultsView(SearchResult searchResult) {\r
+               srv += "1";\r
+               logger.warn("opening search results window " + srv);\r
+               try {\r
+                       IViewPart resultsView = UiUtil.getActivePage().showView(SearchResultView.ID, \r
+                                       srv, IWorkbenchPage.VIEW_VISIBLE);\r
+                       ((SearchResultView) resultsView).setResult(searchResult);\r
+               } catch (PartInitException e) {\r
+                       logger.error("Error opening search result.", e);\r
+               }\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/TreeController.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/TreeController.java
new file mode 100644 (file)
index 0000000..a8d4208
--- /dev/null
@@ -0,0 +1,71 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.controller;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.ui.IViewPart;\r
+\r
+import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView;\r
+import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 20.01.2009\r
+ * @version 1.0\r
+ */\r
+public class TreeController {\r
+       private static final Logger logger = Logger.getLogger(TreeController.class);\r
+       private static IViewPart treeView;\r
+\r
+       /**\r
+        * Returns the <code>TaxonomicTreeViewer</code> used for navigation. Not to \r
+        * be confused with the window that contains it, <code>TaxonomicTreeView</code>. \r
+        * \r
+        * @return\r
+        */\r
+       public static TaxonomicTreeViewer getTreeViewer() {\r
+               TaxonomicTreeView view = getTreeView();\r
+               if (view == null) {\r
+                       return null;\r
+               }\r
+               return view.getTreeViewer();\r
+       }\r
+\r
+       /**\r
+        * @see eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView#createTreeViewer()\r
+        * \r
+        * @return\r
+        */\r
+       public static TaxonomicTreeViewer createTreeViewer() {\r
+               TaxonomicTreeView view = getTreeView();\r
+               if (view == null) {\r
+                       return null;\r
+               }\r
+               return view.createTreeViewer();\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>TaxonomicTreeView</code> containing the \r
+        * <code>TaxonomicTreeViewer</code> used for navigation. \r
+        * \r
+        * @return\r
+        */     \r
+       public static TaxonomicTreeView getTreeView() {\r
+               if (treeView == null) {\r
+                       treeView = GlobalController.getViewById(TaxonomicTreeView.ID);\r
+                       if (!(treeView instanceof TaxonomicTreeView)) {\r
+                               treeView = null;\r
+                       }\r
+               }\r
+               return (TaxonomicTreeView) treeView;\r
+       }\r
+       \r
+       \r
+}\r
index 675a73807b477fa636e9e1fe7e5172300c090e6b..ecfe98a685ffc66d7929356b1537c4ccf81e566f 100644 (file)
@@ -47,7 +47,7 @@ import eu.etaxonomy.cdm.database.CdmDataSource;
 import eu.etaxonomy.cdm.database.CdmPersistentDataSource;\r
 import eu.etaxonomy.cdm.database.DatabaseTypeEnum;\r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.cdm.database.CdmPersistentDataSource;\r
 import eu.etaxonomy.cdm.database.DatabaseTypeEnum;\r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 /**\r
  * List of database types comes from {@link eu.etaxonomy.cdm.database.DatabaseTypeEnum}.\r
  * \r
 /**\r
  * List of database types comes from {@link eu.etaxonomy.cdm.database.DatabaseTypeEnum}.\r
  * \r
@@ -234,7 +234,7 @@ public class CdmDataSourceDialog extends Dialog {
                        createMySqlForm(dataSource);\r
                } else {\r
                        // TODO Intrusive - change to text\r
                        createMySqlForm(dataSource);\r
                } else {\r
                        // TODO Intrusive - change to text\r
-                       MessageDialog.openInformation(UiUtil.getShell(), "Database not yet implemented", \r
+                       MessageDialog.openInformation(GlobalController.getShell(), "Database not yet implemented", \r
                                        "Creation of datasources using a(n) '" + type.getName() + "' database not yet implemented.");\r
                }\r
        }\r
                                        "Creation of datasources using a(n) '" + type.getName() + "' database not yet implemented.");\r
                }\r
        }\r
@@ -438,9 +438,9 @@ public class CdmDataSourceDialog extends Dialog {
                                usernameText.getText(), \r
                                passwordText.getText());\r
                if (dataSource.testConnection()) {\r
                                usernameText.getText(), \r
                                passwordText.getText());\r
                if (dataSource.testConnection()) {\r
-                       MessageDialog.openConfirm(UiUtil.getShell(), "Test successful", "Test successful");\r
+                       MessageDialog.openConfirm(GlobalController.getShell(), "Test successful", "Test successful");\r
                } else {\r
                } else {\r
-                       MessageDialog.openWarning(UiUtil.getShell(), "Test unsuccessful", "Test unsuccessful");                 \r
+                       MessageDialog.openWarning(GlobalController.getShell(), "Test unsuccessful", "Test unsuccessful");                       \r
                }\r
        }\r
 \r
                }\r
        }\r
 \r
index db5c0cd32cfe5026ac424d89623d7cdfb71dab62..ebd31ac2bec55fe63b088943ba7970d8c2940b45 100644 (file)
@@ -25,7 +25,9 @@ import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.TreeController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
@@ -134,7 +136,7 @@ public class CdmDataSourceRepository implements ICdmDataSourceRepository {
        private boolean changeDataSource(final ICdmDataSource dataSource) {\r
 \r
                // Close all open editors before showing progress monitor\r
        private boolean changeDataSource(final ICdmDataSource dataSource) {\r
 \r
                // Close all open editors before showing progress monitor\r
-               if (!UiUtil.closeOpenTaxonEditors()) {\r
+               if (!EditorController.closeAll()) {\r
                        \r
                        // User has canceled operation   \r
                        return false;\r
                        \r
                        // User has canceled operation   \r
                        return false;\r
@@ -175,7 +177,7 @@ public class CdmDataSourceRepository implements ICdmDataSourceRepository {
                                                                                \r
                                        // Get session root taxa\r
                                        // TODO get listener in tree content provider to take care of this\r
                                                                                \r
                                        // Get session root taxa\r
                                        // TODO get listener in tree content provider to take care of this\r
-                                       UiUtil.getTreeViewer().setInput(\r
+                                       TreeController.getTreeViewer().setInput(\r
                                                        CdmSessionDataRepository.getDefault().getRootTaxa());\r
                                                        \r
                                        monitor.worked(11);\r
                                                        CdmSessionDataRepository.getDefault().getRootTaxa());\r
                                                        \r
                                        monitor.worked(11);\r
@@ -184,7 +186,7 @@ public class CdmDataSourceRepository implements ICdmDataSourceRepository {
                                }\r
                                \r
                        };\r
                                }\r
                                \r
                        };\r
-                       new ProgressMonitorDialog(UiUtil.getShell()).run(false, true, op);\r
+                       new ProgressMonitorDialog(GlobalController.getShell()).run(false, true, op);\r
                } catch (InvocationTargetException e) {\r
                        e.printStackTrace();\r
                        return false;\r
                } catch (InvocationTargetException e) {\r
                        e.printStackTrace();\r
                        return false;\r
index 384f68533c9168c2b61a6367608a10469a8b80af..4327d44061ca1a501c6df305251228aaa1444f11 100644 (file)
@@ -44,7 +44,8 @@ import org.eclipse.ui.views.properties.IPropertySource;
 import org.eclipse.ui.views.properties.PropertySheetPage;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import org.eclipse.ui.views.properties.PropertySheetPage;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.PropertySheetController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.propertysheet.CustomSortPropertySheetEntry;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.propertysheet.CustomSortPropertySheetEntry;\r
 \r
 /**\r
@@ -237,7 +238,7 @@ public abstract class AbstractTaxonEditor extends EditorPart implements
                        // Save the property sheet tree for easy access as needed\r
                        if (!control.isDisposed()) {\r
                                if (control instanceof Tree) {\r
                        // Save the property sheet tree for easy access as needed\r
                        if (!control.isDisposed()) {\r
                                if (control instanceof Tree) {\r
-                                       UiUtil.setPropertySheetTree((Tree) control);\r
+                                       PropertySheetController.setPropertySheetTree((Tree) control);\r
                                }\r
                        }\r
                        return control;\r
                                }\r
                        }\r
                        return control;\r
@@ -245,7 +246,7 @@ public abstract class AbstractTaxonEditor extends EditorPart implements
                };              \r
                \r
                // Try out PartListener to intercept selections\r
                };              \r
                \r
                // Try out PartListener to intercept selections\r
-               IWorkbenchPage activePage = UiUtil.getActivePage();\r
+               IWorkbenchPage activePage = GlobalController.getActivePage();\r
 //             IWorkbenchPart active = activePage.getActivePart();\r
                IPartListener2 partListener = new IPartListener2() {\r
 \r
 //             IWorkbenchPart active = activePage.getActivePart();\r
                IPartListener2 partListener = new IPartListener2() {\r
 \r
@@ -299,7 +300,7 @@ public abstract class AbstractTaxonEditor extends EditorPart implements
                };\r
                activePage.addPartListener(partListener);\r
 \r
                };\r
                activePage.addPartListener(partListener);\r
 \r
-               UiUtil.setPropertySheetPage(page);\r
+               PropertySheetController.setPropertySheetPage(page);\r
                \r
                CustomSortPropertySheetEntry entry = new CustomSortPropertySheetEntry();\r
                page.setRootEntry(entry);\r
                \r
                CustomSortPropertySheetEntry entry = new CustomSortPropertySheetEntry();\r
                page.setRootEntry(entry);\r
index c0c8cdabec2e741bc1df0645e5c801aa4b3d1bc9..c888b9a6a2d37a26a11e1bb2767758342ebcb192 100644 (file)
@@ -20,7 +20,7 @@ import org.eclipse.ui.forms.IManagedForm;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.editor.name.AcceptedNameComposite;\r
 import eu.etaxonomy.taxeditor.editor.name.HomotypicalGroupComposite;\r
 import eu.etaxonomy.taxeditor.editor.name.MisappliedGroupComposite;\r
 import eu.etaxonomy.taxeditor.editor.name.AcceptedNameComposite;\r
 import eu.etaxonomy.taxeditor.editor.name.HomotypicalGroupComposite;\r
 import eu.etaxonomy.taxeditor.editor.name.MisappliedGroupComposite;\r
@@ -85,7 +85,7 @@ public class FreeTextElementFactory implements IFreeTextElementFactory {
                \r
                // If the group doesn't yet have a composite, create one and add it to the repository\r
                Composite groupComposite = \r
                \r
                // If the group doesn't yet have a composite, create one and add it to the repository\r
                Composite groupComposite = \r
-                               UiUtil.getTaxonNameEditor(taxon).getHomotypicGroup(group);\r
+                               EditorController.getEditor(taxon).getHomotypicGroup(group);\r
                if (groupComposite == null) {\r
                        groupComposite = createHomotypicalGroup(taxon, group);\r
                }\r
                if (groupComposite == null) {\r
                        groupComposite = createHomotypicalGroup(taxon, group);\r
                }\r
@@ -107,7 +107,7 @@ public class FreeTextElementFactory implements IFreeTextElementFactory {
                // If there is no composite for misapplied names, \r
                //      create one and add it to the repository\r
                Composite groupComposite = \r
                // If there is no composite for misapplied names, \r
                //      create one and add it to the repository\r
                Composite groupComposite = \r
-                               UiUtil.getTaxonNameEditor(taxon).getMisappliedGroup();\r
+                               EditorController.getEditor(taxon).getMisappliedGroup();\r
                if (groupComposite == null) {\r
                        groupComposite = createMisappliedGroup(taxon);\r
                }\r
                if (groupComposite == null) {\r
                        groupComposite = createMisappliedGroup(taxon);\r
                }\r
index 2caf83275562a7597168e215035f3aeb2899e2d7..71c81a7f8a67d727a15481ef1270c51cd4e55cc2 100644 (file)
 package eu.etaxonomy.taxeditor.editor.name;\r
 \r
 import org.apache.log4j.Logger;\r
 package eu.etaxonomy.taxeditor.editor.name;\r
 \r
 import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.core.commands.operations.IOperationHistory;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
-import org.eclipse.core.runtime.IStatus;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.graphics.Font;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.graphics.Font;\r
@@ -26,7 +23,8 @@ import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.operations.name.ChangeMisappliedNameToSynonymOperation;\r
 import eu.etaxonomy.taxeditor.operations.name.RemoveMisappliedNameOperation;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.operations.name.ChangeMisappliedNameToSynonymOperation;\r
 import eu.etaxonomy.taxeditor.operations.name.RemoveMisappliedNameOperation;\r
@@ -68,8 +66,7 @@ public class MisappliedNameComposite extends NameComposite {
 \r
                ContextMenu contextMenu = createContextMenu();\r
 \r
 \r
                ContextMenu contextMenu = createContextMenu();\r
 \r
-               final IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-               final IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(taxon);\r
+               final IUndoContext undoContext = EditorController.getUndoContext(taxon);\r
                \r
                // Remove misapplied name from taxon\r
                String text = "Remove misapplied name from taxon"; //$NON-NLS-1$\r
                \r
                // Remove misapplied name from taxon\r
                String text = "Remove misapplied name from taxon"; //$NON-NLS-1$\r
@@ -80,12 +77,8 @@ public class MisappliedNameComposite extends NameComposite {
                        public void run() {\r
                                IUndoableOperation operation = new RemoveMisappliedNameOperation\r
                                                (this.getText(), undoContext, taxon, misappliedName);\r
                        public void run() {\r
                                IUndoableOperation operation = new RemoveMisappliedNameOperation\r
                                                (this.getText(), undoContext, taxon, misappliedName);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }\r
+                               \r
+                               GlobalController.executeOperation(operation);\r
                        }\r
                });\r
        }\r
                        }\r
                });\r
        }\r
@@ -105,17 +98,11 @@ public class MisappliedNameComposite extends NameComposite {
                                HomotypicalGroup homotypicalGroup = \r
                                                ((HomotypicalGroupComposite)parent).getGroup();\r
                                \r
                                HomotypicalGroup homotypicalGroup = \r
                                                ((HomotypicalGroupComposite)parent).getGroup();\r
                                \r
-                               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-                               IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(taxon);\r
+                               IUndoContext undoContext = EditorController.getUndoContext(taxon);\r
                                IUndoableOperation operation = new ChangeMisappliedNameToSynonymOperation\r
                                                ("change misapplication to synonym", undoContext, taxon, misappliedName, homotypicalGroup);\r
                                \r
                                IUndoableOperation operation = new ChangeMisappliedNameToSynonymOperation\r
                                                ("change misapplication to synonym", undoContext, taxon, misappliedName, homotypicalGroup);\r
                                \r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }\r
+                               GlobalController.executeOperation(operation);\r
                        }\r
                        return true;\r
 \r
                        }\r
                        return true;\r
 \r
index b7a3def269262af7120f0cdffbef02a4d1995d01..2d6ede29d86c5bf12eeeddb320dd5a658745801c 100644 (file)
@@ -38,7 +38,8 @@ import eu.etaxonomy.cdm.model.reference.StrictReferenceBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.EditorGroupedComposite;\r
 import eu.etaxonomy.taxeditor.editor.LineBreakListener;\r
 import eu.etaxonomy.taxeditor.editor.ParseListener;\r
 import eu.etaxonomy.taxeditor.editor.EditorGroupedComposite;\r
 import eu.etaxonomy.taxeditor.editor.LineBreakListener;\r
 import eu.etaxonomy.taxeditor.editor.ParseListener;\r
@@ -184,7 +185,7 @@ public abstract class NameComposite extends EditorGroupedComposite {
                                        return;\r
                                }\r
                                \r
                                        return;\r
                                }\r
                                \r
-                               if (UiUtil.getIsSaving()) {\r
+                               if (EditorController.isSaving()) {\r
                                        return;\r
                                }\r
                                \r
                                        return;\r
                                }\r
                                \r
@@ -284,17 +285,11 @@ public abstract class NameComposite extends EditorGroupedComposite {
                        public void handleSplitText(String text) {\r
 \r
                                // Create a synonym in a new homotypic group using text as name\r
                        public void handleSplitText(String text) {\r
 \r
                                // Create a synonym in a new homotypic group using text as name\r
-                               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-                               IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(taxon);\r
+                               IUndoContext undoContext = EditorController.getUndoContext(taxon);\r
                                IUndoableOperation operation = new CreateSynonymInNewGroupOperation\r
                                                ("new heterotypic synonym", undoContext, taxon, text); //$NON-NLS-1$\r
                                \r
                                IUndoableOperation operation = new CreateSynonymInNewGroupOperation\r
                                                ("new heterotypic synonym", undoContext, taxon, text); //$NON-NLS-1$\r
                                \r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }\r
+                               GlobalController.executeOperation(operation);\r
                                \r
 //                             getTextViewer().removeLineBreakListener(this);\r
                        }\r
                                \r
 //                             getTextViewer().removeLineBreakListener(this);\r
                        }\r
index fc7dbb1a4c474ca5bc2739b5f910a1af824ad9da..e7ee5a673459b30007cdbeac96e52d9bf4ca7684 100644 (file)
 package eu.etaxonomy.taxeditor.editor.name;\r
 \r
 import org.apache.log4j.Logger;\r
 package eu.etaxonomy.taxeditor.editor.name;\r
 \r
 import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.core.commands.operations.IOperationHistory;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
-import org.eclipse.core.runtime.IStatus;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.graphics.Font;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.graphics.Font;\r
@@ -27,7 +24,8 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 import eu.etaxonomy.taxeditor.operations.name.ChangeHomotypicGroupOperation;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 import eu.etaxonomy.taxeditor.operations.name.ChangeHomotypicGroupOperation;\r
@@ -44,11 +42,14 @@ import eu.etaxonomy.taxeditor.operations.name.UnmakeSynonymGroupBasionymOperatio
  * @version 1.0\r
  */\r
 public class SynonymComposite extends NameComposite {\r
  * @version 1.0\r
  */\r
 public class SynonymComposite extends NameComposite {\r
+       @SuppressWarnings("unused")\r
        private static final Logger logger = Logger\r
                        .getLogger(SynonymComposite.class);\r
        \r
        private Synonym synonym;\r
        \r
        private static final Logger logger = Logger\r
                        .getLogger(SynonymComposite.class);\r
        \r
        private Synonym synonym;\r
        \r
+       private IUndoContext undoContext;\r
+       \r
        public SynonymComposite(Composite parent, IManagedForm form,\r
                        Taxon taxon, Synonym synonym) {\r
                super(parent, form, null, synonym);\r
        public SynonymComposite(Composite parent, IManagedForm form,\r
                        Taxon taxon, Synonym synonym) {\r
                super(parent, form, null, synonym);\r
@@ -56,6 +57,8 @@ public class SynonymComposite extends NameComposite {
                this.taxon = taxon;\r
                this.synonym = synonym;\r
                \r
                this.taxon = taxon;\r
                this.synonym = synonym;\r
                \r
+               this.undoContext = EditorController.getUndoContext(taxon);\r
+               \r
                setDraggable(true);\r
                setFont(getViewerFont());\r
                setIndent(SYNONYM_INDENT);\r
                setDraggable(true);\r
                setFont(getViewerFont());\r
                setIndent(SYNONYM_INDENT);\r
@@ -95,17 +98,10 @@ public class SynonymComposite extends NameComposite {
                        // Has this been moved to the misapplied names group?\r
                        if (parent instanceof MisappliedGroupComposite) {\r
                                \r
                        // Has this been moved to the misapplied names group?\r
                        if (parent instanceof MisappliedGroupComposite) {\r
                                \r
-                               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-                               IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(taxon);\r
                                IUndoableOperation operation = new ChangeSynonymToMisappliedNameOperation\r
                                                ("change to misapplication", undoContext, taxon, synonym); //$NON-NLS-1$\r
                                \r
                                IUndoableOperation operation = new ChangeSynonymToMisappliedNameOperation\r
                                                ("change to misapplication", undoContext, taxon, synonym); //$NON-NLS-1$\r
                                \r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }\r
+                               GlobalController.executeOperation(operation);\r
                        }\r
 \r
                        // Has this been moved to a HomotypicalGroup?\r
                        }\r
 \r
                        // Has this been moved to a HomotypicalGroup?\r
@@ -119,17 +115,10 @@ public class SynonymComposite extends NameComposite {
                                        return true;\r
                                }\r
 \r
                                        return true;\r
                                }\r
 \r
-                               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-                               IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(taxon);\r
                                IUndoableOperation operation = new ChangeHomotypicGroupOperation\r
                                                ("change type", undoContext, taxon, synonym, homotypicalGroup); //$NON-NLS-1$\r
                                \r
                                IUndoableOperation operation = new ChangeHomotypicGroupOperation\r
                                                ("change type", undoContext, taxon, synonym, homotypicalGroup); //$NON-NLS-1$\r
                                \r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }\r
+                               GlobalController.executeOperation(operation);\r
                        }\r
                        return true;\r
 \r
                        }\r
                        return true;\r
 \r
@@ -144,9 +133,6 @@ public class SynonymComposite extends NameComposite {
 \r
                ContextMenu contextMenu = createContextMenu();\r
 \r
 \r
                ContextMenu contextMenu = createContextMenu();\r
 \r
-               final IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-               final IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(taxon);\r
-               \r
                // Change composite to a misapplied name\r
                String text = "Change synonym to misapplied name"; //$NON-NLS-1$\r
                ImageDescriptor image = TaxEditorPlugin.getDefault()\r
                // Change composite to a misapplied name\r
                String text = "Change synonym to misapplied name"; //$NON-NLS-1$\r
                ImageDescriptor image = TaxEditorPlugin.getDefault()\r
@@ -156,12 +142,8 @@ public class SynonymComposite extends NameComposite {
                        public void run() {\r
                                IUndoableOperation operation = new ChangeSynonymToMisappliedNameOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
                        public void run() {\r
                                IUndoableOperation operation = new ChangeSynonymToMisappliedNameOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }\r
+                               \r
+                               GlobalController.executeOperation(operation);\r
                        }\r
                });\r
                \r
                        }\r
                });\r
                \r
@@ -174,12 +156,8 @@ public class SynonymComposite extends NameComposite {
                        public void run() {\r
                                IUndoableOperation operation = new RemoveSynonymOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
                        public void run() {\r
                                IUndoableOperation operation = new RemoveSynonymOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }                               \r
+                               \r
+                               GlobalController.executeOperation(operation);                           \r
                        }\r
                });\r
                \r
                        }\r
                });\r
                \r
@@ -196,12 +174,8 @@ public class SynonymComposite extends NameComposite {
                        public void run() {\r
                                IUndoableOperation operation = new MakeSynonymGroupBasionymOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
                        public void run() {\r
                                IUndoableOperation operation = new MakeSynonymGroupBasionymOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }                               \r
+                               \r
+                               GlobalController.executeOperation(operation);           \r
                        }\r
                };\r
                contextMenu.addAction(makeBasionymAction);      \r
                        }\r
                };\r
                contextMenu.addAction(makeBasionymAction);      \r
@@ -216,12 +190,8 @@ public class SynonymComposite extends NameComposite {
                        public void run() {\r
                                IUndoableOperation operation = new UnmakeSynonymGroupBasionymOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
                        public void run() {\r
                                IUndoableOperation operation = new UnmakeSynonymGroupBasionymOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }                               \r
+                               \r
+                               GlobalController.executeOperation(operation);                           \r
                        }\r
                };\r
                contextMenu.addAction(unmakeBasionymAction);\r
                        }\r
                };\r
                contextMenu.addAction(unmakeBasionymAction);\r
@@ -248,12 +218,8 @@ public class SynonymComposite extends NameComposite {
                        public void run() {\r
                                IUndoableOperation operation = new MakeSynonymAcceptedOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
                        public void run() {\r
                                IUndoableOperation operation = new MakeSynonymAcceptedOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }                               \r
+                               \r
+                               GlobalController.executeOperation(operation);                           \r
                        }\r
                };\r
                contextMenu.addAction(swapAction);\r
                        }\r
                };\r
                contextMenu.addAction(swapAction);\r
@@ -270,12 +236,8 @@ public class SynonymComposite extends NameComposite {
                        public void run() {\r
                                IUndoableOperation operation = new ChangeSynonymToTaxonOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
                        public void run() {\r
                                IUndoableOperation operation = new ChangeSynonymToTaxonOperation\r
                                                (this.getText(), undoContext, taxon, synonym);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }                               \r
+                               \r
+                               GlobalController.executeOperation(operation);                   \r
                        }\r
                });\r
        }\r
                        }\r
                });\r
        }\r
index dcb23361c0c138bbf0fd47b20a6e554e9b6b2fc5..84d0b20371d899f1e2a4d1d0a56d774e96b9345d 100644 (file)
@@ -14,12 +14,9 @@ import java.beans.PropertyChangeListener;
 import java.util.HashSet;\r
 \r
 import org.apache.log4j.Logger;\r
 import java.util.HashSet;\r
 \r
 import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.core.commands.operations.IOperationHistory;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.core.runtime.IProgressMonitor;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.core.runtime.IProgressMonitor;\r
-import org.eclipse.core.runtime.IStatus;\r
 import org.eclipse.jface.dialogs.IMessageProvider;\r
 import org.eclipse.swt.dnd.DND;\r
 import org.eclipse.swt.dnd.DropTarget;\r
 import org.eclipse.jface.dialogs.IMessageProvider;\r
 import org.eclipse.swt.dnd.DND;\r
 import org.eclipse.swt.dnd.DropTarget;\r
@@ -39,8 +36,9 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.WidgetTransfer;\r
 import eu.etaxonomy.taxeditor.actions.WidgetTransfer;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;\r
 import eu.etaxonomy.taxeditor.editor.EditorGroupedComposite;\r
 import eu.etaxonomy.taxeditor.editor.FreeTextElementFactory;\r
 import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;\r
 import eu.etaxonomy.taxeditor.editor.EditorGroupedComposite;\r
 import eu.etaxonomy.taxeditor.editor.FreeTextElementFactory;\r
@@ -83,7 +81,7 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                \r
                Taxon taxon = getTaxon();\r
        \r
                \r
                Taxon taxon = getTaxon();\r
        \r
-               UiUtil.addTaxonNameEditor(taxon, this);\r
+               EditorController.addEditor(taxon, this);\r
                \r
                // Register listeners for any change in accepted name or set of relations\r
                taxon.getName().addPropertyChangeListener(taxonChangeListener);\r
                \r
                // Register listeners for any change in accepted name or set of relations\r
                taxon.getName().addPropertyChangeListener(taxonChangeListener);\r
@@ -179,8 +177,7 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                        \r
                        public void drop(DropTargetEvent event) {\r
                                \r
                        \r
                        public void drop(DropTargetEvent event) {\r
                                \r
-                               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-                               IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(getTaxon());\r
+                               IUndoContext undoContext = EditorController.getUndoContext(getTaxon());\r
                                IUndoableOperation operation = null;\r
                                \r
                                // Synonym being dropped\r
                                IUndoableOperation operation = null;\r
                                \r
                                // Synonym being dropped\r
@@ -203,13 +200,7 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                                if (operation == null) {\r
                                        logger.warn("User unsuccessfully tried to drop " + event.data.getClass());\r
                                } else {\r
                                if (operation == null) {\r
                                        logger.warn("User unsuccessfully tried to drop " + event.data.getClass());\r
                                } else {\r
-                                       try {\r
-//                                             WidgetTransfer.getInstance().setWidget(null);\r
-                                               IStatus status = operationHistory.execute(operation, null, null);\r
-                                       } catch (ExecutionException e) {\r
-                                               // TODO Auto-generated catch block\r
-                                               e.printStackTrace();\r
-                                       }\r
+                                       GlobalController.executeOperation(operation);\r
                                }\r
                        }               \r
                });\r
                                }\r
                        }               \r
                });\r
index e3e925f32cb6cf5cce196f3933ee8709f6dd05f2..a017df122f329feeb6bae1344c0c1549047d3407 100644 (file)
@@ -73,7 +73,7 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
 \r
        private SortedSet<Rank> ranks;\r
 \r
 \r
        private SortedSet<Rank> ranks;\r
 \r
-       private TermVocabulary<NomenclaturalStatusType> nomStatii;\r
+       private TermVocabulary<NomenclaturalStatusType> nomStatus;\r
 \r
        private SortedSet<NameRelationshipType> nameRelationshipTypes;\r
 \r
 \r
        private SortedSet<NameRelationshipType> nameRelationshipTypes;\r
 \r
@@ -109,7 +109,7 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
        public void clearNonTaxonData() {\r
                features = null;\r
                ranks = null;\r
        public void clearNonTaxonData() {\r
                features = null;\r
                ranks = null;\r
-               nomStatii = null;\r
+               nomStatus = null;\r
                \r
                // Parser is also transaction-, and therefore session-, dependent\r
                CdmParserController.clearNonViralNameParser();\r
                \r
                // Parser is also transaction-, and therefore session-, dependent\r
                CdmParserController.clearNonViralNameParser();\r
@@ -368,12 +368,12 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
        }\r
 \r
        @Override\r
        }\r
 \r
        @Override\r
-       public TermVocabulary<NomenclaturalStatusType> getNomStatii() {\r
-               if (nomStatii == null) {\r
-                       nomStatii = getApplicationController().getNameService()\r
+       public TermVocabulary<NomenclaturalStatusType> getNomStatus() {\r
+               if (nomStatus == null) {\r
+                       nomStatus = getApplicationController().getNameService()\r
                                        .getStatusTypeVocabulary();\r
                }\r
                                        .getStatusTypeVocabulary();\r
                }\r
-               return nomStatii;\r
+               return nomStatus;\r
        }\r
        \r
        @Override\r
        }\r
        \r
        @Override\r
index ff93ff0805cc4d6a7acdfec52cb39dc718804cc2..32d2a98e80e69f669c45ac93cab0de7c5529a11e 100644 (file)
@@ -34,7 +34,7 @@ import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.navigation.SearchResult;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.navigation.SearchResult;\r
 \r
 /**\r
@@ -363,7 +363,7 @@ public class CdmUtil {
                try {\r
                        resultsList = getReferenceService().getReferencesByTitle(reference);\r
                } catch (RuntimeException e) {\r
                try {\r
                        resultsList = getReferenceService().getReferencesByTitle(reference);\r
                } catch (RuntimeException e) {\r
-                       MessageDialog.openError(UiUtil.getShell(), "Search reference error", \r
+                       MessageDialog.openError(GlobalController.getShell(), "Search reference error", \r
                                        "Reference search returned an error. This could be a Hibernate concurrency problem. " +\r
                                        "Please try saving your work, then searching again.");\r
                        e.printStackTrace();\r
                                        "Reference search returned an error. This could be a Hibernate concurrency problem. " +\r
                                        "Please try saving your work, then searching again.");\r
                        e.printStackTrace();\r
index f96c2a916a7ffc0a1ec22286fc886932f6b02f74..d34517494da7084542ae559104fa2a61f44bfb2c 100644 (file)
@@ -130,7 +130,7 @@ public interface ICdmSessionDataRepository {
        \r
        public SortedSet<Rank> getRanks();\r
        \r
        \r
        public SortedSet<Rank> getRanks();\r
        \r
-       public TermVocabulary<NomenclaturalStatusType> getNomStatii();\r
+       public TermVocabulary<NomenclaturalStatusType> getNomStatus();\r
        \r
        public SortedSet<NameRelationshipType> getNameRelationshipTypes();\r
 }\r
        \r
        public SortedSet<NameRelationshipType> getNameRelationshipTypes();\r
 }\r
index d06e991212f335952ee095ac6891331e00e1d8c3..d046d8e5fbcdad579bfbcfb80e10d2807c1934b2 100644 (file)
@@ -9,9 +9,6 @@
 \r
 package eu.etaxonomy.taxeditor.navigation;\r
 \r
 \r
 package eu.etaxonomy.taxeditor.navigation;\r
 \r
-import java.util.List;\r
-import java.util.Set;\r
-\r
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.IMenuManager;\r
 import org.eclipse.jface.action.IToolBarManager;\r
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.IMenuManager;\r
 import org.eclipse.jface.action.IToolBarManager;\r
@@ -34,8 +31,7 @@ import org.eclipse.ui.part.ViewPart;
 \r
 import com.swtdesigner.SWTResourceManager;\r
 \r
 \r
 import com.swtdesigner.SWTResourceManager;\r
 \r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.SearchController;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 /**\r
@@ -148,7 +144,7 @@ public class SearchView extends ViewPart {
                        \r
                        // If there are results, open a view in the center pane\r
                        if (searchResult.size() > 0) {\r
                        \r
                        // If there are results, open a view in the center pane\r
                        if (searchResult.size() > 0) {\r
-                               UiUtil.openSearchResultsView(searchResult);\r
+                               SearchController.openSearchResultsView(searchResult);\r
                        } else {\r
                        \r
                                // Display "no results found" message\r
                        } else {\r
                        \r
                                // Display "no results found" message\r
index c3cfc39bf57ef5fa345d41d546d448629dfeae72..e7aeeeeddf022a8a818bb6f60a1c2086bf6cb1e0 100644 (file)
@@ -41,8 +41,8 @@ import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceDialog;\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceDialog;\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
@@ -167,7 +167,7 @@ public class TaxonomicTreeView extends ViewPart {
                newDataSourceMenuItem.setText("Edit data sources ...");\r
                newDataSourceMenuItem.addSelectionListener(new SelectionAdapter() {\r
                        public void widgetSelected(SelectionEvent event) {\r
                newDataSourceMenuItem.setText("Edit data sources ...");\r
                newDataSourceMenuItem.addSelectionListener(new SelectionAdapter() {\r
                        public void widgetSelected(SelectionEvent event) {\r
-                               Dialog dialog = new CdmDataSourceDialog(UiUtil.getShell());\r
+                               Dialog dialog = new CdmDataSourceDialog(GlobalController.getShell());\r
                                dialog.open();\r
                                \r
                                // Refresh menu to reflect any changes in data \r
                                dialog.open();\r
                                \r
                                // Refresh menu to reflect any changes in data \r
index b3092d5d291076afe697ae47f03e34c259962d2d..590c954664d018b13bcfae164538620edd49623f 100644 (file)
@@ -12,12 +12,9 @@ package eu.etaxonomy.taxeditor.navigation;
 import java.util.Set;\r
 \r
 import org.apache.log4j.Logger;\r
 import java.util.Set;\r
 \r
 import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.core.commands.operations.IOperationHistory;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.core.databinding.observable.set.IObservableSet;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.core.databinding.observable.set.IObservableSet;\r
-import org.eclipse.core.runtime.IStatus;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.action.IMenuListener;\r
 import org.eclipse.jface.action.IMenuManager;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.action.IMenuListener;\r
 import org.eclipse.jface.action.IMenuManager;\r
@@ -61,22 +58,19 @@ import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.Shell;\r
 import org.eclipse.swt.widgets.Tree;\r
 import org.eclipse.swt.widgets.TreeItem;\r
 import org.eclipse.swt.widgets.Shell;\r
 import org.eclipse.swt.widgets.Tree;\r
 import org.eclipse.swt.widgets.TreeItem;\r
-import org.eclipse.ui.PartInitException;\r
 \r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 \r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
-import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.TaxonTransfer;\r
 import eu.etaxonomy.taxeditor.actions.cdm.DeleteTaxonAction;\r
 import eu.etaxonomy.taxeditor.actions.TaxonTransfer;\r
 import eu.etaxonomy.taxeditor.actions.cdm.DeleteTaxonAction;\r
-import eu.etaxonomy.taxeditor.actions.cdm.MoveTaxonAction;\r
-import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.AddQuickNameAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenNewChildNameEditorAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.AddQuickNameAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenNewChildNameEditorAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
 import eu.etaxonomy.taxeditor.editor.name.IterableSynonymyList;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
 import eu.etaxonomy.taxeditor.editor.name.IterableSynonymyList;\r
@@ -85,7 +79,6 @@ import eu.etaxonomy.taxeditor.model.CdmUtil;
 import eu.etaxonomy.taxeditor.model.ICdmTaxonSetListener;\r
 import eu.etaxonomy.taxeditor.model.TaxonomicTreeContentProvider;\r
 import eu.etaxonomy.taxeditor.operations.MoveTaxonOperation;\r
 import eu.etaxonomy.taxeditor.model.ICdmTaxonSetListener;\r
 import eu.etaxonomy.taxeditor.model.TaxonomicTreeContentProvider;\r
 import eu.etaxonomy.taxeditor.operations.MoveTaxonOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.RemoveSynonymOperation;\r
 \r
 /**\r
  * Taxon tree viewer which responds to events within individual taxa.\r
 \r
 /**\r
  * Taxon tree viewer which responds to events within individual taxa.\r
@@ -106,7 +99,6 @@ public class TaxonomicTreeViewer extends TreeViewer {
 \r
        private boolean quickAddMode;\r
        \r
 \r
        private boolean quickAddMode;\r
        \r
-       private IOperationHistory operationHistory;\r
        private IUndoContext undoContext;\r
 \r
        private boolean initialized = false;\r
        private IUndoContext undoContext;\r
 \r
        private boolean initialized = false;\r
@@ -122,8 +114,7 @@ public class TaxonomicTreeViewer extends TreeViewer {
                // SW.VIRTUAL causes nodes to be loaded on-demand, improving performance\r
                super(parent, SWT.VIRTUAL);\r
 \r
                // SW.VIRTUAL causes nodes to be loaded on-demand, improving performance\r
                super(parent, SWT.VIRTUAL);\r
 \r
-               operationHistory = UiUtil.getOperationHistory();\r
-               undoContext = UiUtil.getWorkbenchUndoContext();\r
+               undoContext = GlobalController.getWorkbenchUndoContext();\r
                \r
                tree = this.getTree();\r
                tree.setLinesVisible(false);\r
                \r
                tree = this.getTree();\r
                tree.setLinesVisible(false);\r
@@ -200,7 +191,7 @@ public class TaxonomicTreeViewer extends TreeViewer {
                                        // Make sure parentTaxon is not a child\r
                                        if (CdmUtil.isTaxonChildOfTaxon(parentTaxon, taxon)) {\r
                                                \r
                                        // Make sure parentTaxon is not a child\r
                                        if (CdmUtil.isTaxonChildOfTaxon(parentTaxon, taxon)) {\r
                                                \r
-                                               MessageDialog.openError(UiUtil.getShell(), "Can't move taxon.",\r
+                                               MessageDialog.openError(GlobalController.getShell(), "Can't move taxon.",\r
                                                                "'" + CdmUtil.getDisplayName(taxon) + "' sits above " +\r
                                                                "'" + CdmUtil.getDisplayName(parentTaxon) + "' " +\r
                                                                "in the taxonomic hierarchy.");\r
                                                                "'" + CdmUtil.getDisplayName(taxon) + "' sits above " +\r
                                                                "'" + CdmUtil.getDisplayName(parentTaxon) + "' " +\r
                                                                "in the taxonomic hierarchy.");\r
@@ -218,11 +209,8 @@ public class TaxonomicTreeViewer extends TreeViewer {
                                \r
                                IUndoableOperation operation = new MoveTaxonOperation\r
                                                (text, undoContext, taxon, parentTaxon);\r
                                \r
                                IUndoableOperation operation = new MoveTaxonOperation\r
                                                (text, undoContext, taxon, parentTaxon);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       logger.error("Error moving taxon", e);\r
-                               }                               \r
+                               \r
+                               GlobalController.executeOperation(operation);                   \r
                        }\r
                });\r
        }\r
                        }\r
                });\r
        }\r
@@ -322,17 +310,11 @@ public class TaxonomicTreeViewer extends TreeViewer {
                this.addDoubleClickListener(new IDoubleClickListener() {\r
 \r
                        public void doubleClick(DoubleClickEvent event) {\r
                this.addDoubleClickListener(new IDoubleClickListener() {\r
 \r
                        public void doubleClick(DoubleClickEvent event) {\r
-                               Taxon taxon = null;\r
                                if (event.getSelection() instanceof StructuredSelection) {\r
                                        Object element = ((StructuredSelection) event\r
                                                        .getSelection()).getFirstElement();\r
                                        if (element instanceof Taxon) {\r
                                if (event.getSelection() instanceof StructuredSelection) {\r
                                        Object element = ((StructuredSelection) event\r
                                                        .getSelection()).getFirstElement();\r
                                        if (element instanceof Taxon) {\r
-//                                             new OpenTaxonEditorAction((Taxon) element).run();\r
-                                               try {\r
-                                                       UiUtil.openTaxonEditor((Taxon) element);\r
-                                               } catch (PartInitException e) {\r
-                                                       logger.error("Error opening taxon editor", e);\r
-                                               }\r
+                                               EditorController.open((Taxon) element);\r
                                        }\r
                                }\r
                        }\r
                                        }\r
                                }\r
                        }\r
index f577a6d667531f958f38e781214f08277acdb951..7b2f6e734f3838f5c96d52cb03ad55741fa5fa85 100644 (file)
@@ -16,7 +16,7 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import org.eclipse.core.runtime.Status;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
 \r
 /**\r
  * @author p.ciardelli\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -47,6 +47,6 @@ public abstract class AbstractEditorOperation extends AbstractOperation {
         * @return\r
         */\r
        protected IStatus redrawOpenEditor() {  \r
         * @return\r
         */\r
        protected IStatus redrawOpenEditor() {  \r
-               return UiUtil.redrawEditor(taxon) ? Status.OK_STATUS : Status.CANCEL_STATUS;\r
+               return EditorController.redraw(taxon) ? Status.OK_STATUS : Status.CANCEL_STATUS;\r
        }\r
 }\r
        }\r
 }\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/ChangeTaxonToSynonymOperation.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/ChangeTaxonToSynonymOperation.java
new file mode 100644 (file)
index 0000000..4e46c57
--- /dev/null
@@ -0,0 +1,142 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.operations;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.jface.dialogs.MessageDialog;\r
+import org.eclipse.swt.widgets.Shell;\r
+import org.eclipse.ui.IEditorPart;\r
+import org.eclipse.ui.PartInitException;\r
+\r
+import sun.reflect.generics.reflectiveObjects.NotImplementedException;\r
+import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.editor.SelectTaxonDialog;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 20.01.2009\r
+ * @version 1.0\r
+ */\r
+public class ChangeTaxonToSynonymOperation extends AbstractEditorOperation{\r
+       \r
+       private static final Logger logger = Logger\r
+                       .getLogger(ChangeTaxonToSynonymOperation.class);\r
+\r
+       private Taxon destinationTaxon;\r
+       \r
+       public ChangeTaxonToSynonymOperation(String label,\r
+                       IUndoContext undoContext, Taxon taxon) {\r
+               super(label, undoContext, taxon);\r
+       }\r
+\r
+       @Override\r
+       public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+\r
+               IEditorPart editor = null;\r
+               \r
+               try {   \r
+                       // Prompt user "Would you like to save?" before showing dialog\r
+                       // "Cancel" cancels action - "No" does not\r
+                       editor = EditorController.getEditorByTaxon(taxon);\r
+                       if (editor.isDirty()) {\r
+                               if (!MessageDialog.openConfirm(GlobalController.getShell(), "Save before proceeding", \r
+                                               "All changes must be saved before proceeding with this action.\n\n" +\r
+                                               "Press \"OK\" to save and continue, or \"Cancel\" to cancel this action.")) {\r
+                                       return Status.CANCEL_STATUS;\r
+                               }\r
+                               editor.doSave(null);\r
+                       }\r
+//                     if (UiUtil.getActivePage().saveEditor(oldEditor, true) == false) {\r
+//                             return;\r
+//                     }\r
+               } catch (PartInitException e1) {\r
+                       e1.printStackTrace();\r
+               }\r
+               \r
+               // Get destination taxon from dialog\r
+               Shell shell = GlobalController.getShell();\r
+               SelectTaxonDialog dialog = new SelectTaxonDialog(shell, SelectTaxonDialog.TAXON_TO_SYNONYM);\r
+               destinationTaxon = dialog.open(taxon);\r
+               \r
+               // Abort action if user cancelled dialog without choosing a taxon\r
+               if (destinationTaxon == null) {\r
+                       return Status.CANCEL_STATUS;\r
+               }\r
+                               \r
+               \r
+               return makeTaxonSynonym(taxon, destinationTaxon) ? Status.OK_STATUS : Status.CANCEL_STATUS;\r
+       }\r
+\r
+       private boolean makeTaxonSynonym(Taxon taxon, Taxon destinationTaxon){\r
+               // Move taxon in CDM to new destinationTaxon\r
+               TaxonNameBase synonymName = taxon.getName();\r
+               SynonymRelationshipType synonymType;\r
+               if (CdmUtil.isNameHomotypic(synonymName, destinationTaxon)) {\r
+                       synonymType = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF();\r
+               } else {\r
+                       synonymType = SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF();\r
+               }\r
+               CdmUtil.makeTaxonSynonym(taxon, destinationTaxon, synonymType,\r
+                               null, null);\r
+               \r
+               // TODO move any children, descriptions, synonyms\r
+               for (TaxonDescription description: taxon.getDescriptions()) {\r
+                       destinationTaxon.addDescription(description);\r
+                       taxon.removeDescription(description);\r
+               }\r
+               \r
+               for (TaxonRelationship fromRelation : taxon.getRelationsFromThisTaxon()) {\r
+                       fromRelation.setFromTaxon(destinationTaxon);\r
+               }\r
+               \r
+               for (TaxonRelationship toRelation : taxon.getRelationsToThisTaxon()) {\r
+                       toRelation.setToTaxon(destinationTaxon);\r
+               }\r
+                               \r
+               CdmSessionDataRepository.getDefault().removeTaxon(taxon);       \r
+                               \r
+               // Close open editor for oldTaxon without forcing save.\r
+               // User has already saved or declined to do so above.\r
+               EditorController.close(taxon, false);\r
+               CdmSessionDataRepository.getDefault().saveTaxon(destinationTaxon);\r
+               // Open editor for destinationTaxon\r
+               EditorController.open(destinationTaxon);\r
+               \r
+               return true;\r
+       }\r
+       \r
+       @Override\r
+       public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+               return makeTaxonSynonym(taxon, destinationTaxon) ? Status.OK_STATUS : Status.CANCEL_STATUS;\r
+       }\r
+\r
+       @Override\r
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+               // TODO implement undo\r
+               throw new NotImplementedException();\r
+       }\r
+}\r
index 8cd2daf90f5b65cc1ae595dffc82bebc9c8fec9b..a1e6a6c93d0b29495bc742c55e2ac6035eaf113c 100644 (file)
@@ -20,7 +20,8 @@ import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.ui.PartInitException;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import org.eclipse.ui.PartInitException;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 \r
 /**\r
@@ -66,7 +67,7 @@ public class DeleteTaxonOperation extends AbstractEditorOperation {
                String taxonName = taxon.getName().getTitleCache();\r
                \r
                // Prompt user for confirmation\r
                String taxonName = taxon.getName().getTitleCache();\r
                \r
                // Prompt user for confirmation\r
-               if(! MessageDialog.openConfirm(UiUtil.getShell(), "Confirm Deletion", "Are you sure you want to delete taxon '" + taxonName + "'?")){\r
+               if(! MessageDialog.openConfirm(GlobalController.getShell(), "Confirm Deletion", "Are you sure you want to delete taxon '" + taxonName + "'?")){\r
                        monitor.done();\r
                        return Status.CANCEL_STATUS;\r
                }\r
                        monitor.done();\r
                        return Status.CANCEL_STATUS;\r
                }\r
@@ -75,13 +76,13 @@ public class DeleteTaxonOperation extends AbstractEditorOperation {
                monitor.beginTask("Deleting taxon '" + taxonName + "'.", 10);\r
                \r
                // Call save all\r
                monitor.beginTask("Deleting taxon '" + taxonName + "'.", 10);\r
                \r
                // Call save all\r
-               UiUtil.saveAll();\r
+               EditorController.saveAll();\r
                monitor.worked(2);\r
                \r
                // If the taxon has children, cancel operation\r
                // TODO add option to continue, and delete children\r
                if (taxon.hasTaxonomicChildren()) {\r
                monitor.worked(2);\r
                \r
                // If the taxon has children, cancel operation\r
                // TODO add option to continue, and delete children\r
                if (taxon.hasTaxonomicChildren()) {\r
-                       MessageDialog.openInformation(UiUtil.getShell(), "Cannot delete taxon", \r
+                       MessageDialog.openInformation(GlobalController.getShell(), "Cannot delete taxon", \r
                                        "'" + taxonName + "' has taxonomic children. " +\r
                                        "These must be manually deleted before their parent.");\r
                        monitor.done();\r
                                        "'" + taxonName + "' has taxonomic children. " +\r
                                        "These must be manually deleted before their parent.");\r
                        monitor.done();\r
@@ -91,26 +92,22 @@ public class DeleteTaxonOperation extends AbstractEditorOperation {
                \r
                \r
                // Close taxon's editor, if any is active\r
                \r
                \r
                // Close taxon's editor, if any is active\r
-               try {\r
-                       UiUtil.closeEditor(taxon, true);\r
-               } catch (PartInitException e) {\r
-                       e.printStackTrace();\r
-               }\r
+               EditorController.close(taxon, true);\r
                monitor.worked(1);\r
 \r
                // Delete taxon from CDM layer\r
                monitor.worked(1);\r
 \r
                // Delete taxon from CDM layer\r
-               CdmSessionDataRepository.getDefault().removeTaxon(taxon);\r
+               CdmSessionDataRepository.getDefault().deleteTaxon(taxon);\r
                monitor.worked(4);\r
                                \r
                // Call save all\r
                monitor.worked(4);\r
                                \r
                // Call save all\r
-               UiUtil.saveAll();\r
+               EditorController.saveAll();\r
                monitor.worked(2);\r
                \r
                // Close the progress monitor\r
                monitor.done();\r
                \r
                // Announce taxon was deleted on status line\r
                monitor.worked(2);\r
                \r
                // Close the progress monitor\r
                monitor.done();\r
                \r
                // Announce taxon was deleted on status line\r
-               UiUtil.setStatusLine("Deleted taxon '" + taxonName + "'.");\r
+               GlobalController.setStatusLine("Deleted taxon '" + taxonName + "'.");\r
                \r
                return Status.OK_STATUS;\r
        }\r
                \r
                return Status.OK_STATUS;\r
        }\r
index b6080cf9f34983d0da79bf431b25643ab1fed9ad..5079a6300e026f170329a96a278c38622eef382d 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.ui.PartInitException;
 \r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
 \r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
 \r
@@ -58,11 +58,8 @@ public class ChangeSynonymToTaxonOperation extends AbstractEditorOperation {
                CdmSessionDataRepository.getDefault().addTaxon(newTaxon);\r
                \r
                // Open editor for new taxon\r
                CdmSessionDataRepository.getDefault().addTaxon(newTaxon);\r
                \r
                // Open editor for new taxon\r
-               try {\r
-                       UiUtil.openTaxonEditor(newTaxon);\r
-               } catch (PartInitException e) {\r
-                       e.printStackTrace();\r
-               }\r
+               EditorController.open(newTaxon);\r
+               \r
                \r
                return redrawOpenEditor();\r
        }\r
                \r
                return redrawOpenEditor();\r
        }\r
index a870e3d9ba97d14d512b3590d99a6e8e0beed3fa..dc079374285d788dc6c3613dece16fa12967edd6 100644 (file)
@@ -25,8 +25,9 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
 import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
 import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
@@ -58,19 +59,19 @@ public class MakeSynonymAcceptedOperation extends AbstractEditorOperation {
 \r
                // If taxon editor is dirty force user to save before proceeding, then close editor\r
                try {\r
 \r
                // If taxon editor is dirty force user to save before proceeding, then close editor\r
                try {\r
-                       IEditorPart oldEditor = UiUtil.getEditorByTaxon(taxon);\r
+                       IEditorPart oldEditor = EditorController.getEditorByTaxon(taxon);\r
                        if (oldEditor.isDirty()) {\r
                        if (oldEditor.isDirty()) {\r
-                               if (!MessageDialog.openConfirm(UiUtil.getShell(), "Save before proceeding", \r
+                               if (!MessageDialog.openConfirm(GlobalController.getShell(), "Save before proceeding", \r
                                                "All changes must be saved before proceeding with this action.\n\n" +\r
                                                "Press \"OK\" to save and continue, or \"Cancel\" to cancel this action.")) {\r
                                        return Status.CANCEL_STATUS;\r
                                }\r
                                oldEditor.doSave(null);\r
                                                "All changes must be saved before proceeding with this action.\n\n" +\r
                                                "Press \"OK\" to save and continue, or \"Cancel\" to cancel this action.")) {\r
                                        return Status.CANCEL_STATUS;\r
                                }\r
                                oldEditor.doSave(null);\r
-                               UiUtil.closeEditor(oldEditor, true);\r
+                               EditorController.close(taxon, true);\r
                        }\r
                } catch (PartInitException e) {\r
                        }\r
                } catch (PartInitException e) {\r
-                       e.printStackTrace();\r
-                       MessageDialog.openError(UiUtil.getShell(), "Error", "Error saving and closing taxon");\r
+                       logger.error("Error while trying to save and close old editor.", e);\r
+                       MessageDialog.openError(GlobalController.getShell(), "Error", "Error saving and closing taxon");\r
                        return Status.CANCEL_STATUS;\r
                }\r
                \r
                        return Status.CANCEL_STATUS;\r
                }\r
                \r
@@ -91,11 +92,8 @@ public class MakeSynonymAcceptedOperation extends AbstractEditorOperation {
                CdmSessionDataRepository.getDefault().addTaxon(newAcceptedTaxon);\r
 \r
                // Open editor for new accepted taxon\r
                CdmSessionDataRepository.getDefault().addTaxon(newAcceptedTaxon);\r
 \r
                // Open editor for new accepted taxon\r
-               try {\r
-                       UiUtil.openTaxonEditor(newAcceptedTaxon);\r
-               } catch (PartInitException e) {\r
-                       e.printStackTrace();\r
-               }\r
+               EditorController.open(newAcceptedTaxon);\r
+\r
                // Remove old taxon from recent names list\r
                RecentNamesView.addRecentName(taxon);\r
                \r
                // Remove old taxon from recent names list\r
                RecentNamesView.addRecentName(taxon);\r
                \r
index f2d5b44f0816136c76b4ca31f11656a9eda69b42..3e15169b465cc5822fb356cf936e524dff917654 100644 (file)
@@ -23,7 +23,7 @@ import org.eclipse.core.runtime.Status;
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
 import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
 \r
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
 import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
 \r
index 3a6191518c54e2b76266056bd5766ccd2e41cf6e..b0241f822b79c4bc2c38849f5487dd060db86905 100644 (file)
@@ -24,7 +24,7 @@ import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 \r
 /**\r
@@ -87,20 +87,20 @@ public class PreferencesUtil {
        public static Set<Feature> getPreferredFeatures() {\r
                \r
                // Initialize preferredFeatureSet as necessary\r
        public static Set<Feature> getPreferredFeatures() {\r
                \r
                // Initialize preferredFeatureSet as necessary\r
-               if (UiUtil.preferredFeatureSet == null) {\r
+               if (GlobalController.getPreferredFeatures() == null) {\r
                        \r
                        \r
-                       UiUtil.preferredFeatureSet = new HashSet<Feature>();    \r
+                       GlobalController.setPreferredFeatures(new HashSet<Feature>());  \r
                                                \r
                        for (Feature feature : CdmSessionDataRepository.getDefault().getFeatures()) {\r
                                \r
                                // If the feature is set to show, add it to preferredFeatureSet\r
                                if (PreferencesUtil.getFeaturePreference(feature)) {\r
                                                \r
                        for (Feature feature : CdmSessionDataRepository.getDefault().getFeatures()) {\r
                                \r
                                // If the feature is set to show, add it to preferredFeatureSet\r
                                if (PreferencesUtil.getFeaturePreference(feature)) {\r
-                                       UiUtil.preferredFeatureSet.add(feature);\r
+                                       GlobalController.addPreferredFeature(feature);\r
                                }\r
                        }\r
                        \r
                }\r
                                }\r
                        }\r
                        \r
                }\r
-               return UiUtil.preferredFeatureSet;\r
+               return GlobalController.getPreferredFeatures();\r
        }\r
 \r
        /**\r
        }\r
 \r
        /**\r
@@ -132,7 +132,7 @@ public class PreferencesUtil {
         * @param show\r
         */\r
        public static void setFeaturePreference(Feature feature, boolean show) {\r
         * @param show\r
         */\r
        public static void setFeaturePreference(Feature feature, boolean show) {\r
-               UiUtil.preferredFeatureSet = null;\r
+               GlobalController.setPreferredFeatures(null);\r
                PreferencesUtil.getPrefStore().setValue(PreferencesUtil.getPreferenceKey(feature), show);\r
        }\r
 \r
                PreferencesUtil.getPrefStore().setValue(PreferencesUtil.getPreferenceKey(feature), show);\r
        }\r
 \r
@@ -163,10 +163,10 @@ public class PreferencesUtil {
         */\r
        public static Set<Rank> getPreferredRanks() {\r
                \r
         */\r
        public static Set<Rank> getPreferredRanks() {\r
                \r
-               // Initialize preferredFeatureSet as necessary\r
-               if (UiUtil.preferredRankSet == null) {\r
+               // Initialize preferredRankSet as necessary\r
+               if (GlobalController.getPreferredRanks() == null) {\r
                        \r
                        \r
-                       UiUtil.preferredRankSet = new HashSet<Rank>();  \r
+                       GlobalController.setPreferredRanks(new HashSet<Rank>());        \r
                                                \r
                        SortedSet<Rank> ranks = CdmSessionDataRepository.getDefault().getRanks();\r
                        if (ranks != null) {\r
                                                \r
                        SortedSet<Rank> ranks = CdmSessionDataRepository.getDefault().getRanks();\r
                        if (ranks != null) {\r
@@ -175,13 +175,13 @@ public class PreferencesUtil {
                                        \r
                                        // If the feature is set to show, add it to preferredFeatureSet\r
                                        if (PreferencesUtil.getRankPreference(rank)) {\r
                                        \r
                                        // If the feature is set to show, add it to preferredFeatureSet\r
                                        if (PreferencesUtil.getRankPreference(rank)) {\r
-                                               UiUtil.preferredRankSet.add(rank);\r
+                                               GlobalController.addPreferredRank(rank);\r
                                        }\r
                                }\r
                        } // else { TODO: error message\r
                        \r
                }\r
                                        }\r
                                }\r
                        } // else { TODO: error message\r
                        \r
                }\r
-               return UiUtil.preferredRankSet;\r
+               return GlobalController.getPreferredRanks();\r
        }\r
 \r
        /**\r
        }\r
 \r
        /**\r
@@ -213,7 +213,7 @@ public class PreferencesUtil {
         * @param show\r
         */     \r
        public static void setRankPreference(Rank rank, boolean show) {\r
         * @param show\r
         */     \r
        public static void setRankPreference(Rank rank, boolean show) {\r
-               UiUtil.preferredRankSet = null;\r
+               GlobalController.setPreferredRanks(null);\r
                getPrefStore().setValue(PreferencesUtil.getPreferenceKey(rank), show);\r
                \r
        }\r
                getPrefStore().setValue(PreferencesUtil.getPreferenceKey(rank), show);\r
                \r
        }\r
index c241e9ce2f60c1a6e10e49bbaddfc0f9d1ce4e64..77c0a3c9e8b73fdd1dccbc5c03dedd9c6199a79f 100644 (file)
@@ -16,7 +16,7 @@ import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.propertysheet.CollectionPropertySource;\r
 \r
 public class NameRelationsPropertySource extends CollectionPropertySource {\r
 import eu.etaxonomy.taxeditor.propertysheet.CollectionPropertySource;\r
 \r
 public class NameRelationsPropertySource extends CollectionPropertySource {\r
@@ -53,7 +53,7 @@ public class NameRelationsPropertySource extends CollectionPropertySource {
                                NameRelationshipType type = nameRelation.getType();\r
                                \r
                                // or the label? LABEL\r
                                NameRelationshipType type = nameRelation.getType();\r
                                \r
                                // or the label? LABEL\r
-                               String label = UiUtil.getNameRelationLabelType(type);\r
+                               String label = GlobalController.getNameRelationLabelType(type);\r
                                if (isZoological && \r
                                                nameRelation.getType().equals(NameRelationshipType.BASIONYM())) {\r
                                        label = "original combination";\r
                                if (isZoological && \r
                                                nameRelation.getType().equals(NameRelationshipType.BASIONYM())) {\r
                                        label = "original combination";\r
index cd7c09ac20c696ca80f26762cf0eb6f5d7096519..d1ad8595dd081b23d3de2bb159492de8c5d263ae 100644 (file)
@@ -43,7 +43,7 @@ public class NomStatusPropertySource extends CollectionPropertySource {
                // Get terms from nom status vocabulary\r
                List<NomenclaturalStatusType> nomStatusTypesList = new ArrayList<NomenclaturalStatusType>();\r
                nomStatusTypesList.addAll(\r
                // Get terms from nom status vocabulary\r
                List<NomenclaturalStatusType> nomStatusTypesList = new ArrayList<NomenclaturalStatusType>();\r
                nomStatusTypesList.addAll(\r
-                               CdmSessionDataRepository.getDefault().getNomStatii().getTerms());\r
+                               CdmSessionDataRepository.getDefault().getNomStatus().getTerms());\r
                                \r
                // Populate nom status type menu labels \r
                List<String> nomStatusTypesMenuList = new ArrayList<String>();\r
                                \r
                // Populate nom status type menu labels \r
                List<String> nomStatusTypesMenuList = new ArrayList<String>();\r
index e29c09c02cc3c66ffee9bac0cd2d63cc240c628a..7400d394928ad9ffd2e523d9e9ec2a26fa7817e2 100644 (file)
@@ -141,7 +141,7 @@ public class NonViralNamePropertySource implements IPropertySource {
                // Get terms from nom status vocabulary\r
                List<NomenclaturalStatusType> nomStatusTypesList = new ArrayList<NomenclaturalStatusType>();\r
                TermVocabulary<NomenclaturalStatusType> statusVocab = \r
                // Get terms from nom status vocabulary\r
                List<NomenclaturalStatusType> nomStatusTypesList = new ArrayList<NomenclaturalStatusType>();\r
                TermVocabulary<NomenclaturalStatusType> statusVocab = \r
-                               CdmSessionDataRepository.getDefault().getNomStatii();\r
+                               CdmSessionDataRepository.getDefault().getNomStatus();\r
                \r
                // If there is no status vocabulary, init type and status w empty arrays and return\r
                if (statusVocab == null) {\r
                \r
                // If there is no status vocabulary, init type and status w empty arrays and return\r
                if (statusVocab == null) {\r
index 51cd84d8ff6e876b681bc15735e90a740b3d717a..dfe4907a77546ce1d2d51cbd5932a077702c4775 100644 (file)
@@ -25,6 +25,7 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.IReferenceSearch;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferencePropertySource;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferenceSearchDescriptor;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.IReferenceSearch;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferencePropertySource;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferenceSearchDescriptor;\r
index 08853523348d149fee5492adbd8f519b55984162..d0c5928c7b7189aef97d9306f90e6c92eb48312e 100644 (file)
@@ -37,9 +37,9 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.cdm.DeleteNameRelationAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenNameRelationWizardAction;\r
 import eu.etaxonomy.taxeditor.actions.cdm.DeleteNameRelationAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.OpenNameRelationWizardAction;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 /**\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 /**\r
@@ -223,7 +223,7 @@ public class ListNameRelationsWizardPage extends WizardPage {
                                type = "original combination";\r
                        } else {\r
 //                             type = nameRelationship.getType().getLabel();\r
                                type = "original combination";\r
                        } else {\r
 //                             type = nameRelationship.getType().getLabel();\r
-                               type = UiUtil.getNameRelationLabelType(nameRelationship.getType());\r
+                               type = GlobalController.getNameRelationLabelType(nameRelationship.getType());\r
                        }\r
                }\r
                if (nameRelationship.getToName() == null) {\r
                        }\r
                }\r
                if (nameRelationship.getToName() == null) {\r
index cf64b469b3be946c3698f5f3139e5cc418b2f611..f9a95907be49926e8976bfafaac6aa19c59eb800 100644 (file)
@@ -19,7 +19,7 @@ import eu.etaxonomy.cdm.model.reference.Journal;
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 \r
 /**\r
  * This subclass is for cases where only one subclass of <code>ReferenceBase</code>\r
 \r
 /**\r
  * This subclass is for cases where only one subclass of <code>ReferenceBase</code>\r