started implementing command framework
authorn.hoffmann <n.hoffmann@localhost>
Wed, 11 Feb 2009 10:20:18 +0000 (10:20 +0000)
committern.hoffmann <n.hoffmann@localhost>
Wed, 11 Feb 2009 10:20:18 +0000 (10:20 +0000)
24 files changed:
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/META-INF/MANIFEST.MF
eclipseprojects/eu.etaxonomy.taxeditor/plugin.xml
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/ApplicationActionBarAdvisor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteTaxonAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNewTaxonEditorAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenTaxonEditorAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/EditorController.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/GlobalController.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/TreeController.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/AcceptedNameComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameViewer.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/SynonymComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/AddTaxonomicChildHandler.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHeterotypicSynonymHandler.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHomotypicSynonymHandler.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/DeleteTaxonHandler.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/NewTaxonHandler.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/OpenTaxonHandler.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/SaveAllHandler.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeView.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeViewer.java

index aef2f76ccf7b6b225e878ca69947873e49896753..d627ad56012372299d2d489ca9999984d6b58f30 100644 (file)
@@ -492,6 +492,13 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/Na
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/RulerWithIcon.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/SynonymComposite.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/AddTaxonomicChildHandler.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHeterotypicSynonymHandler.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHomotypicSynonymHandler.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/DeleteTaxonHandler.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/NewTaxonHandler.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/OpenTaxonHandler.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/SaveAllHandler.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/io/InputWizard.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/io/InputWizard2.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmSessionDataRepository.java -text
index cbaeabbacb5e22016b567244617927a90f35f0ed..9236f3c27fd674fa4a233f7a86d95e0d3732bb50 100644 (file)
@@ -17,7 +17,8 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.ui.ide,
  org.eclipse.ui.workbench.texteditor,
  org.eclipse.ui.editors,
- eu.etaxonomy.cdmLibrary;bundle-version="2.0.0"
+ eu.etaxonomy.cdmLibrary;bundle-version="2.0.0",
+ org.eclipse.core.expressions;bundle-version="3.4.0"
 Eclipse-LazyStart: true
 Export-Package: com.swtdesigner,
  eu.etaxonomy.taxeditor,
index 6aa97e586ba483c0aa87d238d1cef3af22a79ff6..e6f85726de4d102c3c4605e185ed2a5ebd774a6e 100644 (file)
             name="Preferred Ranks">\r
       </page>\r
    </extension>\r
-   <extension\r
-         id="product1"\r
-         point="org.eclipse.core.runtime.products">\r
-      <product\r
-            application="eu.etaxonomy.taxeditor.application"\r
-            name="%productName">\r
-         <property\r
-               name="windowImages"\r
-               value="eclipse.gif,eclipse32.gif,eclipse48.gif,eclipse.png,eclipse32.png">\r
-         </property>\r
-         <property\r
-               name="aboutText"\r
-               value="%productBlurb">\r
-         </property>\r
-         <property\r
-               name="aboutImage"\r
-               value="eclipse_lg.gif">\r
-         </property>\r
-         <property\r
-               name="startupForegroundColor"\r
-               value="C8D5EA">\r
-         </property>\r
-         <property\r
-               name="startupProgressRect"\r
-               value="0,280,455,15">\r
-         </property>\r
-         <property\r
-               name="startupMessageRect"\r
-               value="7,220,441,20">\r
-         </property>\r
-         <property\r
-               name="appName"\r
-               value="%productName">\r
-         </property>\r
-         <property\r
-               name="preferenceCustomization"\r
-               value="plugin_customization.ini">\r
-         </property>\r
-      </product>\r
-   </extension>\r
-   <extension\r
-         id="TaxEditorProduct"\r
-         point="org.eclipse.core.runtime.products">\r
-      <product\r
-            application="eu.etaxonomy.taxeditor.application"\r
-            name="%productName">\r
-         <property\r
-               name="windowImages"\r
-               value="icons/edit_16x16.gif">\r
-         </property>\r
-         <property\r
-               name="aboutText"\r
-               value="%productBlurb">\r
-         </property>\r
-         <property\r
-               name="startupForegroundColor"\r
-               value="C8D5EA">\r
-         </property>\r
-         <property\r
-               name="startupProgressRect"\r
-               value="0,280,455,15">\r
-         </property>\r
-         <property\r
-               name="startupMessageRect"\r
-               value="7,220,441,20">\r
-         </property>\r
-         <property\r
-               name="appName"\r
-               value="%productName">\r
-         </property>\r
-         <property\r
-               name="preferenceCustomization"\r
-               value="plugin_customization.ini">\r
-         </property>\r
-      </product>\r
-   </extension>\r
-   <extension\r
-         id="TaxEditorProduct"\r
-         point="org.eclipse.core.runtime.products">\r
-      <product\r
-            application="eu.etaxonomy.taxeditor.application"\r
-            name="%productName">\r
-         <property\r
-               name="windowImages"\r
-               value="icons/edit_16x16.gif,eclipse32.gif,eclipse48.gif,eclipse.png,eclipse32.png">\r
-         </property>\r
-         <property\r
-               name="aboutText"\r
-               value="%productBlurb">\r
-         </property>\r
-         <property\r
-               name="aboutImage"\r
-               value="eclipse_lg.gif">\r
-         </property>\r
-         <property\r
-               name="startupForegroundColor"\r
-               value="C8D5EA">\r
-         </property>\r
-         <property\r
-               name="startupProgressRect"\r
-               value="0,280,455,15">\r
-         </property>\r
-         <property\r
-               name="startupMessageRect"\r
-               value="7,220,441,20">\r
-         </property>\r
-         <property\r
-               name="preferenceCustomization"\r
-               value="plugin_customization.ini">\r
-         </property>\r
-      </product>\r
-   </extension>\r
    <!--extension\r
          point="org.eclipse.ui.bindings">\r
                <key\r
                      schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
                </key>\r
    </extension-->\r
-   <extension id="saveAllActionSet"\r
-                name="Save All"\r
-         point="org.eclipse.ui.actionSets">\r
-      <actionSet\r
-            id="eu.etaxonomy.taxeditor.actionSet"\r
-            label="Default Action Set"\r
-            visible="true">\r
-         <action\r
-               class="eu.etaxonomy.taxeditor.actions.SaveAllAction"\r
-               icon="icons/save_edit.gif"\r
-               id="eu.etaxonomy.taxeditor.actions.saveallaction"\r
-               label="&amp;Sample Action"\r
-               toolbarPath="actionSet"\r
-               tooltip="Save all currently open taxa">\r
-         </action>\r
-         <!--action\r
-               id="eu.etaxonomy.taxeditor.actions.opennameeditoraction"\r
-               label="&amp;Open New Taxon"               \r
-               class="eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction"\r
-               definitionId="eu.etaxonomy.taxeditor.actions.opennameeditoractiondef"\r
-               icon="icons/save_edit.gif"\r
-               toolbarPath="actionSet"\r
-               tooltip="Open a new (root) taxa for editing">\r
-         </action-->         \r
-      </actionSet>\r
+   <extension\r
+         point="org.eclipse.ui.menus">\r
+      <menuContribution\r
+            locationURI="menu:org.eclipse.ui.main.menu">\r
+         <menu\r
+               id="org.eclipse.ui.main.menu.file"\r
+               label="File">\r
+            <command\r
+                  commandId="eu.etaxonomy.taxeditor.newTaxon"\r
+                  label="Add new taxon"\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="eu.etaxonomy.taxeditor.ui.file.separator1"\r
+                  visible="true">\r
+            </separator>\r
+            <command\r
+                  commandId="org.eclipse.ui.file.close"\r
+                  label="Close"\r
+                  style="push">\r
+            </command>\r
+            <command\r
+                  commandId="org.eclipse.ui.file.closeAll"\r
+                  label="Close All"\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="eu.etaxonomy.taxeditor.ui.file.separator2"\r
+                  visible="true">\r
+            </separator>\r
+            <command\r
+                  commandId="eu.etaxonomy.taxeditor.saveAll"\r
+                  icon="icons/save_edit.gif"\r
+                  label="Save All"\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="eu.etaxonomy.taxeditor.ui.file.separator3"\r
+                  visible="true">\r
+            </separator>\r
+            <command\r
+                  commandId="eu.etaxonomy.taxeditor.noCmdYet"\r
+                  label="Import"\r
+                  style="push">\r
+            </command>\r
+            <command\r
+                  commandId="eu.etaxonomy.taxeditor.noCmdYet"\r
+                  label="Export"\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="eu.etaxonomy.taxeditor.ui.file.separator4"\r
+                  visible="true">\r
+            </separator>\r
+            <command\r
+                  commandId="org.eclipse.ui.file.exit"\r
+                  label="Exit"\r
+                  style="push">\r
+            </command>\r
+         </menu>\r
+      </menuContribution>\r
+      <menuContribution\r
+            locationURI="menu:org.eclipse.ui.main.menu">\r
+         <menu\r
+               id="org.eclipse.ui.main.menu.edit"\r
+               label="Edit">\r
+            <command\r
+                  commandId="org.eclipse.ui.edit.undo"\r
+                  label="Undo">\r
+            </command>\r
+            <command\r
+                  commandId="org.eclipse.ui.edit.redo"\r
+                  label="Redo"\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="eu.etaxonomy.taxeditor.ui.edit.separator1"\r
+                  visible="true">\r
+            </separator>\r
+            <command\r
+                  commandId="org.eclipse.ui.edit.cut"\r
+                  label="Cut"\r
+                  style="push">\r
+            </command>\r
+            <command\r
+                  commandId="org.eclipse.ui.edit.copy"\r
+                  label="Copy"\r
+                  style="push">\r
+            </command>\r
+            <command\r
+                  commandId="org.eclipse.ui.edit.paste"\r
+                  label="Paste"\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="eu.etaxonomy.taxeditor.ui.edit.separator2"\r
+                  visible="true">\r
+            </separator>\r
+            <command\r
+                  commandId="org.eclipse.ui.edit.delete"\r
+                  label="Delete"\r
+                  style="push">\r
+            </command>\r
+         </menu>\r
+      </menuContribution>\r
+      <menuContribution\r
+            locationURI="menu:org.eclipse.ui.main.menu">\r
+         <menu\r
+               id="eu.etaxonomy.taxeditor.ui.taxonMenu"\r
+               label="Taxon">\r
+            <visibleWhen\r
+                  checkEnabled="true">\r
+               <reference\r
+                     definitionId="nameEditorActive">\r
+               </reference>\r
+            </visibleWhen>\r
+            <command\r
+                  commandId="eu.etaxonomy.taxeditor.editor.name.createHeterotypicSynoym"\r
+                  label="Create Heterotypic Synonym"\r
+                  style="push">\r
+            </command>\r
+            <command\r
+                  commandId="eu.etaxonomy.taxeditor.editor.name.createHomotypicSynoym"\r
+                  label="Create Homotypic Synonym"\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="separator1"\r
+                  visible="true">\r
+            </separator>\r
+         </menu>\r
+      </menuContribution>\r
+      <menuContribution\r
+            locationURI="menu:org.eclipse.ui.main.menu">\r
+         <menu\r
+               id="org.eclipse.ui.main.menu.window"\r
+               label="Window">\r
+            <command\r
+                  commandId="org.eclipse.ui.window.preferences"\r
+                  label="Preferences"\r
+                  style="push">\r
+            </command>\r
+         </menu>\r
+      </menuContribution>\r
+      <menuContribution\r
+            locationURI="menu:org.eclipse.ui.main.menu">\r
+         <menu\r
+               id="org.eclipse.ui.main.menu.help"\r
+               label="Help">\r
+            <command\r
+                  commandId="org.eclipse.ui.help.helpContents"\r
+                  label="Help Contents"\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="eu.etaxonomy.taxeditor.ui.help.separator1"\r
+                  visible="true">\r
+            </separator>\r
+            <command\r
+                  commandId="org.eclipse.ui.update.findAndInstallUpdates"\r
+                  label="Software Updates..."\r
+                  style="push">\r
+            </command>\r
+            <separator\r
+                  name="eu.etaxonomy.taxeditor.ui.help.separator2"\r
+                  visible="true">\r
+            </separator>\r
+            <command\r
+                  commandId="org.eclipse.ui.help.aboutAction"\r
+                  label="About Taxonomic Editor">\r
+            </command>\r
+         </menu>\r
+      </menuContribution>\r
+      <menuContribution\r
+            locationURI="popup:eu.etaxonomy.taxeditor.navigation.taxonomictreeview">\r
+         <command\r
+               commandId="eu.etaxonomy.taxeditor.ui.openTaxon"\r
+               label="Edit Taxon"\r
+               style="push">\r
+         </command>\r
+         <command\r
+               commandId="eu.etaxonomy.taxeditor.ui.addTaxon"\r
+               label="Create Child Taxon"\r
+               style="push">\r
+         </command>\r
+         <command\r
+               commandId="eu.etaxonomy.taxeditor.command22"\r
+               label="Add child taxon with quick name"\r
+               style="push">\r
+         </command>\r
+         <separator\r
+               name="separator1"\r
+               visible="true">\r
+         </separator>\r
+         <command\r
+               commandId="eu.etaxonomy.taxeditor.ui.deleteTaxon"\r
+               label="Delete Taxon from Tree"\r
+               style="push">\r
+         </command>\r
+      </menuContribution>\r
+      <menuContribution\r
+            locationURI="popup:org.eclipse.ui.popup.any">\r
+         <command\r
+               commandId="org.eclipse.ui.file.exit"\r
+               label="Test"\r
+               style="push">\r
+         </command>\r
+      </menuContribution>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.commands">\r
+      <command\r
+            categoryId="org.eclipse.ui.category.file"\r
+            defaultHandler="eu.etaxonomy.taxeditor.handlers.NewTaxonHandler"\r
+            id="eu.etaxonomy.taxeditor.newTaxon"\r
+            name="New Taxon">\r
+      </command>\r
+      <command\r
+            defaultHandler="eu.etaxonomy.taxeditor.handlers.OpenTaxonHandler"\r
+            id="eu.etaxonomy.taxeditor.ui.openTaxon"\r
+            name="Open Taxon">\r
+      </command>\r
+      <command\r
+            defaultHandler="eu.etaxonomy.taxeditor.handlers.DeleteTaxonHandler"\r
+            id="eu.etaxonomy.taxeditor.ui.deleteTaxon"\r
+            name="Delete Taxon">\r
+      </command>\r
+      <command\r
+            defaultHandler="eu.etaxonomy.taxeditor.handlers.AddTaxonomicChildHandler"\r
+            id="eu.etaxonomy.taxeditor.ui.addTaxon"\r
+            name="Add Taxon">\r
+      </command>\r
+      <command\r
+            categoryId="org.eclipse.ui.category.file"\r
+            defaultHandler="eu.etaxonomy.taxeditor.handlers.SaveAllHandler"\r
+            id="eu.etaxonomy.taxeditor.saveAll"\r
+            name="Save All">\r
+      </command>\r
+      <category\r
+            description="Name editor commands"\r
+            id="eu.etaxonomy.taxeditor.editor.name.category"\r
+            name="Name editor">\r
+      </category>\r
+      <command\r
+            categoryId="eu.etaxonomy.taxeditor.editor.name.category"\r
+            defaultHandler="eu.etaxonomy.taxeditor.handlers.CreateHeterotypicSynonymHandler"\r
+            id="eu.etaxonomy.taxeditor.editor.name.createHeterotypicSynoym"\r
+            name="Create Heterotypic Synonym">\r
+      </command>\r
+      <command\r
+            categoryId="eu.etaxonomy.taxeditor.editor.name.category"\r
+            defaultHandler="eu.etaxonomy.taxeditor.handlers.CreateHomotypicSynonymHandler"\r
+            id="eu.etaxonomy.taxeditor.editor.name.createHomotypicSynoym"\r
+            name="Create Homotypic Synonym">\r
+      </command>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.handlers">\r
+      <handler\r
+            class="eu.etaxonomy.taxeditor.handlers.OpenTaxonHandler"\r
+            commandId="eu.etaxonomy.taxeditor.ui.open">\r
+      </handler>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.core.expressions.definitions">\r
+      <definition\r
+            id="nameEditorActive">\r
+         <with\r
+               variable="activeEditorId">\r
+            <equals\r
+                  value="eu.etaxonomy.taxeditor.editor.multipagetaxonview">\r
+            </equals>\r
+         </with>\r
+      </definition>\r
    </extension>\r
    <!--extension\r
          point="org.eclipse.ui.commands">\r
index 0c7e0bbb6291525bd4a757ec58de817c32bf750d..33a03568b949dc06071363b093e954be8271fcb5 100644 (file)
@@ -41,6 +41,13 @@ public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
        private static final Logger logger = Logger
                        .getLogger(ApplicationActionBarAdvisor.class);
 
+       protected void makeActions(final IWorkbenchWindow window) {
+               GlobalController.setStatusLineManager(getActionBarConfigurer().getStatusLineManager());
+       }
+
+       protected void fillMenuBar(IMenuManager menuBar) {
+       }
+       
        // Actions - important to allocate these only in makeActions, and then use
        // them in the fill methods. This ensures that the actions aren't recreated
        // when fillActionBars is called with FILL_PROXY.
@@ -61,14 +68,14 @@ public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
                super(configurer);
        }
 
-       protected void makeActions(final IWorkbenchWindow window) {
+       protected void _makeActions(final IWorkbenchWindow window) {
                // Creates the actions and registers them.
                // Registering is needed to ensure that key bindings work.
                // The corresponding commands keybindings are defined in the plugin.xml
                // file.
                // Registering also provides automatic disposal of the actions when
                // the window is closed.
-
+               
                GlobalController.setStatusLineManager(getActionBarConfigurer().getStatusLineManager());
                
                // File menu actions
@@ -175,7 +182,7 @@ public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
                return helpMenu;
        }
 
-       protected void fillMenuBar(IMenuManager menuBar) {
+       protected void _fillMenuBar(IMenuManager menuBar) {
                
                menuBar.add(FILE_MENU());
                
index e58766f153e4ec8d838f6f2ddea4b55532f41849..229b60f29c86deb749cb704c4312cfdbb81fa965 100644 (file)
@@ -35,6 +35,7 @@ import eu.etaxonomy.taxeditor.operations.DeleteTaxonOperation;
  * \r
  * @author p.ciardelli\r
  * \r
+ * @deprecated\r
  */\r
 public class DeleteTaxonAction extends Action {\r
        private static final Logger logger = Logger\r
@@ -55,6 +56,7 @@ public class DeleteTaxonAction extends Action {
                undoContext = GlobalController.getWorkbenchUndoContext();\r
        }\r
 \r
+       @Deprecated\r
        public DeleteTaxonAction(Taxon taxon) {\r
                this();\r
 \r
index e6a289c3900be1c638b689478a5d62d7a1bfb11b..f2e1822234a40d9df547a7025c2322928acf78ab 100644 (file)
@@ -29,6 +29,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @author p.ciardelli\r
  * @created 02.06.2008\r
  * @version 1.0\r
+ * @deprecated\r
  */\r
 public class OpenNewTaxonEditorAction extends Action {\r
        private static final Logger logger = Logger\r
@@ -48,6 +49,7 @@ public class OpenNewTaxonEditorAction extends Action {
                setId(ID);\r
        }\r
        \r
+       @Deprecated\r
        public OpenNewTaxonEditorAction(Taxon parentTaxon) {\r
                this();\r
 \r
index 1e99a49417e4141fab7bcce63a06a5304ee362ae..9307c158197ee5943cc66f3e6926fd8d3f579869 100644 (file)
@@ -28,6 +28,7 @@ import eu.etaxonomy.taxeditor.controller.EditorController;
  * @author p.ciardelli\r
  * @created 02.06.2008\r
  * @version 1.0\r
+ * @deprecated\r
  */\r
 public class OpenTaxonEditorAction extends Action implements ActionFactory.IWorkbenchAction {\r
        private static final Logger logger = Logger\r
@@ -43,6 +44,7 @@ public class OpenTaxonEditorAction extends Action implements ActionFactory.IWork
        private Taxon taxon;\r
        public static final String ID = "eu.etaxonomy.taxeditor.actions.opennameeditoraction"; //$NON-NLS-1$\r
        \r
+       @Deprecated\r
        public OpenTaxonEditorAction(Taxon taxon) {\r
                this();\r
                \r
@@ -52,6 +54,7 @@ public class OpenTaxonEditorAction extends Action implements ActionFactory.IWork
                }\r
        }\r
 \r
+       @Deprecated\r
        public OpenTaxonEditorAction() {\r
                super(newTaxonText);\r
                setImageDescriptor(image);\r
index 03193e4705e38689647d364f3da72b8a836f5563..eb22d9ee2aada4530d9415015e27deb1c4de2b23 100644 (file)
@@ -101,10 +101,8 @@ public class EditorController {
         * Open an empty taxon editor\r
         * \r
         * @return\r
-        * @throws PartInitException\r
         */\r
-       public static IEditorPart open() \r
-                       throws PartInitException{\r
+       public static IEditorPart open(){\r
                return open(null);\r
        }\r
 \r
index 1640b5fb4a38755985b14d63798cdecf0c07ab56..723ba2140a0c61b555fda374f44d5a3bac58fab2 100644 (file)
@@ -24,6 +24,7 @@ import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.swt.widgets.Shell;\r
 import org.eclipse.ui.IViewPart;\r
 import org.eclipse.ui.IWorkbenchPage;\r
+import org.eclipse.ui.IWorkbenchPartSite;\r
 import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;\r
 import org.eclipse.ui.operations.IWorkbenchOperationSupport;\r
 \r
index a8d42082490310f4d49bf8434cca54d7268cea90..5dd750e20498aae40971a0220ddc942137235b19 100644 (file)
 package eu.etaxonomy.taxeditor.controller;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.TreeSelection;\r
 import org.eclipse.ui.IViewPart;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
 \r
@@ -68,4 +73,25 @@ public class TreeController {
        }\r
        \r
        \r
+       /**\r
+        * Returns the selected taxon for referencing in context menus\r
+        * \r
+        * @param event \r
+        * @return\r
+        */\r
+       public static Taxon getCurrentSelection(ExecutionEvent event){\r
+               \r
+               ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);\r
+               \r
+               // The selection should always be a tree selection since we are in the \r
+               // taxonomic tree view. Just in case this will be used in another spot.\r
+               if(menuSelection instanceof TreeSelection){\r
+                       Taxon taxon = (Taxon) ((TreeSelection) menuSelection).getFirstElement();\r
+                       logger.debug("Selected taxon: " + taxon);\r
+                       return taxon;\r
+               }\r
+               return null;\r
+       }\r
+       \r
+       \r
 }\r
index 6921181475fb2f4ed490fb6dda6daa6801b95e3d..1de2394aebe0e8145628f071808a3e5ed7aa5442 100644 (file)
@@ -13,6 +13,9 @@ import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.Assert;\r
 import org.eclipse.jface.text.IDocument;\r
 import org.eclipse.jface.text.TextViewer;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.ISelectionChangedListener;\r
+import org.eclipse.jface.viewers.ISelectionProvider;\r
 import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.custom.StyledText;\r
 import org.eclipse.swt.dnd.DND;\r
@@ -437,5 +440,4 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
 \r
                super.dispose();\r
        }\r
-       \r
 } 
\ No newline at end of file
index 3d479abaf7459d40f4eadc0ebc877533851e84b2..215eedfcea6b4aecaa14f1d361515a45c92a6649 100644 (file)
@@ -75,12 +75,7 @@ public class MultiPageTaxonEditor extends MultiPageEditorPart {
 //                     \r
 //                     addPage(3, new EmptyEditorView(), getEditorInput());\r
 //                     setPageText(3, "Geographic");\r
-               \r
-                       // Hook undo to workbench\r
-//                     IUndoContext undoContext = UiUtil.getWorkbenchUndoContext();\r
-//                     getEditorSite().getActionBars().setGlobalActionHandler(ActionFactory.UNDO.getId(), new UndoActionHandler(getSite(), undoContext));\r
-//                     getEditorSite().getActionBars().setGlobalActionHandler(ActionFactory.REDO.getId(), new RedoActionHandler(getSite(), undoContext));\r
-                                               \r
+                                       \r
                } catch (PartInitException e) {\r
                        e.printStackTrace();\r
                }\r
index 0ba74719f74c8509102e0cbfafe56769a68bb61b..fba4e78b99a63396c6f0159927ca4e049be72b7c 100644 (file)
@@ -10,6 +10,8 @@ package eu.etaxonomy.taxeditor.editor.name;
 \r
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.MenuManager;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.ISelectionChangedListener;\r
 import org.eclipse.swt.graphics.Font;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.ui.forms.IManagedForm;\r
index 8616feeb963d78d221ebcb96ca268f6fcbf742a7..1ff0a40d8f2276d448fe1776623782c5580c948b 100644 (file)
@@ -183,7 +183,7 @@ public class NameViewer extends SourceViewer {
                boolean hasProblem = name.getHasProblem();\r
                \r
                if (!hasProblem) {\r
-                       logger.warn(name.getProblemStarts());\r
+                       logger.debug(name.getProblemStarts());\r
                }\r
                \r
                String text = this.getTextWidget().getText();\r
index 9abd2c6f8d578e65f87b896d827c1addce0af667..b41f547b2393502d7ccaf7c8f2975c0a78f8d618 100644 (file)
@@ -163,13 +163,6 @@ public class SynonymComposite extends NameComposite {
                contextMenu.addAction(new CreateNewTaxonFromSynonymAction(taxon, synonym));\r
        }\r
 \r
-\r
-//     public IPropertySource getPropertySource() {\r
-//             if (getSynonym() == null) {\r
-//                     return null;\r
-//             }\r
-//             return getPropertySourceByName(getSynonym().getName());\r
-//     }\r
        @Override\r
        public IPropertySource getPropertySource() {\r
                return new TaxonBasePropertySource(synonym, "Synonym Name");\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/AddTaxonomicChildHandler.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/AddTaxonomicChildHandler.java
new file mode 100644 (file)
index 0000000..7c88799
--- /dev/null
@@ -0,0 +1,50 @@
+/**\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.handlers;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.IHandler;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.TreeController;\r
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 09.02.2009\r
+ * @version 1.0\r
+ */\r
+public class AddTaxonomicChildHandler extends AbstractHandler implements\r
+               IHandler {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(AddTaxonomicChildHandler.class);\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+        */\r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+               Taxon parentTaxon = TreeController.getCurrentSelection(event);\r
+               \r
+               TaxonNameBase name = PreferencesUtil.getInstanceOfPreferredNameClass();\r
+               Taxon taxon = Taxon.NewInstance(name, parentTaxon.getSec());\r
+               parentTaxon.addTaxonomicChild(taxon, null, null);\r
+               \r
+               // Open editor for new taxon\r
+               EditorController.openUnitializedTaxon(taxon);\r
+               \r
+               return null;\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHeterotypicSynonymHandler.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHeterotypicSynonymHandler.java
new file mode 100644 (file)
index 0000000..639ec90
--- /dev/null
@@ -0,0 +1,53 @@
+/**\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.handlers;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.IHandler;\r
+import org.eclipse.core.commands.common.NotDefinedException;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.CreateSynonymInNewGroupOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 06.02.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateHeterotypicSynonymHandler extends AbstractHandler implements\r
+               IHandler {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(CreateHeterotypicSynonymHandler.class);\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+        */\r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+               Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+               \r
+               IUndoableOperation operation;\r
+               try {\r
+                       operation = new CreateSynonymInNewGroupOperation(event.getCommand().getName(), \r
+                                       EditorController.getUndoContext(taxon), taxon, "");\r
+                       GlobalController.executeOperation(operation);\r
+               } catch (NotDefinedException e) {\r
+                       logger.warn("Command name not set");\r
+               }\r
+                               \r
+               return null;\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHomotypicSynonymHandler.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHomotypicSynonymHandler.java
new file mode 100644 (file)
index 0000000..6ca1ec5
--- /dev/null
@@ -0,0 +1,56 @@
+/**\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.handlers;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.IHandler;\r
+import org.eclipse.core.commands.common.NotDefinedException;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+\r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.CreateSynonymInExisitingHomotypicalGroupOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 06.02.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateHomotypicSynonymHandler extends AbstractHandler implements\r
+               IHandler {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(CreateHomotypicSynonymHandler.class);\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+        */\r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+               Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+               HomotypicalGroup group = taxon.getHomotypicGroup();\r
+               \r
+               IUndoableOperation operation;\r
+               try {\r
+                       operation = new CreateSynonymInExisitingHomotypicalGroupOperation(event.getCommand().getName(), \r
+                                       EditorController.getUndoContext(taxon), taxon, group, "");\r
+                       GlobalController.executeOperation(operation);\r
+               } catch (NotDefinedException e) {\r
+                       logger.warn("Command name not set");\r
+               }\r
+               \r
+\r
+               return null;\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/DeleteTaxonHandler.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/DeleteTaxonHandler.java
new file mode 100644 (file)
index 0000000..531eb82
--- /dev/null
@@ -0,0 +1,53 @@
+/**\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.handlers;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.IHandler;\r
+import org.eclipse.core.commands.common.NotDefinedException;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.controller.TreeController;\r
+import eu.etaxonomy.taxeditor.operations.DeleteTaxonOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 09.02.2009\r
+ * @version 1.0\r
+ */\r
+public class DeleteTaxonHandler extends AbstractHandler implements IHandler {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(DeleteTaxonHandler.class);\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+        */\r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+               Taxon taxon = TreeController.getCurrentSelection(event);\r
+               \r
+               IUndoableOperation operation;\r
+               try {\r
+                       operation = new DeleteTaxonOperation(event.getCommand().getName(), \r
+                                       EditorController.getUndoContext(taxon), taxon);\r
+                       GlobalController.executeOperation(operation);\r
+               } catch (NotDefinedException e) {\r
+                       logger.warn("Command name not set");\r
+               }\r
+\r
+               return null;\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/NewTaxonHandler.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/NewTaxonHandler.java
new file mode 100644 (file)
index 0000000..577ca12
--- /dev/null
@@ -0,0 +1,40 @@
+/**\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.handlers;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.IHandler;\r
+import org.eclipse.ui.PartInitException;\r
+\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 06.02.2009\r
+ * @version 1.0\r
+ */\r
+public class NewTaxonHandler extends AbstractHandler implements IHandler {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(NewTaxonHandler.class);\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+        */\r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+               \r
+               EditorController.open();\r
+\r
+               return null;\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/OpenTaxonHandler.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/OpenTaxonHandler.java
new file mode 100644 (file)
index 0000000..5f3cf6f
--- /dev/null
@@ -0,0 +1,39 @@
+/**\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.handlers;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.TreeController;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 06.02.2009\r
+ * @version 1.0\r
+ */\r
+public class OpenTaxonHandler extends AbstractHandler{\r
+       private static final Logger logger = Logger\r
+                       .getLogger(OpenTaxonHandler.class);\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+        */\r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+\r
+               EditorController.open(TreeController.getCurrentSelection(event));\r
+               \r
+               return null;\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/SaveAllHandler.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/SaveAllHandler.java
new file mode 100644 (file)
index 0000000..52288d3
--- /dev/null
@@ -0,0 +1,75 @@
+/**\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.handlers;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.IHandler;\r
+import org.eclipse.ui.IEditorInput;\r
+import org.eclipse.ui.IEditorPart;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.datasource.CdmTransactionController;\r
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 06.02.2009\r
+ * @version 1.0\r
+ */\r
+public class SaveAllHandler extends AbstractHandler implements IHandler {\r
+       private static final Logger logger = Logger.getLogger(SaveAllHandler.class);\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+        */\r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+               logger.debug("Save all handler called.");\r
+               EditorController.setSaving(true);\r
+               \r
+               // Get all open windows\r
+               for (IEditorPart taxonEditor : EditorController.getOpenEditors()) {\r
+\r
+                       // Save the dirty ones\r
+                       if (taxonEditor.isDirty()) {\r
+                               IEditorInput input = taxonEditor.getEditorInput();\r
+                               if (input.getAdapter(Taxon.class) != null) {\r
+                                       Taxon taxon = (Taxon) input.getAdapter(Taxon.class);\r
+                                       new SaveTaxonAction(taxon).run();\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
+               EditorController.setSaving(false);\r
+               // TODO: delete undoHistory\r
+               return null;\r
+       }\r
+}\r
index e7aeeeeddf022a8a818bb6f60a1c2086bf6cb1e0..a85eb5b44e71163ba3b5c8cb5b6f7129ad35d25f 100644 (file)
@@ -12,8 +12,10 @@ package eu.etaxonomy.taxeditor.navigation;
 import java.util.List;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.GroupMarker;\r
 import org.eclipse.jface.action.IMenuManager;\r
 import org.eclipse.jface.action.IToolBarManager;\r
+import org.eclipse.jface.action.MenuManager;\r
 import org.eclipse.jface.dialogs.Dialog;\r
 import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.events.SelectionAdapter;\r
@@ -22,10 +24,12 @@ import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.GridData;\r
 import org.eclipse.swt.layout.GridLayout;\r
 import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
 import org.eclipse.swt.widgets.Display;\r
 import org.eclipse.swt.widgets.Label;\r
 import org.eclipse.swt.widgets.Menu;\r
 import org.eclipse.swt.widgets.MenuItem;\r
+import org.eclipse.ui.IWorkbenchActionConstants;\r
 import org.eclipse.ui.forms.IManagedForm;\r
 import org.eclipse.ui.forms.ManagedForm;\r
 import org.eclipse.ui.forms.events.HyperlinkAdapter;\r
@@ -154,9 +158,10 @@ public class TaxonomicTreeView extends ViewPart {
                        createTreeViewer();\r
                }\r
 \r
-               createActions();\r
-               initializeToolBar();\r
-               initializeMenu();\r
+//             createActions();\r
+//             initializeToolBar();\r
+//             initializeMenu();\r
+               \r
        }\r
        \r
        private void createDataSourceMenu() {\r
@@ -262,12 +267,21 @@ public class TaxonomicTreeView extends ViewPart {
                treeViewer = new TaxonomicTreeViewer(taxTreeComposite);\r
                \r
                ((TaxonomicTreeViewer) treeViewer).createDoubleClickListener();\r
-               ((TaxonomicTreeViewer) treeViewer).createMenu();\r
+//             ((TaxonomicTreeViewer) treeViewer).createMenu();\r
                ((TaxonomicTreeViewer) treeViewer).createQuickAdd();\r
                ((TaxonomicTreeViewer) treeViewer).createDragAndDrop();\r
                                \r
                taxTreeComposite.layout();\r
                \r
+               // register context menu\r
+               MenuManager menuMgr = new MenuManager();\r
+               menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));\r
+               getSite().registerContextMenu(menuMgr, treeViewer);\r
+\r
+               Control control = treeViewer.getControl();\r
+               Menu menu = menuMgr.createContextMenu(control);\r
+               control.setMenu(menu);  \r
+               \r
                return treeViewer;\r
        }\r
        \r
index 39c2ec2f096bc7fd439304dbe7fe9b223333ee2c..a003a56989812889baf4641e341bc64aaef5feb0 100644 (file)
@@ -88,7 +88,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @created 06.05.2008\r
  * @version 1.0\r
  */\r
-public class TaxonomicTreeViewer extends TreeViewer {\r
+public class TaxonomicTreeViewer extends TreeViewer{\r
        private static final Logger logger = Logger\r
                        .getLogger(TaxonomicTreeViewer.class);\r
 \r