Re-implemented taxonomic tree using Common Navigator Framework.
authorp.ciardelli <p.ciardelli@localhost>
Wed, 10 Jun 2009 12:44:32 +0000 (12:44 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 10 Jun 2009 12:44:32 +0000 (12:44 +0000)
36 files changed:
.gitattributes
taxeditor-application/.settings/org.eclipse.jdt.core.prefs
taxeditor-application/META-INF/MANIFEST.MF
taxeditor-application/plugin.xml
taxeditor-application/src/main/java/eu/etaxonomy/taxeditor/Perspective.java
taxeditor-editor/.settings/org.eclipse.jdt.core.prefs
taxeditor-editor/META-INF/MANIFEST.MF
taxeditor-editor/icons/edit_16x16.gif [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java
taxeditor-navigation/.settings/org.eclipse.jdt.core.prefs
taxeditor-navigation/META-INF/MANIFEST.MF
taxeditor-navigation/plugin.xml
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/RecentNamesContributionItem.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/WorkbenchUndoContextAdapterFactory.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/QuickCreateChildTaxonHandler.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorRoot.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymContentProvider.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymLabelProvider.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonContentProvider.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonLabelProvider.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/OpenTaxonActionProvider.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonDropAdapterAssistant.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonLinkHelper.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultView.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/taxonomictree/TaxonomicTreeContentProvider.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/taxonomictree/TaxonomicTreeLabelProvider.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/taxonomictree/TaxonomicTreeView.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/taxonomictree/TaxonomicTreeViewDataChangeBehaviour.java
taxeditor-store/.settings/org.eclipse.jdt.core.prefs
taxeditor-store/META-INF/MANIFEST.MF
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/operations/CreateChildTaxonOperation.java

index 8d19291de45e00e36bcf965e3dbf8e03d1397eca..fc9fc1111465b87cc62f388f97017a7413e1b3c2 100644 (file)
@@ -644,6 +644,7 @@ taxeditor-editor/.settings/org.eclipse.jdt.core.prefs -text
 taxeditor-editor/.settings/org.eclipse.jdt.ui.prefs -text
 taxeditor-editor/META-INF/MANIFEST.MF -text
 taxeditor-editor/build.properties -text
+taxeditor-editor/icons/edit_16x16.gif -text
 taxeditor-editor/plugin.properties -text
 taxeditor-editor/plugin.xml -text
 taxeditor-editor/pom.xml -text
@@ -815,6 +816,7 @@ taxeditor-navigation/plugin.xml -text
 taxeditor-navigation/pom.xml -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/RecentNamesContributionItem.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/WorkbenchUndoContextAdapterFactory.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/CreateChildTaxonHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/DeleteTaxonHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/EditTaxonHandler.java -text
@@ -822,6 +824,16 @@ taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/Mov
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/QuickCreateChildTaxonHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/internal/TaxeditorNavigationPlugin.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorRoot.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymContentProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymLabelProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonContentProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonLabelProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/OpenTaxonActionProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonDropAdapterAssistant.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonLinkHelper.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultView.java -text
index 4a5ab4c8cd9a2a9ff076f605b9bb3dd1bc90444b..cf17b22ea3020a361c503d6070cff2539264083b 100644 (file)
@@ -1,7 +1,7 @@
-#Tue Jun 02 17:10:51 CEST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+#Wed Jun 10 13:53:16 CEST 2009\r
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
+org.eclipse.jdt.core.compiler.compliance=1.5\r
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
+org.eclipse.jdt.core.compiler.source=1.5\r
index c68bc2b70ae7e56862060af88b75df3bc3070648..61040bd1489a33b5472ef411f460170e502ec4bf 100644 (file)
@@ -1,12 +1,18 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: EDIT Taxonomic Editor
-Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 2.0.0.v20090603_1756
-Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
-Bundle-Vendor: EDIT
-Bundle-Localization: plugin
-Export-Package: eu.etaxonomy.taxeditor
-Require-Bundle: org.eclipse.ui;bundle-version="3.4.1",org.eclipse.ui.ide;bundle-version="3.4.1",org.eclipse.core.runtime;bundle-version="3.4.0",org.eclipse.core.resources;bundle-version="3.4.1",eu.etaxonomy.cdmLibrary;bundle-version="2.0.0",eu.etaxonomy.taxeditor.store;bundle-version="1.0.0",eu.etaxonomy.taxeditor.editor;bundle-version="1.0.0",eu.etaxonomy.taxeditor.navigation;bundle-version="1.0.0"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Manifest-Version: 1.0\r
+Bundle-ManifestVersion: 2\r
+Bundle-Name: EDIT Taxonomic Editor\r
+Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true\r
+Bundle-Version: 1.1.0\r
+Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin\r
+Bundle-Vendor: EDIT\r
+Export-Package: eu.etaxonomy.taxeditor\r
+Require-Bundle: org.eclipse.ui;bundle-version="3.4.1",\r
+ org.eclipse.ui.ide;bundle-version="3.4.1",\r
+ org.eclipse.core.runtime;bundle-version="3.4.0",\r
+ org.eclipse.core.resources;bundle-version="3.4.1",\r
+ eu.etaxonomy.cdmLibrary;bundle-version="2.1.0",\r
+ eu.etaxonomy.taxeditor.store;bundle-version="1.0.0",\r
+ eu.etaxonomy.taxeditor.editor;bundle-version="1.0.0",\r
+ eu.etaxonomy.taxeditor.navigation;bundle-version="1.0.0"\r
+Bundle-ActivationPolicy: lazy\r
+Bundle-Localization: plugin\r
index 4804b90f8d97497d61e4dd71df2d1215b3bc19cb..573456f5bf2af9e07a1395902b800bd8cba44fb3 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         id="application"
-         name="Taxonomic Editor"
-         point="org.eclipse.core.runtime.applications">
-      <application
-            cardinality="singleton-global"
-            thread="main"
-            visible="true">
-         <run
-               class="eu.etaxonomy.taxeditor.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="eu.etaxonomy.taxeditor.Perspective"
-            id="eu.etaxonomy.taxeditor.application.perspective"
-            name="Taxonomic">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            class="eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor"
-            default="false"
-            id="eu.etaxonomy.taxeditor.editor.multipagetaxoneditor"
-            name="Multitabbed Taxon Editor">
-      </editor>
-   </extension>
-   <!--extension
-         point="org.eclipse.ui.views">
-      <view
-            class="eu.etaxonomy.taxeditor.navigation.taxonomictree.TaxonomicTreeView"
-            id="eu.etaxonomy.taxeditor.navigation.taxonomictree.treeView"
-            name="Taxonomic Tree">
-      </view>
-      <view
-            allowMultiple="true"
-            class="eu.etaxonomy.taxeditor.navigation.search.SearchResultView"
-            id="eu.etaxonomy.taxeditor.navigation.search.searchResultView"
-            name="Search Result"
-            restorable="true">
-      </view>
-   </extension-->
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="org.eclipse.ui.main.menu.file"
-               label="File">
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu.file">
-         <separator
-               name="eu.etaxonomy.taxeditor.application.filemenu.separator"
-               visible="true">
-         </separator>
-         <command
-               commandId="org.eclipse.ui.file.exit"
-               id="eu.etaxonomy.taxeditor.application.menu.exit"
-               label="Exit"
-               style="push">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="org.eclipse.ui.main.menu.edit"
-               label="Edit">
-            <command
-                  commandId="org.eclipse.ui.edit.undo"
-                  label="Undo">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.edit.redo"
-                  label="Redo"
-                  style="push">
-            </command>
-            <separator
-                  name="eu.etaxonomy.taxeditor.ui.edit.separator1"
-                  visible="true">
-            </separator>
-            <command
-                  commandId="org.eclipse.ui.edit.cut"
-                  label="Cut"
-                  style="push">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.edit.copy"
-                  label="Copy"
-                  style="push">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.edit.paste"
-                  label="Paste"
-                  style="push">
-            </command>
-            <separator
-                  name="eu.etaxonomy.taxeditor.ui.edit.separator2"
-                  visible="true">
-            </separator>
-            <command
-                  commandId="org.eclipse.ui.edit.delete"
-                  label="Delete"
-                  style="push">
-            </command>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="org.eclipse.ui.main.menu.navigate"
-               label="Navigate">
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="org.eclipse.ui.main.menu.window"
-               label="Window">
-            <command
-                  commandId="org.eclipse.ui.window.preferences"
-                  label="Preferences"
-                  style="push">
-            </command>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="org.eclipse.ui.main.menu.help"
-               label="Help">
-            <command
-                  commandId="org.eclipse.ui.help.helpContents"
-                  label="Help Contents"
-                  style="push">
-            </command>
-            <separator
-                  name="eu.etaxonomy.taxeditor.ui.help.separator1"
-                  visible="true">
-            </separator>
-            <command
-                  commandId="org.eclipse.ui.update.findAndInstallUpdates"
-                  label="Software Updates..."
-                  style="push">
-            </command>
-            <separator
-                  name="eu.etaxonomy.taxeditor.ui.help.separator2"
-                  visible="true">
-            </separator>
-            <command
-                  commandId="org.eclipse.ui.help.aboutAction"
-                  label="About Taxonomic Editor">
-            </command>
-         </menu>
-      </menuContribution>
-   </extension>
-   <extension
-         id="TaxonomicEditor"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="eu.etaxonomy.taxeditor.application.application"
-            name="%productName">
-         <property
-               name="windowImages"
-               value="icons/256color_16x16.gif,icons/256color_32x32.gif,icons/256color_48x48.gif">
-         </property>
-         <property
-               name="aboutText"
-               value="%productBlurb">
-         </property>
-         <!--property
-               name="startupForegroundColor"
-               value="#C8D5EA"-->
-         <property
-               name="startupForegroundColor"
-               value="000000">
-         </property>
-         <property
-               name="startupProgressRect"
-               value="5,447,366,15">
-         </property>
-         <property
-               name="startupMessageRect"
-               value="7,432,360,20">
-         </property>
-         <property
-               name="appName"
-               value="%productName">
-         </property>
-         <property
-               name="preferenceCustomization"
-               value="plugin_customization.ini">
-         </property>
-      </product>
-   </extension>
-      <!--extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="eu.etaxonomy.taxeditor.application.perspective">
-         <view
-               closeable="true"
-               id="eu.etaxonomy.taxeditor.navigation.taxonomictree.treeView"
-               minimized="false"
-               moveable="false"
-               ratio="0.4"
-               relationship="left"
-               relative="org.eclipse.ui.editorss"
-               visible="true">
-         </view>
-      </perspectiveExtension>
-   </extension-->
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?eclipse version="3.2"?>\r
+<plugin>\r
+   <extension\r
+         id="application"\r
+         name="Taxonomic Editor"\r
+         point="org.eclipse.core.runtime.applications">\r
+      <application\r
+            cardinality="singleton-global"\r
+            thread="main"\r
+            visible="true">\r
+         <run\r
+               class="eu.etaxonomy.taxeditor.Application">\r
+         </run>\r
+      </application>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.perspectives">\r
+      <perspective\r
+            class="eu.etaxonomy.taxeditor.Perspective"\r
+            id="eu.etaxonomy.taxeditor.application.perspective"\r
+            name="Taxonomic">\r
+      </perspective>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.editors">\r
+      <editor\r
+            class="eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor"\r
+            default="false"\r
+            id="eu.etaxonomy.taxeditor.editor.multipagetaxoneditor"\r
+            name="Multitabbed Taxon Editor">\r
+      </editor>\r
+   </extension>\r
+   <!--extension\r
+         point="org.eclipse.ui.views">\r
+      <view\r
+            class="eu.etaxonomy.taxeditor.navigation.taxonomictree.TaxonomicTreeView"\r
+            id="eu.etaxonomy.taxeditor.navigation.taxonomictree.treeView"\r
+            name="Taxonomic Tree">\r
+      </view>\r
+      <view\r
+            allowMultiple="true"\r
+            class="eu.etaxonomy.taxeditor.navigation.search.SearchResultView"\r
+            id="eu.etaxonomy.taxeditor.navigation.search.searchResultView"\r
+            name="Search Result"\r
+            restorable="true">\r
+      </view>\r
+   </extension-->\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
+         </menu>\r
+      </menuContribution>\r
+      <menuContribution\r
+            locationURI="menu:org.eclipse.ui.main.menu.file">\r
+         <separator\r
+               name="eu.etaxonomy.taxeditor.application.filemenu.separator"\r
+               visible="true">\r
+         </separator>\r
+         <command\r
+               commandId="org.eclipse.ui.file.exit"\r
+               id="eu.etaxonomy.taxeditor.application.menu.exit"\r
+               label="Exit"\r
+               style="push">\r
+         </command>\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="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
+   </extension>\r
+   <extension\r
+         id="TaxonomicEditor"\r
+         point="org.eclipse.core.runtime.products">\r
+      <product\r
+            application="eu.etaxonomy.taxeditor.application.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
+               name="startupForegroundColor"\r
+               value="000000">\r
+         </property>\r
+         <property\r
+               name="startupProgressRect"\r
+               value="5,447,366,15">\r
+         </property>\r
+         <property\r
+               name="startupMessageRect"\r
+               value="7,432,360,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
+         point="org.eclipse.ui.perspectiveExtensions">\r
+      <perspectiveExtension\r
+            targetID="eu.etaxonomy.taxeditor.application.perspective">\r
+         <view\r
+               closeable="true"\r
+               id="eu.etaxonomy.taxeditor.navigation.taxonomictree.treeView"\r
+               minimized="false"\r
+               moveable="false"\r
+               ratio="0.4"\r
+               relationship="left"\r
+               relative="org.eclipse.ui.editorss"\r
+               visible="true">\r
+         </view>\r
+      </perspectiveExtension>\r
+   </extension-->\r
+</plugin>\r
index df83183e1ad07cbf9e1d0af25cd81884822cbd5c..64639c9a25a2a884a7b0fd43c1668ce054f2bee7 100644 (file)
@@ -1,25 +1,27 @@
-package eu.etaxonomy.taxeditor;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-import eu.etaxonomy.taxeditor.navigation.taxonomictree.TaxonomicTreeView;
-
-public class Perspective implements IPerspectiveFactory {
-
-       public static final String ID = "eu.etaxonomy.taxeditor.application.perspective";
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-        */
-       public void createInitialLayout(IPageLayout layout) {
-               IFolderLayout navigationFolder = layout.createFolder("searchResults", IPageLayout.LEFT, 0.25f,
-                           layout.getEditorArea());
-               
-               // Note: ":*" is what allows us to call multiple searchResultView's with unique secondaryIds;
-               //      this can only be done here, with a placeholder, not in plugin.xml
-               navigationFolder.addPlaceholder("eu.etaxonomy.taxeditor.navigation.search.searchResultView:*");
-               navigationFolder.addView(TaxonomicTreeView.ID);
-       }
+package eu.etaxonomy.taxeditor;\r
+\r
+import org.eclipse.ui.IFolderLayout;\r
+import org.eclipse.ui.IPageLayout;\r
+import org.eclipse.ui.IPerspectiveFactory;\r
+\r
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;\r
+import eu.etaxonomy.taxeditor.navigation.search.SearchResultView;\r
+\r
+public class Perspective implements IPerspectiveFactory {\r
+\r
+       public static final String ID = "eu.etaxonomy.taxeditor.application.perspective";\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)\r
+        */\r
+       public void createInitialLayout(IPageLayout layout) {\r
+               IFolderLayout navigationFolder = layout.createFolder("searchResults", IPageLayout.LEFT, 0.25f,\r
+                           layout.getEditorArea());\r
+               \r
+               // Note: ":*" is what allows us to call multiple searchResultView's with unique secondaryIds;\r
+               //      this can only be done here, with a placeholder, not in plugin.xml\r
+               navigationFolder.addPlaceholder(SearchResultView.ID + ":*");\r
+//             navigationFolder.addView(TaxonomicTreeView.ID);\r
+               navigationFolder.addView(TaxonNavigator.ID);\r
+       }\r
 }
\ No newline at end of file
index 47c6c2859a619b435e2cb233c2e139c1074ee062..cf17b22ea3020a361c503d6070cff2539264083b 100644 (file)
@@ -1,7 +1,7 @@
-#Tue Jun 02 18:13:10 CEST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+#Wed Jun 10 13:53:16 CEST 2009\r
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
+org.eclipse.jdt.core.compiler.compliance=1.5\r
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
+org.eclipse.jdt.core.compiler.source=1.5\r
index 8eeb145b05c4d37f2fe104a40f013038c40d6ae7..13b7759d0f20ccaaceb35c19baf0a1b48316f210 100644 (file)
@@ -1,44 +1,40 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.0
-Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 2.0.0.v20090603_1756
-Bundle-ClassPath: .,icons/
-Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
-Bundle-Vendor: %Bundle-Vendor.0
-Bundle-Localization: plugin
-Export-Package: eu.etaxonomy.taxeditor.editor,
- eu.etaxonomy.taxeditor.editor.description,
- eu.etaxonomy.taxeditor.editor.description.handler,
- eu.etaxonomy.taxeditor.editor.handler,
- eu.etaxonomy.taxeditor.editor.images,
- eu.etaxonomy.taxeditor.editor.images.handler,
- eu.etaxonomy.taxeditor.editor.internal,
- eu.etaxonomy.taxeditor.editor.name,
- eu.etaxonomy.taxeditor.editor.name.handler,
- eu.etaxonomy.taxeditor.editor.reference,
- eu.etaxonomy.taxeditor.propertysheet,
- eu.etaxonomy.taxeditor.propertysheet.description,
- eu.etaxonomy.taxeditor.propertysheet.images,
- eu.etaxonomy.taxeditor.propertysheet.name,
- eu.etaxonomy.taxeditor.propertysheet.namerelations.wizard,
- eu.etaxonomy.taxeditor.propertysheet.reference,
- eu.etaxonomy.taxeditor.propertysheet.type,
- eu.etaxonomy.taxeditor.propertysheet.type.wizard
-Require-Bundle: org.eclipse.ui;bundle-version="3.4.1",
- org.eclipse.core.runtime;bundle-version="3.4.0",
- org.eclipse.core.databinding;bundle-version="1.1.1",
- org.eclipse.core.databinding.beans;bundle-version="1.1.1",
- org.eclipse.ui.editors;bundle-version="3.4.0",
- org.eclipse.jface;bundle-version="3.4.1",
- org.eclipse.jface.databinding;bundle-version="1.2.1",
- org.eclipse.ui.ide;bundle-version="3.4.1",
- org.eclipse.core.resources;bundle-version="3.4.1",
- org.eclipse.core.filesystem;bundle-version="1.2.0",
- org.eclipse.core.expressions;bundle-version="3.4.0",
- org.eclipse.ui.forms;bundle-version="3.3.101",
- org.eclipse.jface.text;bundle-version="3.4.1",
- eu.etaxonomy.cdmLibrary;bundle-version="2.0.0",
- eu.etaxonomy.taxeditor.store;bundle-version="1.0.0"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Manifest-Version: 1.0\r
+Bundle-ManifestVersion: 2\r
+Bundle-Name: %Bundle-Name.0\r
+Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true\r
+Bundle-Version: 1.1.0\r
+Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin\r
+Bundle-Vendor: %Bundle-Vendor.0\r
+Export-Package: eu.etaxonomy.taxeditor.editor,\r
+ eu.etaxonomy.taxeditor.editor.description,\r
+ eu.etaxonomy.taxeditor.editor.handler,\r
+ eu.etaxonomy.taxeditor.editor.images,\r
+ eu.etaxonomy.taxeditor.editor.internal,\r
+ eu.etaxonomy.taxeditor.editor.name,\r
+ eu.etaxonomy.taxeditor.propertysheet,\r
+ eu.etaxonomy.taxeditor.propertysheet.description,\r
+ eu.etaxonomy.taxeditor.propertysheet.images,\r
+ eu.etaxonomy.taxeditor.propertysheet.name,\r
+ eu.etaxonomy.taxeditor.propertysheet.namerelations.wizard,\r
+ eu.etaxonomy.taxeditor.propertysheet.reference,\r
+ eu.etaxonomy.taxeditor.propertysheet.type,\r
+ eu.etaxonomy.taxeditor.propertysheet.type.wizard\r
+Require-Bundle: org.eclipse.ui;bundle-version="3.4.1",\r
+ org.eclipse.core.runtime;bundle-version="3.4.0",\r
+ org.eclipse.core.databinding;bundle-version="1.1.1",\r
+ org.eclipse.core.databinding.beans;bundle-version="1.1.1",\r
+ org.eclipse.ui.editors;bundle-version="3.4.0",\r
+ org.eclipse.jface;bundle-version="3.4.1",\r
+ org.eclipse.jface.databinding;bundle-version="1.2.1",\r
+ org.eclipse.ui.ide;bundle-version="3.4.1",\r
+ org.eclipse.core.resources;bundle-version="3.4.1",\r
+ org.eclipse.core.filesystem;bundle-version="1.2.0",\r
+ org.eclipse.core.expressions;bundle-version="3.4.0",\r
+ org.eclipse.ui.forms;bundle-version="3.3.101",\r
+ org.eclipse.jface.text;bundle-version="3.4.1",\r
+ eu.etaxonomy.cdmLibrary;bundle-version="2.1.0",\r
+ eu.etaxonomy.taxeditor.store;bundle-version="1.0.0"\r
+Bundle-ActivationPolicy: lazy\r
+Bundle-Localization: plugin\r
+Bundle-ClassPath: .,\r
+ icons/\r
diff --git a/taxeditor-editor/icons/edit_16x16.gif b/taxeditor-editor/icons/edit_16x16.gif
new file mode 100644 (file)
index 0000000..d857c6c
Binary files /dev/null and b/taxeditor-editor/icons/edit_16x16.gif differ
index 30d919cd71608e017be1819e29eac16dc1faa90b..af04f81b591ff47082752aacad6be95b0a2b6a8b 100644 (file)
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor;
-
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.log4j.Logger;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.preference.PreferencesUtil;
-
-/**
- * @author n.hoffmann
- * @created 19.03.2009
- * @version 1.0
- */
-public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPersistableElement {
-       private static final Logger logger = Logger
-                       .getLogger(TaxonEditorInput.class);
-
-       private Taxon taxon;
-       private ConversationHolder conversation;
-       
-       private TaxonEditorInput(Taxon taxon, ConversationHolder conversation){
-               this.taxon = taxon;
-               this.conversation = conversation;
-       }
-       
-    /**
-     * 
-     * @param uuid
-     * @param conversation
-     * @return
-     */
-    public static TaxonEditorInput NewInstance(UUID uuid){
-       ConversationHolder conversation = CdmStore.NewTransactionalConversation();
-       
-               TaxonBase<?> taxonBase = CdmStore.getTaxonService().getTaxonByUuid(uuid);
-               
-               if(taxonBase == null){
-                       MessageDialog.openWarning(EditorUtil.getShell(), "Not yet implemented", "Selected element is not if type TaxonBase.");
-                       return null;
-               }
-               
-               Taxon taxon;
-               
-               if (taxonBase instanceof Synonym) {
-                       // TODO: in case of pro parte synonym or any other where we might have multiple
-                       // accepted taxa we have to provide a mechanism that can deal with that
-                       // TODO set focus to the synonym
-                       Set<Taxon> acceptedTaxa = ((Synonym) taxonBase).getAcceptedTaxa();
-                       if(acceptedTaxa.size() != 1){
-                               String message;
-                               if(acceptedTaxa.size() == 0){
-                                       message = "There is no accepted taxon for the chosen synonym. ";
-                               }else{
-                                       message = "Multiple taxa found for the chosen synonym.";
-                               }
-                               MessageDialog.openWarning(EditorUtil.getShell(), "Not yet implemented", message);
-                               return null;
-                       }else{
-                               taxon = acceptedTaxa.toArray(new Taxon[0])[0];
-                       }
-               } else {
-                       taxon = (Taxon) taxonBase;
-               }       
-       
-               logger.trace(TaxonEditorInput.class.getSimpleName() + " created");
-               
-       return new TaxonEditorInput(taxon, conversation);
-    }
-    
-    public static TaxonEditorInput NewEmptyInstance(UUID parentTaxonUuid){
-       ConversationHolder conversation = CdmStore.NewTransactionalConversation();
-               
-               TaxonNameBase<?, ?> name = PreferencesUtil.getInstanceOfPreferredNameClass();
-               
-               Taxon newTaxon = null;
-               if(parentTaxonUuid == null){
-                       newTaxon = Taxon.NewInstance(name, CdmStore.getDefault().getDefaultSec());
-               }else{
-                       Taxon parentTaxon = (Taxon) CdmStore.getTaxonService().getTaxonByUuid(parentTaxonUuid);
-                       newTaxon = Taxon.NewInstance(name, parentTaxon.getSec());
-                       parentTaxon.addTaxonomicChild(newTaxon, null, null);
-               }
-               // add the new taxon to the editors persistence context
-               CdmStore.getTaxonService().save(newTaxon);
-               
-               return new TaxonEditorInput(newTaxon, conversation);
-    }
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#exists()
-        */
-       public boolean exists() {
-               return taxon != null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-        */
-       public ImageDescriptor getImageDescriptor() {
-               return null;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#getName()
-        */
-       public String getName() {
-               TaxonNameBase<?, ?> name = taxon.getName();
-               if (name == null || name.getTitleCache() == null) {
-                       return "New taxon";
-               } else {
-                       return name.getTitleCache();
-               }       
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#getPersistable()
-        */
-       public IPersistableElement getPersistable() {
-               return this;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#getToolTipText()
-        */
-       public String getToolTipText() {
-               return getName();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-        */
-       public Object getAdapter(Class adapter) {
-
-               if (adapter == Taxon.class) {
-                       return taxon;
-               }
-               
-               return null;
-       }
-       
-    /**
-     * Overrides equals to ensure that a taxon can only be edited by
-     * one editor at a time.
-     * 
-     * @return boolean
-     */        
-       public boolean equals(Object obj) {
-               if (obj.getClass().equals(TaxonEditorInput.class) 
-                               && taxon.equals(((TaxonEditorInput) obj).taxon))
-                       return true;
-               return false;
-       }
-
-       public Taxon getTaxon(){
-               return taxon;
-       }
-       
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-        */
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
-        */
-       public void update(CdmDataChangeMap events) {
-               // FIXME update the editor input
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPersistableElement#getFactoryId()
-        */
-       public String getFactoryId() {
-               return TaxonEditorInputFactory.getFactoryId();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
-        */
-       public void saveState(IMemento memento) {
-               TaxonEditorInputFactory.saveState(memento, this);
-       }
-}
+/**\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.editor;\r
+\r
+import java.util.Set;\r
+import java.util.UUID;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.dialogs.MessageDialog;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.eclipse.ui.IEditorInput;\r
+import org.eclipse.ui.IMemento;\r
+import org.eclipse.ui.IPersistableElement;\r
+\r
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+import eu.etaxonomy.taxeditor.store.preference.PreferencesUtil;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 19.03.2009\r
+ * @version 1.0\r
+ */\r
+public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPersistableElement {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(TaxonEditorInput.class);\r
+\r
+       private Taxon taxon;\r
+       private ConversationHolder conversation;\r
+       \r
+       private TaxonEditorInput(Taxon taxon, ConversationHolder conversation){\r
+               this.taxon = taxon;\r
+               this.conversation = conversation;\r
+       }\r
+       \r
+    /**\r
+     * \r
+     * @param uuid\r
+     * @param conversation\r
+     * @return\r
+     */\r
+    public static TaxonEditorInput NewInstance(UUID uuid){\r
+       ConversationHolder conversation = CdmStore.NewTransactionalConversation();\r
+       \r
+               TaxonBase<?> taxonBase = CdmStore.getTaxonService().getTaxonByUuid(uuid);\r
+               \r
+               if(taxonBase == null){\r
+                       MessageDialog.openWarning(EditorUtil.getShell(), "Not yet implemented", "Selected element is not if type TaxonBase.");\r
+                       return null;\r
+               }\r
+               \r
+               Taxon taxon;\r
+               \r
+               if (taxonBase instanceof Synonym) {\r
+                       // TODO: in case of pro parte synonym or any other where we might have multiple\r
+                       // accepted taxa we have to provide a mechanism that can deal with that\r
+                       // TODO set focus to the synonym\r
+                       Set<Taxon> acceptedTaxa = ((Synonym) taxonBase).getAcceptedTaxa();\r
+                       if(acceptedTaxa.size() != 1){\r
+                               String message;\r
+                               if(acceptedTaxa.size() == 0){\r
+                                       message = "There is no accepted taxon for the chosen synonym. ";\r
+                               }else{\r
+                                       message = "Multiple taxa found for the chosen synonym.";\r
+                               }\r
+                               MessageDialog.openWarning(EditorUtil.getShell(), "Not yet implemented", message);\r
+                               return null;\r
+                       }else{\r
+                               taxon = acceptedTaxa.toArray(new Taxon[0])[0];\r
+                       }\r
+               } else {\r
+                       taxon = (Taxon) taxonBase;\r
+               }       \r
+       \r
+       return new TaxonEditorInput(taxon, conversation);\r
+    }\r
+    \r
+    public static TaxonEditorInput NewEmptyInstance(UUID parentTaxonUuid){\r
+       ConversationHolder conversation = CdmStore.NewTransactionalConversation();\r
+               \r
+               TaxonNameBase name = PreferencesUtil.getInstanceOfPreferredNameClass();\r
+               \r
+               Taxon newTaxon = null;\r
+               if(parentTaxonUuid == null){\r
+                       newTaxon = Taxon.NewInstance(name, CdmStore.getDefault().getDefaultSec());\r
+               }else{\r
+                       Taxon parentTaxon = (Taxon) CdmStore.getTaxonService().getTaxonByUuid(parentTaxonUuid);\r
+                       newTaxon = Taxon.NewInstance(name, parentTaxon.getSec());\r
+                       parentTaxon.addTaxonomicChild(newTaxon, null, null);\r
+               }\r
+               // add the new taxon to the editors persistence context\r
+               CdmStore.getTaxonService().save(newTaxon);\r
+               \r
+               return new TaxonEditorInput(newTaxon, conversation);\r
+    }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IEditorInput#exists()\r
+        */\r
+       public boolean exists() {\r
+               return taxon != null;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IEditorInput#getImageDescriptor()\r
+        */\r
+       public ImageDescriptor getImageDescriptor() {\r
+               return null;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IEditorInput#getName()\r
+        */\r
+       public String getName() {\r
+               TaxonNameBase name = taxon.getName();\r
+               if (name == null || name.getTitleCache() == null) {\r
+                       return "New taxon";\r
+               } else {\r
+                       return name.getTitleCache();\r
+               }       \r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IEditorInput#getPersistable()\r
+        */\r
+       public IPersistableElement getPersistable() {\r
+               return this;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IEditorInput#getToolTipText()\r
+        */\r
+       public String getToolTipText() {\r
+               return getName();\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)\r
+        */\r
+       public Object getAdapter(Class adapter) {\r
+\r
+               if (adapter == Taxon.class) {\r
+                       return taxon;\r
+               }\r
+               \r
+               return null;\r
+       }\r
+       \r
+    /**\r
+     * Overrides equals to ensure that a taxon can only be edited by\r
+     * one editor at a time.\r
+     * \r
+     * @return boolean\r
+     */        \r
+       public boolean equals(Object obj) {\r
+               if (obj.getClass().equals(TaxonEditorInput.class) \r
+                               && taxon.equals(((TaxonEditorInput) obj).taxon))\r
+                       return true;\r
+               return false;\r
+       }\r
+\r
+       public Taxon getTaxon(){\r
+               return taxon;\r
+       }\r
+       \r
+       /*\r
+        * (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()\r
+        */\r
+       public ConversationHolder getConversationHolder() {\r
+               return conversation;\r
+       }\r
+\r
+       /*\r
+        * (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)\r
+        */\r
+       public void update(CdmDataChangeMap events) {\r
+               // FIXME update the editor input\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IPersistableElement#getFactoryId()\r
+        */\r
+       public String getFactoryId() {\r
+               return TaxonEditorInputFactory.getFactoryId();\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)\r
+        */\r
+       public void saveState(IMemento memento) {\r
+               TaxonEditorInputFactory.saveState(memento, this);\r
+       }\r
+}\r
index 4ab379a8ae08cdaa6661172aa3ac4e4ffb07ede0..cf17b22ea3020a361c503d6070cff2539264083b 100644 (file)
@@ -1,7 +1,7 @@
-#Tue Jun 02 18:11:30 CEST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+#Wed Jun 10 13:53:16 CEST 2009\r
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
+org.eclipse.jdt.core.compiler.compliance=1.5\r
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
+org.eclipse.jdt.core.compiler.source=1.5\r
index d34b2b04fa9532724d08412c7a3cd396fb1a87f4..09b4ad5b4ba8fbf90fd6e4e0fd2066a6fd8567af 100644 (file)
@@ -2,12 +2,13 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: EDIT Taxonomic Editor - Navigation Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 2.0.0.v20090603_1757
+Bundle-Version: 1.1.0
 Bundle-Activator: eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.navigation,
  eu.etaxonomy.taxeditor.navigation.handler,
  eu.etaxonomy.taxeditor.navigation.internal,
+ eu.etaxonomy.taxeditor.navigation.navigator,
  eu.etaxonomy.taxeditor.navigation.search,
  eu.etaxonomy.taxeditor.navigation.taxonomictree
 Require-Bundle: org.eclipse.core.resources;bundle-version="3.4.1",
@@ -17,11 +18,10 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="3.4.1",
  org.eclipse.ui.navigator.resources;bundle-version="3.3.101",
  org.eclipse.ui.ide;bundle-version="3.4.1",
  org.eclipse.ui.forms;bundle-version="3.3.101",
- eu.etaxonomy.cdmLibrary;bundle-version="2.0.0",
+ eu.etaxonomy.cdmLibrary;bundle-version="2.1.0",
  eu.etaxonomy.taxeditor.store;bundle-version="1.0.0",
  eu.etaxonomy.taxeditor.editor;bundle-version="1.0.0",
  org.eclipse.core.databinding.beans;bundle-version="1.1.1",
  org.eclipse.core.databinding;bundle-version="1.1.1",
  org.eclipse.jface.databinding;bundle-version="1.2.1"
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
index c8f59b729541973addcc5ecc357c888851eb9a09..6d2a40bcfdadecc4295461d86f93782107b780d3 100644 (file)
                commandId="eu.etaxonomy.taxeditor.navigation.command.showTaxonomicTreeView"
                label="Taxonomic Tree"
                style="push">
+         </command>         
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:eu.etaxonomy.taxeditor.navigation.navigatorpopup">
+         <command
+               commandId="eu.etaxonomy.taxeditor.navigation.command.editTaxon"
+               label="Edit"
+               style="push">
+         </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.navigation.command.moveTaxon"
+               label="Move Taxon"
+               style="push">
+         </command>
+         <separator
+               name="taxeditor-navigation.separator1">
+         </separator>
+         <command
+               commandId="eu.etaxonomy.taxeditor.navigation.command.createChildTaxon"
+               label="New Child"
+               style="push">
+         </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.navigation.command.quickCreateChildTaxon"
+               label="Quick Add Child "
+               style="push">
+         </command>
+         <separator
+               name="separator1"
+               visible="true">
+         </separator>
+         <command
+               commandId="eu.etaxonomy.taxeditor.navigation.command.deleteTaxon"
+               label="Delete"
+               style="push">
          </command>
       </menuContribution>
    </extension>
             name="Show Taxonomic Tree View">
       </command>
    </extension>
-   <!--extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="eu.etaxonomy.taxeditor.application.perspective">
 
-         <view
-               closeable="true"
-               id="eu.etaxonomy.taxeditor.navigation.search.searchResultView:1"
-               moveable="true"
-               ratio="0.5"
-               relationship="bottom"
-               relative="org.eclipse.ui.editorss"
-               showTitle="true"
-               standalone="false"
-               visible="false">
-         </view>
-         <view
-               closeable="true"
-               id="eu.etaxonomy.taxeditor.navigation.search.searchResultView:11"
-               moveable="true"
-               ratio="0.5"
-               relationship="bottom"
-               relative="org.eclipse.ui.editorss"
-               showTitle="true"
-               standalone="false"
-               visible="false">
-         </view>
-         <view
-               closeable="true"
-               id="eu.etaxonomy.taxeditor.navigation.search.searchResultView"
-               moveable="true"
-               ratio="0.5"
-               relationship="bottom"
-               relative="org.eclipse.ui.editorss"
-               showTitle="true"
-               standalone="false"
-               visible="false">
-         </view>
-         <view
-               closeable="true"
-               id="eu.etaxonomy.taxeditor.navigation.search.searchResultView:1"
-               moveable="true"
-               relationship="stack"
-               relative="eu.etaxonomy.taxeditor.navigation.taxonomictree.treeView"
-               showTitle="true"
-               standalone="false"
-               visible="false">
-         </view>
-         <view
-               closeable="true"
-               id="eu.etaxonomy.taxeditor.navigation.search.searchResultView:11"
-               moveable="true"
-               relationship="stack"
-               relative="eu.etaxonomy.taxeditor.navigation.taxonomictree.treeView"
-               showTitle="true"
-               standalone="false"
-               visible="false">
-         </view>
-         <view
-               closeable="true"
-               id="eu.etaxonomy.taxeditor.navigation.search.searchResultView:111"
-               moveable="true"
-               relationship="stack"
-               relative="eu.etaxonomy.taxeditor.navigation.taxonomictree.treeView"
-               showTitle="true"
-               standalone="false"
-               visible="false">
-         </view>
-      </perspectiveExtension>
-   </extension-->
       <extension
          point="org.eclipse.ui.themes">
       <themeElementCategory
          </fontValue>
       </fontDefinition>
    </extension>
+      <!--extension
+            point="org.eclipse.ui.navigator.viewer">
+         <viewer
+               viewerId="org.eclipse.ui.examples.navigator.view">
+         </viewer>
+         <viewerContentBinding
+               viewerId="org.eclipse.ui.examples.navigator.view">
+            <includes>
+               <contentExtension
+                     pattern="org.eclipse.ui.navigator.resourceContent" />
+               <contentExtension
+                     pattern="org.eclipse.ui.navigator.resources.filters.*" />                     
+            </includes>
+         </viewerContentBinding>
+         <viewerActionBinding
+               viewerId="org.eclipse.ui.examples.navigator.view">
+            <includes>
+               <actionExtension
+                     pattern="org.eclipse.ui.navigator.resources.*">
+               </actionExtension>
+            </includes>
+         </viewerActionBinding>
+      </extension>
+      <extension
+            point="org.eclipse.ui.navigator.navigatorContent">
+         <commonFilter
+               id="org.eclipse.ui.examples.navigator.filters.hideNonJavaProjects"
+               name="Hide non-Java projects">
+            <filterExpression>
+               <not>
+                  <adapt
+                        type="org.eclipse.core.resources.IProject">
+                     <test
+                           property="org.eclipse.core.resources.projectNature"
+                           value="org.eclipse.jdt.core.javanature">
+                     </test>
+                  </adapt>
+               </not>
+            </filterExpression>
+         </commonFilter>
+      </extension-->
+      
+      
+      
+      
+      
+      
+   <extension
+         point="org.eclipse.ui.views">
+      <view
+            class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator"
+            icon="icons/edit_16x16.gif"
+            id="eu.etaxonomy.taxeditor.navigation.navigator"
+            name="Taxonomic Tree"/>
+   </extension>
+   <extension
+         point="org.eclipse.ui.navigator.navigatorContent">
+      <navigatorContent
+            contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonContentProvider"
+            id="eu.etaxonomy.taxeditor.navigation.taxoncontent"
+            labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonLabelProvider"
+            name="Taxon">
+         <triggerPoints>
+            <instanceof value="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorRoot"/>
+         </triggerPoints>
+         <dropAssistant
+               class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonDropAdapterAssistant"
+               id="eu.etaxonomy.taxeditor.navigation.navigator.dropassistant">
+            <possibleDropTargets>
+               <instanceof
+                     value="eu.etaxonomy.cdm.model.taxon.Taxon">
+               </instanceof>
+            </possibleDropTargets>
+         </dropAssistant>
+         <possibleChildren>
+            <instanceof
+                  value="eu.etaxonomy.cdm.model.taxon.Taxon">
+            </instanceof>
+         </possibleChildren>
+         <actionProvider
+               class="eu.etaxonomy.taxeditor.navigation.navigator.OpenTaxonActionProvider"
+               id="eu.etaxonomy.taxeditor.navigation.action.open"
+               overrides="org.eclipse.ui.navigator.resources.OpenActions">
+            <enablement>
+               <instanceof
+                     value="eu.etaxonomy.cdm.model.taxon.Taxon">
+               </instanceof>
+            </enablement>
+         </actionProvider>
+      </navigatorContent>
+      <navigatorContent
+            contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorSynonymContentProvider"
+            id="eu.etaxonomy.taxeditor.navigation.synonymcontent"
+            labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorSynonymLabelProvider"
+            name="Synonyms"
+            priority="highest">
+         <triggerPoints>
+            <instanceof
+                  value="eu.etaxonomy.cdm.model.taxon.Taxon">
+            </instanceof>
+         </triggerPoints>
+         <possibleChildren>
+            <instanceof
+                  value="eu.etaxonomy.cdm.model.taxon.Synonym">
+            </instanceof>
+         </possibleChildren>
+      </navigatorContent>
+   </extension>
+   <extension
+         point="org.eclipse.ui.navigator.viewer">
+      <viewer
+            viewerId="eu.etaxonomy.taxeditor.navigation.navigator">
+         <popupMenu
+               id="eu.etaxonomy.taxeditor.navigation.navigatorpopup">
+         </popupMenu>
+      </viewer>
+      <viewerContentBinding viewerId="eu.etaxonomy.taxeditor.navigation.navigator">
+         <includes>
+            <contentExtension pattern="eu.etaxonomy.taxeditor.navigation.taxoncontent"/>
+            <contentExtension pattern="eu.etaxonomy.taxeditor.navigation.taxonlinkhelper"/>
+         </includes>
+      </viewerContentBinding>
+      <viewerContentBinding
+            viewerId="eu.etaxonomy.taxeditor.navigation.navigator">
+         <includes>
+            <contentExtension
+                  pattern="eu.etaxonomy.taxeditor.navigation.synonymcontent">
+            </contentExtension>
+         </includes>
+      </viewerContentBinding>
+      <!--viewer
+            popupMenuId="eu.etaxonomy.taxeditor.navigation.navigator#PopupMenu"
+            viewerId="eu.etaxonomy.taxeditor.navigation.navigator">
+         <options>
+            <property
+                  name="org.eclipse.ui.navigator.hideAvailableExtensionsTab"
+                  value="true">
+            </property>
+         </options>
+      </viewer-->
+   </extension>
+   <extension
+         point="org.eclipse.ui.navigator.linkHelper">
+      <linkHelper
+            class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonLinkHelper"
+            id="eu.etaxonomy.taxeditor.navigation.taxonlinkhelper">
+          <selectionEnablement>
+             <instanceof value="eu.etaxonomy.cdm.model.taxon.Taxon"/>
+          </selectionEnablement>            
+         <editorInputEnablement>
+               <instanceof value="eu.etaxonomy.taxeditor.editor.TaxonEditorInput"/>
+         </editorInputEnablement>
+      </linkHelper>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.adapters">
+      <factory
+            adaptableType="org.eclipse.core.internal.resources.Workspace"
+            class="eu.etaxonomy.taxeditor.navigation.WorkbenchUndoContextAdapterFactory">
+         <adapter
+               type="org.eclipse.core.commands.operations.IUndoContext">
+         </adapter>
+      </factory>
+   </extension>
+      
+      
+      
 </plugin>
index 8805a542e100edfc6a00dead2053383c0cdededc..68701f000a8edeae1d8eca4971c308dc1316664d 100644 (file)
@@ -17,11 +17,13 @@ import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IOperationHistory;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.IUndoableOperation;
+import org.eclipse.core.commands.operations.UndoContext;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IEditorReference;
@@ -29,6 +31,8 @@ import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.CommonViewer;
 
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -36,6 +40,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.store.model.AbstractUtility;
 
 /**
@@ -46,6 +51,7 @@ import eu.etaxonomy.taxeditor.store.model.AbstractUtility;
 public class NavigationUtil extends AbstractUtility{
        private static final Logger logger = Logger.getLogger(NavigationUtil.class);
        private static IStatusLineManager statusLineManager;
+       private static IUndoContext defaultUndoContext;
        
        /**
         * FIXME Introduces a dependency on eu.etaxonomy.taxeditor.editor. This is highly undesirable.
@@ -56,7 +62,7 @@ public class NavigationUtil extends AbstractUtility{
         * 
         * @param uuid
         */
-       public static void openEditor(IdentifiableEntity<?> selection) {
+       public static void openEditor(IdentifiableEntity selection) {
                try {
                        UUID entityUuid = selection.getUuid();                  
                        EditorUtil.open(entityUuid);
@@ -84,14 +90,19 @@ public class NavigationUtil extends AbstractUtility{
                }
        }
        
-       public static IOperationHistory getOperationHistory() {
+       public static IOperationHistory getWorkbenchOperationHistory() {
                return TaxeditorEditorPlugin.getDefault().getWorkbench().
                                        getOperationSupport().getOperationHistory();
        }
        
+       public static IUndoContext getWorkbenchUndoContext() {
+               return TaxeditorEditorPlugin.getDefault().getWorkbench().
+                                       getOperationSupport().getUndoContext();
+       }
+       
        public static void executeOperation(IUndoableOperation operation){
                try {
-                       IStatus status = getOperationHistory().execute(operation, getMonitor(),
+                       IStatus status = getWorkbenchOperationHistory().execute(operation, getMonitor(),
                                                                WorkspaceUndoUtil.getUIInfoAdapter(getShell()));
                        String statusString = status.equals(Status.OK_STATUS) ? "completed" : "cancelled";
                        setStatusLine(operation.getLabel() + " " + statusString + ".");
@@ -136,7 +147,15 @@ public class NavigationUtil extends AbstractUtility{
 
        public static IUndoContext getUndoContext() {
                // FIXME this has to be more specific. Every widget has to have its own undo context
-               return IOperationHistory.GLOBAL_UNDO_CONTEXT;
+//             return IOperationHistory.GLOBAL_UNDO_CONTEXT;
+               
+               // Plug-ins that wish their operations to be undoable from workbench views 
+               // such as the Navigator or Package Explorer should assign the workbench 
+               // undo context to their operations. 
+               if (defaultUndoContext == null) {
+                       defaultUndoContext = new UndoContext();
+               }
+               return defaultUndoContext;
        }
 
        public static boolean isDirty(Taxon taxon){
@@ -155,4 +174,21 @@ public class NavigationUtil extends AbstractUtility{
                return false;
        }
 
-}
+       /**
+        * @param parentElement 
+        * @param childTaxon
+        */
+       public static void selectInNavigator(Object element, Object parentElement) {
+               TaxonNavigator navigator = (TaxonNavigator) TaxeditorEditorPlugin.getDefault().getWorkbench().
+                               getActiveWorkbenchWindow().getActivePage().findView(TaxonNavigator.ID);
+               if (navigator != null) {
+                       CommonViewer viewer = navigator.getCommonViewer();
+                       if (viewer != null) {
+                               if (parentElement != null) {
+                                       viewer.setExpandedState(parentElement, true);
+                               }
+                               viewer.setSelection(new StructuredSelection((Taxon) element));
+                       }
+               }
+       }
+}
\ No newline at end of file
index 509aa3b1fd21360af81fd8a0eb23914ac48e5ad1..316f5c2325d1d36d3bc88b30c57482ef034ba45f 100644 (file)
 \r
 package eu.etaxonomy.taxeditor.navigation;\r
 \r
+import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.ContributionItem;\r
 import org.eclipse.jface.action.IContributionItem;\r
 import org.eclipse.jface.action.IContributionManager;\r
 import org.eclipse.swt.widgets.Menu;\r
 import org.eclipse.ui.actions.ContributionItemFactory;\r
+import org.eclipse.ui.internal.IPreferenceConstants;\r
+import org.eclipse.ui.internal.Workbench;\r
+import org.eclipse.ui.internal.WorkbenchPlugin;\r
+\r
+import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;\r
+import eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin;\r
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;\r
 \r
 /**\r
  * This is a wrapper for Eclipse's recently opened editors functionality. IsDirty()\r
@@ -25,13 +33,24 @@ import org.eclipse.ui.actions.ContributionItemFactory;
  * @version 1.0\r
  */\r
 public class RecentNamesContributionItem extends ContributionItem {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(RecentNamesContributionItem.class);\r
 \r
        private IContributionItem recentWindows;\r
        private IContributionManager parent;\r
 \r
+//     @SuppressWarnings("restriction")\r
+//     RecentNamesContributionItem() {\r
+////           WorkbenchPlugin.getDefault().getPreferenceStore().setValue(IPreferenceConstants.RECENT_FILES, 10);\r
+//             TaxeditorNavigationPlugin.getDefault().getPreferenceStore().setValue("RECENT_FILES", 10);\r
+//     }\r
        \r
        private IContributionItem getRecentWindows() {\r
-               if (recentWindows == null) {                    \r
+               if (recentWindows == null) {\r
+                       \r
+//             int itemsToShow = TaxeditorNavigationPlugin.getDefault().getPreferenceStore()\r
+//                     .getInt("RECENT_FILES");\r
+                                       \r
                        recentWindows = ContributionItemFactory.REOPEN_EDITORS.create(NavigationUtil.getActiveWindow());\r
                        recentWindows.setParent(parent);\r
                }\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/WorkbenchUndoContextAdapterFactory.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/WorkbenchUndoContextAdapterFactory.java
new file mode 100644 (file)
index 0000000..43bd45a
--- /dev/null
@@ -0,0 +1,57 @@
+// $Id$\r
+/**\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.navigation;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.commands.operations.UndoContext;\r
+import org.eclipse.core.runtime.IAdapterFactory;\r
+\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 04.06.2009\r
+ * @version 1.0\r
+ */\r
+public class WorkbenchUndoContextAdapterFactory implements IAdapterFactory {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(WorkbenchUndoContextAdapterFactory.class);\r
+       private UndoContext defaultUndoContext;\r
+\r
+       private static final Class[] ADAPTER_LIST = new Class[] { IUndoContext.class };\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)\r
+        */\r
+       public Object getAdapter(Object adaptableObject, Class adapterType) {\r
+               if (IUndoContext.class.equals(adapterType)) {\r
+                       return NavigationUtil.getWorkbenchUndoContext();\r
+               }\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * @return\r
+        */\r
+       private Object getDefaultUndoContext() {\r
+               if (defaultUndoContext == null) {\r
+                       defaultUndoContext = new UndoContext();\r
+               }\r
+               return defaultUndoContext;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()\r
+        */\r
+       public Class[] getAdapterList() {\r
+               return ADAPTER_LIST;\r
+       }\r
+}\r
index 374fc8128385d36276f5953623d1089dc9eae93a..f56dec68037aa4615996f6487a5bdec30742d1e1 100644 (file)
@@ -15,7 +15,6 @@ import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.IHandler;
 import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.operations.IUndoableOperation;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.dialogs.InputDialog;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -63,9 +62,9 @@ public class QuickCreateChildTaxonHandler extends AbstractHandler implements
                        
                        //TaxonUtil.addChildTaxonBaseIsolated(parentTaxon.getUuid(), dialog.getValue());
 
-                       TaxonNameBase<?, ?> name = CdmParserUtil.parseFullReference(dialog.getValue(), null, null);
+                       TaxonNameBase name = CdmParserUtil.parseFullReference(dialog.getValue(), null, null);
                        
-                       IUndoableOperation operation;
+                       CreateChildTaxonOperation operation;
                        try {
                                operation = new CreateChildTaxonOperation(event.getCommand().getName(), 
                                                NavigationUtil.getUndoContext(), parentTaxon, name, postOperationEnabled);
@@ -74,6 +73,9 @@ public class QuickCreateChildTaxonHandler extends AbstractHandler implements
                                        MessageDialog.openWarning(shell, "No Name Specified", "An attempt was made to save a taxon with" +
                                                        " an empty name. Operation was cancelled");
                                }
+                               
+                               NavigationUtil.selectInNavigator(operation.getChildTaxon(), parentTaxon);
+                               
                        } catch (NotDefinedException e) {
                                logger.warn("Command name not set");
                        }
index d1ff1b82334413cd73b0baf1589471e131bc3deb..39ed5488b9ccea7aeaf235f6cede5ac5df3409da 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
 
-import eu.etaxonomy.taxeditor.navigation.taxonomictree.TaxonomicTreeView;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
@@ -32,8 +32,8 @@ public class ShowTaxonomicTreeViewHandler extends AbstractHandler {
        public Object execute(ExecutionEvent event) throws ExecutionException {
                try {
                        TaxeditorStorePlugin.getDefault().getWorkbench()
-                               .getActiveWorkbenchWindow().getActivePage().showView(TaxonomicTreeView.ID, 
-                                       null, IWorkbenchPage.VIEW_VISIBLE);
+                                       .getActiveWorkbenchWindow().getActivePage().
+                                       showView(TaxonNavigator.ID,     null, IWorkbenchPage.VIEW_VISIBLE);                     
                } catch (PartInitException e) {
                        logger.error("Error opening taxonomic tree view.", e);
                }
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorRoot.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorRoot.java
new file mode 100644 (file)
index 0000000..a553d92
--- /dev/null
@@ -0,0 +1,61 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import java.util.List;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.PlatformObject;\r
+import org.eclipse.ui.IElementFactory;\r
+import org.eclipse.ui.IMemento;\r
+import org.eclipse.ui.IPersistableElement;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.06.2009\r
+ * @version 1.0\r
+ */\r
+public class NavigatorRoot extends PlatformObject implements IAdaptable, IPersistableElement, IElementFactory  {\r
+//             implements IAdaptable, IPersistableElement, IElementFactory {\r
+       private static final Logger logger = Logger.getLogger(NavigatorRoot.class);\r
+       \r
+       public List<Taxon> getParentBeans() {\r
+               return CdmStore.getDefault().getRootTaxa();\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IPersistableElement#getFactoryId()\r
+        */\r
+       public String getFactoryId() {\r
+               // TODO Auto-generated method stub\r
+               return null;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)\r
+        */\r
+       public void saveState(IMemento memento) {\r
+               // TODO Auto-generated method stub\r
+               \r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IElementFactory#createElement(org.eclipse.ui.IMemento)\r
+        */\r
+       public IAdaptable createElement(IMemento memento) {\r
+               // TODO Auto-generated method stub\r
+               return null;\r
+       }\r
+}\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymContentProvider.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymContentProvider.java
new file mode 100644 (file)
index 0000000..c8f0842
--- /dev/null
@@ -0,0 +1,70 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.viewers.ITreeContentProvider;\r
+import org.eclipse.jface.viewers.Viewer;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.taxeditor.editor.name.IterableSynonymyList;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.06.2009\r
+ * @version 1.0\r
+ */\r
+public class NavigatorSynonymContentProvider implements ITreeContentProvider {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(NavigatorSynonymContentProvider.class);\r
+\r
+       private static final Object[] NO_CHILDREN = new Object[0];\r
+       \r
+       public Object[] getChildren(Object parentElement) {\r
+               Object[] children = null;\r
+               if (parentElement instanceof Synonym) {\r
+                       children = NO_CHILDREN;\r
+               } else if (parentElement instanceof Taxon) {\r
+                       List<TaxonBase> list = new ArrayList<TaxonBase>();\r
+                       \r
+                       for (TaxonBase taxonBase : new IterableSynonymyList((Taxon) parentElement)) {\r
+                               if (taxonBase instanceof Synonym) {\r
+                                       list.add(taxonBase);\r
+                               }\r
+                       }\r
+                       children = list.toArray();\r
+               }\r
+               return children != null ? children : NO_CHILDREN;\r
+       }\r
+\r
+       public Object getParent(Object element) {\r
+               return null;\r
+       }\r
+\r
+       public boolean hasChildren(Object element) {\r
+               return this.getChildren(element).length > 0;\r
+       }\r
+\r
+       public Object[] getElements(Object inputElement) {\r
+               return this.getChildren(inputElement);\r
+       }\r
+\r
+       public void dispose() {\r
+       }\r
+\r
+       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {\r
+       }\r
+}\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymLabelProvider.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymLabelProvider.java
new file mode 100644 (file)
index 0000000..aa3ad13
--- /dev/null
@@ -0,0 +1,68 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.viewers.ColumnLabelProvider;\r
+import org.eclipse.jface.viewers.ILabelProvider;\r
+import org.eclipse.jface.viewers.StyledString;\r
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;\r
+import org.eclipse.swt.graphics.Image;\r
+import org.eclipse.ui.navigator.IDescriptionProvider;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.06.2009\r
+ * @version 1.0\r
+ */\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 04.06.2009\r
+ * @version 1.0\r
+ */\r
+public class NavigatorSynonymLabelProvider extends ColumnLabelProvider \r
+               implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(NavigatorSynonymLabelProvider.class);\r
+       \r
+       public Image getImage(Object element) {\r
+               return null;\r
+       }\r
+\r
+       public String getText(Object element) {\r
+               if (element instanceof Synonym &&\r
+                               ((Synonym) element).getName() != null) {\r
+                       \r
+                       return "= " + ((Synonym) element).getName().getTitleCache();\r
+               }\r
+               return new String();\r
+       }       \r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.IDescriptionProvider#getDescription(java.lang.Object)\r
+        */\r
+       public String getDescription(Object anElement) {\r
+               if (anElement instanceof Synonym) {\r
+                       Synonym data = (Synonym) anElement;\r
+                       return "Synonym: " + data.getTitleCache(); //$NON-NLS-1$\r
+               }\r
+               return null;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)\r
+        */\r
+       public StyledString getStyledText(Object element) {\r
+               return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);\r
+       }\r
+}\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonContentProvider.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonContentProvider.java
new file mode 100644 (file)
index 0000000..846d628
--- /dev/null
@@ -0,0 +1,58 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.viewers.ITreeContentProvider;\r
+import org.eclipse.jface.viewers.Viewer;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.06.2009\r
+ * @version 1.0\r
+ */\r
+public class NavigatorTaxonContentProvider implements ITreeContentProvider {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(NavigatorTaxonContentProvider.class);\r
+\r
+       public Object[] getChildren(Object parentElement) {\r
+               \r
+               if (parentElement instanceof NavigatorRoot) {\r
+                       return ((NavigatorRoot) parentElement).getParentBeans().toArray();\r
+               }\r
+               \r
+               if (parentElement instanceof Taxon) {\r
+                       return ((Taxon) parentElement).getTaxonomicChildren().toArray();\r
+               }\r
+               \r
+               return new Object[0];\r
+       }\r
+\r
+       public Object getParent(Object element) {\r
+               return null;\r
+       }\r
+\r
+       public boolean hasChildren(Object element) {\r
+               return this.getChildren(element).length > 0;\r
+       }\r
+\r
+       public Object[] getElements(Object inputElement) {\r
+               return this.getChildren(inputElement);\r
+       }\r
+\r
+       public void dispose() {\r
+       }\r
+\r
+       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {\r
+       }\r
+}\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonLabelProvider.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonLabelProvider.java
new file mode 100644 (file)
index 0000000..7722fd4
--- /dev/null
@@ -0,0 +1,63 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.viewers.ColumnLabelProvider;\r
+import org.eclipse.jface.viewers.ILabelProvider;\r
+import org.eclipse.jface.viewers.StyledString;\r
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;\r
+import org.eclipse.swt.graphics.Image;\r
+import org.eclipse.ui.navigator.IDescriptionProvider;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 04.06.2009\r
+ * @version 1.0\r
+ */\r
+public class NavigatorTaxonLabelProvider extends ColumnLabelProvider \r
+               implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(NavigatorTaxonLabelProvider.class);\r
+       \r
+       public Image getImage(Object element) {\r
+               return null;\r
+       }\r
+\r
+       public String getText(Object element) {\r
+               if (element instanceof Taxon &&\r
+                               ((Taxon) element).getName() != null) {\r
+                       \r
+                       return ((Taxon) element).getName().getTitleCache();\r
+               }\r
+               return new String();\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.IDescriptionProvider#getDescription(java.lang.Object)\r
+        */\r
+       public String getDescription(Object anElement) {\r
+               if (anElement instanceof Taxon) {\r
+                       Taxon data = (Taxon) anElement;\r
+                       return "Taxon: " + data.getTitleCache(); //$NON-NLS-1$\r
+               }\r
+               return null;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)\r
+        */\r
+       public StyledString getStyledText(Object element) {\r
+               return new StyledString(getText(element));\r
+       }\r
+}\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/OpenTaxonActionProvider.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/OpenTaxonActionProvider.java
new file mode 100644 (file)
index 0000000..55bdb7d
--- /dev/null
@@ -0,0 +1,82 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.StructuredViewer;\r
+import org.eclipse.jface.viewers.TreeSelection;\r
+import org.eclipse.ui.IActionBars;\r
+import org.eclipse.ui.navigator.CommonActionProvider;\r
+import org.eclipse.ui.navigator.ICommonActionConstants;\r
+import org.eclipse.ui.navigator.ICommonActionExtensionSite;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 04.06.2009\r
+ * @version 1.0\r
+ */\r
+public class OpenTaxonActionProvider extends CommonActionProvider {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(OpenTaxonActionProvider.class);\r
+\r
+       OpenTaxonAction openTaxonAction;\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)\r
+        */\r
+       public void init(ICommonActionExtensionSite aSite) {\r
+               super.init(aSite);\r
+               openTaxonAction = new OpenTaxonAction(aSite.getStructuredViewer()); \r
+        \r
+       }\r
+\r
+    /* (non-Javadoc)\r
+     * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)\r
+     */\r
+    public void fillActionBars(IActionBars actionBars) {\r
+        super.fillActionBars(actionBars);\r
+        // forward doubleClick to doubleClickAction\r
+        actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN,\r
+              openTaxonAction);\r
+    }\r
+    \r
+    class OpenTaxonAction extends Action {\r
+\r
+       private StructuredViewer structuredViewer;\r
+\r
+               /**\r
+                * @param structuredViewer\r
+                */\r
+               public OpenTaxonAction(StructuredViewer structuredViewer) {\r
+                       this.structuredViewer = structuredViewer;\r
+               }\r
+\r
+               /* (non-Javadoc)\r
+        * @see org.eclipse.jface.action.Action#run()\r
+        */\r
+       public void run() {\r
+                       ISelection selection = structuredViewer.getSelection();\r
+                       if (selection instanceof TreeSelection) {\r
+                               Object[] selections = ((TreeSelection) selection).toArray();\r
+                               for (Object element : ((TreeSelection) selection).toArray()) {\r
+                                       if (element instanceof Taxon) {\r
+                                               NavigationUtil.openEditor((Taxon) element);\r
+                                       }                                       \r
+                               }\r
+                       }\r
+               }       \r
+    }\r
+}\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonDropAdapterAssistant.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonDropAdapterAssistant.java
new file mode 100644 (file)
index 0000000..598749c
--- /dev/null
@@ -0,0 +1,135 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import org.apache.log4j.Logger;\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.core.runtime.Status;\r
+import org.eclipse.jface.dialogs.MessageDialog;\r
+import org.eclipse.jface.util.LocalSelectionTransfer;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.TreeSelection;\r
+import org.eclipse.swt.dnd.DropTargetEvent;\r
+import org.eclipse.swt.dnd.TransferData;\r
+import org.eclipse.ui.navigator.CommonDropAdapter;\r
+import org.eclipse.ui.navigator.CommonDropAdapterAssistant;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
+import eu.etaxonomy.taxeditor.store.model.NameUtil;\r
+import eu.etaxonomy.taxeditor.store.model.TaxonUtil;\r
+import eu.etaxonomy.taxeditor.store.operations.MoveTaxonOperation;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 03.06.2009\r
+ * @version 1.0\r
+ */\r
+public class TaxonDropAdapterAssistant extends CommonDropAdapterAssistant {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(TaxonDropAdapterAssistant.class);\r
+\r
+       public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator.dropassistant"; //$NON-NLS-1$\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handleDrop(org.eclipse.ui.navigator.CommonDropAdapter, org.eclipse.swt.dnd.DropTargetEvent, java.lang.Object)\r
+        */\r
+       @Override\r
+       public IStatus handleDrop(CommonDropAdapter dropAdapter,\r
+                       DropTargetEvent dropTargetEvent, Object target) {\r
+               \r
+               ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();\r
+               if (selection instanceof TreeSelection) {\r
+                       Object element = ((TreeSelection) selection).getFirstElement();\r
+                       if (element instanceof Taxon) {\r
+                               Taxon childTaxon = (Taxon) element;\r
+                               if (target instanceof Taxon) {\r
+                                       Taxon parentTaxon = (Taxon) target;\r
+                                       \r
+                                       return moveTaxon(childTaxon, parentTaxon);\r
+                               }\r
+                       }\r
+               }\r
+               \r
+//             IContainer target = getActualTarget((IResource) dropAdapter\r
+//                             .getCurrentTarget());\r
+//             IContainer target = \r
+//             if (target != null && target.isAccessible()) {\r
+//                     try {\r
+//                             target.refreshLocal(IResource.DEPTH_ONE, null);\r
+//                     } catch (CoreException e) {\r
+//                     }\r
+//             }\r
+               \r
+               return Status.CANCEL_STATUS;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#validateDrop(java.lang.Object, int, org.eclipse.swt.dnd.TransferData)\r
+        */\r
+       @Override\r
+       public IStatus validateDrop(Object target, int operation,\r
+                       TransferData transferType) {\r
+               if (target instanceof Taxon) {\r
+                       return Status.OK_STATUS;\r
+               }\r
+               return Status.CANCEL_STATUS;\r
+       }\r
+       \r
+\r
+       /**\r
+        * @param childTaxon\r
+        * @param parentTaxon\r
+        * @return\r
+        */\r
+       private IStatus moveTaxon(Taxon childTaxon, Taxon newParentTaxon) {\r
+               \r
+               // Make sure parentTaxon is not a child\r
+               if (TaxonUtil.isTaxonChildOfTaxon(newParentTaxon, childTaxon)) {\r
+                       \r
+                       MessageDialog.openError(NavigationUtil.getShell(), "Can't move taxon.",\r
+                                       "'" + NameUtil.getDisplayName(childTaxon) + "' sits above " +\r
+                                       "'" + NameUtil.getDisplayName(newParentTaxon) + "' " +\r
+                                       "in the taxonomic hierarchy.");\r
+                       \r
+                       return Status.CANCEL_STATUS;\r
+               }\r
+               \r
+               // Make sure taxon is not being dropped onto itself\r
+               if (childTaxon.equals(newParentTaxon)) {\r
+                       return Status.CANCEL_STATUS;\r
+               }\r
+               \r
+               // Make sure parent taxon does not have unsaved changes\r
+               if (NavigationUtil.isDirty(newParentTaxon)){\r
+                       MessageDialog.openWarning(NavigationUtil.getShell(), "Unsaved Parent Taxon", "There are unsaved " +\r
+                       "changes in the parent taxon. Pleas save first.");\r
+                       return Status.CANCEL_STATUS;\r
+               }\r
+               \r
+               IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();\r
+               if (workspaceUndoContext == null) {\r
+                       logger.error("Workspace undo context is null. DND operation cancelled");\r
+                       return Status.CANCEL_STATUS;\r
+               }\r
+               IUndoableOperation operation = new MoveTaxonOperation\r
+                               ("Move Taxon", workspaceUndoContext, childTaxon, newParentTaxon);\r
+               NavigationUtil.executeOperation(operation);     \r
+               \r
+               logger.info("Moved taxon " + childTaxon + " to new parent " + newParentTaxon);\r
+               \r
+               NavigationUtil.selectInNavigator(childTaxon, newParentTaxon);\r
+               \r
+               return Status.OK_STATUS;\r
+       }\r
+}\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonLinkHelper.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonLinkHelper.java
new file mode 100644 (file)
index 0000000..5d6b42b
--- /dev/null
@@ -0,0 +1,68 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.viewers.IStructuredSelection;\r
+import org.eclipse.jface.viewers.StructuredSelection;\r
+import org.eclipse.ui.IEditorInput;\r
+import org.eclipse.ui.IEditorPart;\r
+import org.eclipse.ui.IWorkbenchPage;\r
+import org.eclipse.ui.navigator.ILinkHelper;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;\r
+\r
+/**\r
+ * When a taxon is open in an editor and this editor has focus, its entry in the\r
+ * navigator's taxonomic tree is selected.\r
+ * \r
+ * @author p.ciardelli\r
+ * @created 03.06.2009\r
+ * @version 1.0\r
+ */\r
+public class TaxonLinkHelper implements ILinkHelper {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(TaxonLinkHelper.class);\r
+\r
+       public static final String ID = "eu.etaxonomy.taxeditor.navigation.taxonlinkhelper"; //$NON-NLS-1$\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.ILinkHelper#activateEditor(org.eclipse.ui.IWorkbenchPage, org.eclipse.jface.viewers.IStructuredSelection)\r
+        */\r
+       public void activateEditor(IWorkbenchPage page,\r
+                       IStructuredSelection selection) {\r
+               if (selection == null || selection.isEmpty()) {\r
+                       return;\r
+               }\r
+               if (selection.getFirstElement() instanceof Taxon) {\r
+                       Taxon taxon = (Taxon) selection.getFirstElement();\r
+                       TaxonEditorInput taxonEditorInput = TaxonEditorInput.NewInstance(taxon.getUuid());\r
+                       IEditorPart editor = null;\r
+                       if ((editor = page.findEditor(taxonEditorInput)) != null) {\r
+                               page.bringToTop(editor);\r
+                       }\r
+               }\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.ILinkHelper#findSelection(org.eclipse.ui.IEditorInput)\r
+        */\r
+       public IStructuredSelection findSelection(IEditorInput editorInput) {\r
+               if (editorInput instanceof TaxonEditorInput) {\r
+                       Taxon taxon = ((TaxonEditorInput) editorInput).getTaxon();\r
+                       if (taxon != null) {\r
+                               return new StructuredSelection(taxon);\r
+                       }\r
+               }\r
+               return StructuredSelection.EMPTY;\r
+       }\r
+}\r
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
new file mode 100644 (file)
index 0000000..e619ce4
--- /dev/null
@@ -0,0 +1,180 @@
+// $Id$\r
+/**\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.navigation.navigator;\r
+\r
+import java.util.ArrayList;\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Set;\r
+import java.util.UUID;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.jface.viewers.TreePath;\r
+import org.eclipse.jface.viewers.ViewerComparator;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.ui.IMemento;\r
+import org.eclipse.ui.IViewSite;\r
+import org.eclipse.ui.PartInitException;\r
+import org.eclipse.ui.navigator.CommonNavigator;\r
+\r
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+import eu.etaxonomy.taxeditor.store.model.DataChangeBridge;\r
+import eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior;\r
+\r
+/** \r
+ * Taxonomic tree implementation using Common Navigator Framework.\r
+ * \r
+ * @author p.ciardelli\r
+ * @created 02.06.2009\r
+ * @version 1.0\r
+ */\r
+public class TaxonNavigator extends CommonNavigator implements IConversationEnabled {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(TaxonNavigator.class);\r
+\r
+       public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator"; //$NON-NLS-1$\r
+\r
+       private static final String TREE_PATHS = "treepaths";\r
+       private static final String TREE_PATH = "treepath";\r
+\r
+       private ConversationHolder conversation;\r
+\r
+       private IDataChangeBehavior dataChangeBehavior;\r
+\r
+       private IMemento memento;\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.CommonNavigator#getInitialInput()\r
+        */\r
+       @Override\r
+       protected IAdaptable getInitialInput() {\r
+               conversation = CdmStore.NewTransactionalConversation();\r
+               conversation.registerForDataStoreChanges(this);\r
+               this.getCommonViewer().refresh();\r
+               return new NavigatorRoot();\r
+       }\r
+       \r
+       public void init(IViewSite site, IMemento memento)\r
+                       throws PartInitException {\r
+               super.init(site, memento);\r
+               \r
+               this.memento = memento;\r
+       }\r
+       \r
+       /**\r
+        * Restores state from a tree path memento using space-separated\r
+        * Taxon UUIDs.\r
+        * \r
+        * @param memento\r
+        */\r
+       private void restoreState(IMemento memento) {\r
+               if (memento == null) {\r
+                       return;\r
+               }\r
+               Set<TreePath> treePaths = new HashSet<TreePath>();\r
+               memento = memento.getChild(TREE_PATHS);\r
+               if (memento != null) {\r
+                       IMemento[] treePathMementos = memento.getChildren(TREE_PATH);\r
+                       if (treePathMementos.length > 0) {\r
+                               for (IMemento treePathMemento : treePathMementos) {\r
+                                       TreePath treePath = createTreePathFromString(treePathMemento.getID());\r
+                                       if (treePath != null) {\r
+                                               treePaths.add(treePath);\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+               if (treePaths.size() > 0) {\r
+                       TreePath[] treePathsArray = (TreePath[]) treePaths.toArray(new TreePath[treePaths.size()]);\r
+                       this.getCommonViewer().setExpandedTreePaths(treePathsArray);\r
+               }\r
+       }\r
+\r
+       /**\r
+        * @param string\r
+        * @return\r
+        */\r
+       private TreePath createTreePathFromString(String string) {\r
+               List<Taxon> pathList = new ArrayList<Taxon>();\r
+               for (String uuid : string.split(" ")) {\r
+                       Taxon taxon = (Taxon) CdmStore.getTaxonService().getTaxonByUuid(UUID.fromString(uuid));\r
+                       if (taxon == null) {\r
+                               return null;\r
+                       }\r
+                       pathList.add(taxon);\r
+               }\r
+               return new TreePath(pathList.toArray());\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.CommonNavigator#saveState(org.eclipse.ui.IMemento)\r
+        */\r
+       public void saveState(IMemento memento) {\r
+\r
+               super.saveState(memento);\r
+               \r
+               memento = memento.createChild(TREE_PATHS);\r
+               TreePath[] treePaths = this.getCommonViewer().getExpandedTreePaths();\r
+               for (TreePath treePath : treePaths) {\r
+                       int pathLength = treePath.getSegmentCount();\r
+                       String path = "";\r
+                       for (int i = 0; i < pathLength; i++) {\r
+                               Object segment = treePath.getSegment(i);\r
+                               if (segment instanceof Taxon) {\r
+                                       path += ((Taxon) segment).getUuid().toString() + " ";\r
+                               } else {\r
+                                       logger.warn("Non-taxon tree path segment " + segment);\r
+                               }\r
+                       }\r
+                       logger.info("Creating memento child for path " + path.trim());\r
+                       memento.createChild(TREE_PATH, path.trim());\r
+               }\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.navigator.CommonNavigator#createPartControl(org.eclipse.swt.widgets.Composite)\r
+        */\r
+       public void createPartControl(Composite aParent) {\r
+               super.createPartControl(aParent);\r
+               ViewerComparator comparator = getCommonViewer().getComparator();\r
+               restoreState(memento);          \r
+       }\r
+       \r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()\r
+        */\r
+       public ConversationHolder getConversationHolder() {\r
+               return conversation;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)\r
+        */\r
+       public void update(CdmDataChangeMap changeEvents) {\r
+               if(dataChangeBehavior == null){\r
+                       dataChangeBehavior = new TaxonNavigatorDataChangeBehavior(this);\r
+               }\r
+               DataChangeBridge.handleDataChange(changeEvents, dataChangeBehavior);\r
+       }\r
+       \r
+       protected String getFrameToolTipText(Object element) {\r
+               if (element instanceof NavigatorRoot) {\r
+                       return "Taxonomic Tree";\r
+               }\r
+               return super.getFrameToolTipText(element);\r
+       }\r
+}
\ No newline at end of file
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java
new file mode 100644 (file)
index 0000000..93e34aa
--- /dev/null
@@ -0,0 +1,67 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.navigation.navigator;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
+import eu.etaxonomy.taxeditor.store.model.AbstractDataChangeBehaviour;
+import eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior;
+
+/**
+ * @author n.hoffmann
+ * @created 01.04.2009
+ * @version 1.0
+ */
+public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements 
+               IDataChangeBehavior {
+       private static final Logger logger = Logger
+                       .getLogger(TaxonNavigatorDataChangeBehavior.class);
+
+       private TaxonNavigator source;
+       
+       public TaxonNavigatorDataChangeBehavior(TaxonNavigator taxonNavigator) {
+               source = taxonNavigator;
+       }
+
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
+        */
+       public boolean isRelevant(CdmDataChangeMap events) {
+               // react on everything except load
+               if(events.sizeByEventType(EventType.INSERT) > 0){
+                       return true;
+               }else if(events.sizeByEventType(EventType.UPDATE) > 0){
+                       return true;
+               }else if(events.sizeByEventType(EventType.DELETE) > 0){
+                       return true;
+               }else{
+                       return false;
+               }
+       }
+
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
+        */
+       public void reactOnDataChange(CdmDataChangeMap events) {
+
+
+               if(isRelevant(events)){
+                       
+                       source.getCommonViewer().refresh();
+                       
+                       logger.info("DataStore update caused a refresh of the taxonomic tree");
+
+               }
+       }
+}
index 3acf610b84c8acd8ab62a1c7f138f5ed3f02a425..0217ab6b8481f6317311c77264a4cf4de0e14f90 100644 (file)
@@ -43,7 +43,8 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
        private static final Logger logger = Logger\r
                        .getLogger(SearchResultView.class);\r
 \r
-       public static final String ID = "eu.etaxonomy.taxeditor.navigation.search.searchResultView"; //$NON-NLS-1$\r
+       public static final String ID = \r
+                       "eu.etaxonomy.taxeditor.navigation.search.searchResultView"; //$NON-NLS-1$\r
 \r
        private TableViewer resultViewer;\r
        \r
@@ -86,7 +87,7 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
        }\r
        \r
        protected void performSearch(String queryString) {\r
-               List<?> searchResult = CdmStore.searchTaxaByName(queryString);\r
+               List searchResult = CdmStore.searchTaxaByName(queryString);\r
                \r
                resultViewer.setInput(searchResult); \r
                setPartName("Search: '" + queryString + "'");\r
@@ -117,11 +118,4 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
                \r
        }\r
 \r
-       /**\r
-        * @return the queryString\r
-        */\r
-       public String getQueryString() {\r
-               return queryString;\r
-       }\r
-\r
 }\r
index cbf51763a378b1ad08d49272eb77a9b3f8a3d289..123a715d7215bfa23a2794bf65de9a19ba3ffb69 100644 (file)
@@ -24,7 +24,7 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
  * @version 1.0\r
  * @author n.hoffmann\r
  */\r
-public class TaxonomicTreeContentProvider implements ITreeContentProvider {\r
+@Deprecated public class TaxonomicTreeContentProvider implements ITreeContentProvider {\r
 \r
        /*\r
         * (non-Javadoc)\r
index 221000a3c70a82e82b3a20d8591d98fe09376ada..4a8cd4158f8eb1e624032aa189e672074b328b2f 100644 (file)
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.store.model.NameUtil;
  * @created 18.03.2009
  * @version 1.0
  */
-public class TaxonomicTreeLabelProvider extends ColumnLabelProvider implements ILabelProvider, IDescriptionProvider  {
+@Deprecated public class TaxonomicTreeLabelProvider extends ColumnLabelProvider implements ILabelProvider, IDescriptionProvider  {
 
        public Image getImage(Object element) {
                // This code was to distinct a missaplied name from a accepted taxon name 
index 46d9e2d54b9a62e30b2eacc2d497b46619e67b86..6ea6e47eee2f676a3868740719e744efb8438ecb 100644 (file)
@@ -63,7 +63,7 @@ import eu.etaxonomy.taxeditor.store.operations.MoveTaxonOperation;
  * @version 1.0\r
  * @author n.hoffmann\r
  */\r
-public class TaxonomicTreeView extends ViewPart implements IConversationEnabled, IPostOperationEnabled {\r
+@Deprecated public class TaxonomicTreeView extends ViewPart implements IConversationEnabled, IPostOperationEnabled {\r
        private static final Logger logger = Logger.getLogger(TaxonomicTreeView.class);\r
        \r
        public static final String ID = "eu.etaxonomy.taxeditor.navigation.taxonomictree.treeView"; //$NON-NLS-1$\r
index 2d4c0af379ae52de533d2d1a8f83c2b80d403ae1..0b30730c1dc9bde253ca5c72583ee6e266b9f1a1 100644 (file)
@@ -21,7 +21,7 @@ import eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior;
  * @created 01.04.2009
  * @version 1.0
  */
-public class TaxonomicTreeViewDataChangeBehaviour extends AbstractDataChangeBehaviour implements 
+@Deprecated public class TaxonomicTreeViewDataChangeBehaviour extends AbstractDataChangeBehaviour implements 
                IDataChangeBehavior {
        private static final Logger logger = Logger
                        .getLogger(TaxonomicTreeViewDataChangeBehaviour.class);
index 3b1e8f0588b4550fd5e37977840b95c25e1394f3..cf17b22ea3020a361c503d6070cff2539264083b 100644 (file)
@@ -1,4 +1,4 @@
-#Mon Apr 20 13:36:54 CEST 2009\r
+#Wed Jun 10 13:53:16 CEST 2009\r
 eclipse.preferences.version=1\r
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
 org.eclipse.jdt.core.compiler.compliance=1.5\r
index 5c8e7deb229ed136dacbb964f8bfd0ff0b83a2ca..70980c9d25b0b32a19952271d529ade34112801d 100644 (file)
@@ -5,7 +5,10 @@ Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
 Bundle-Version: 2.0.0.v20090603_1757
 Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
 Bundle-Vendor: EDIT
-Export-Package: eu.etaxonomy.taxeditor.handler,
+Export-Package: dbscripts,
+ eu.etaxonomy.cdm,
+ eu.etaxonomy.cdm.database,
+ eu.etaxonomy.taxeditor.handler,
  eu.etaxonomy.taxeditor.store,
  eu.etaxonomy.taxeditor.store.datasource,
  eu.etaxonomy.taxeditor.store.datasource.handler,
index 99bf67be3ad847f2df413d1f9adb0faae7818b74..a81a88601d31eb2cd93f11b4a0f789b632d60f87 100644 (file)
@@ -32,7 +32,7 @@ import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
-import eu.etaxonomy.cdm.model.common.VocabularyType;
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
@@ -140,7 +140,7 @@ public class CdmStore{
        }
 
        private TermVocabulary<Feature> getFeaturesInternal() {
-               return applicationController.getTermService().getVocabulary(VocabularyType.Feature);
+               return applicationController.getTermService().getVocabulary(VocabularyEnum.Feature);
        }
        
        public static TermVocabulary<Feature> getFeatures() {
@@ -148,15 +148,15 @@ public class CdmStore{
        }
 
        public SortedSet<NameRelationshipType> getNameRelationshipTypes() {
-               return applicationController.getTermService().getVocabulary(VocabularyType.NameRelationshipType).getTermsOrderedByLabels(Language.DEFAULT());
+               return applicationController.getTermService().getVocabulary(VocabularyEnum.NameRelationshipType).getTermsOrderedByLabels(Language.DEFAULT());
        }
 
        public TermVocabulary<NomenclaturalStatusType> getNomStatus() {
-               return applicationController.getTermService().getVocabulary(VocabularyType.NomenclaturalStatusType);
+               return applicationController.getTermService().getVocabulary(VocabularyEnum.NomenclaturalStatusType);
        }
 
        private SortedSet<Rank> getRanksInternal() {
-               return ((OrderedTermVocabulary)applicationController.getTermService().getVocabulary(VocabularyType.Rank)).getOrderedTerms(null);
+               return ((OrderedTermVocabulary)applicationController.getTermService().getVocabulary(VocabularyEnum.Rank)).getOrderedTerms(null);
        }
        
        public static SortedSet<Rank> getRanks() {
@@ -172,7 +172,7 @@ public class CdmStore{
        }
 
        public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypes() {
-               return (OrderedTermVocabulary<TaxonRelationshipType>) applicationController.getTermService().getVocabulary(VocabularyType.TaxonRelationshipType);
+               return (OrderedTermVocabulary<TaxonRelationshipType>) applicationController.getTermService().getVocabulary(VocabularyEnum.TaxonRelationshipType);
        }
 
        public Set<Taxon> getTaxonomicChildren(Taxon parentTaxon) {
@@ -181,7 +181,7 @@ public class CdmStore{
        }
        
        public TermVocabulary<SpecimenTypeDesignationStatus> getSpecimenTypeDesignationStatus() {
-               return applicationController.getTermService().getVocabulary(VocabularyType.SpecimenTypeDesignationStatus);
+               return applicationController.getTermService().getVocabulary(VocabularyEnum.SpecimenTypeDesignationStatus);
        }
 
        public void removeAllTaxa() {
index d74accdec49887d68f2ffb75ff0b3b1862dca16c..1eb307e7cc8e7773e7d15e5374eed786c6b2f945 100644 (file)
@@ -1,91 +1,95 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.store.operations;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-import eu.etaxonomy.taxeditor.store.model.TaxonUtil;
-
-/**
- * @author n.hoffmann
- * @created 08.05.2009
- * @version 1.0
- */
-public class CreateChildTaxonOperation extends AbstractPostOperation {
-       
-       private static final Logger logger = Logger
-       .getLogger(CreateChildTaxonOperation.class);
-       
-       private TaxonNameBase<?, ?> newTaxonName;
-
-       private Taxon childTaxon;
-
-       
-       /**
-        * @param label
-        * @param undoContext
-        * @param taxon
-        * @param postOperationEnabled
-        * @param conversationEnabled
-        */
-       public CreateChildTaxonOperation(String label, IUndoContext undoContext,
-                       Taxon taxon, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled) {
-               super(label, undoContext, taxon, postOperationEnabled);
-               
-               this.newTaxonName = name;
-       }
-
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       @Override
-       public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-                       throws ExecutionException {
-               
-               childTaxon = TaxonUtil.addChildTaxonBaseIsolated(taxon.getUuid(), newTaxonName);
-               
-               if(childTaxon != null){
-                       return postExecute(childTaxon);
-               }else{
-                       return new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, TaxeditorStorePlugin.ERROR_SAVING_ZERO_NAME, "Attempt to save taxon with zero length name", null);
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       @Override
-       public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-                       throws ExecutionException {
-               return execute(monitor, info);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       @Override
-       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-                       throws ExecutionException {
-               
-               logger.warn("Not yet implemented.");
-               return null;
-       }
-}
+// $Id$\r
+/**\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.store.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
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;\r
+import eu.etaxonomy.taxeditor.store.model.TaxonUtil;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 08.05.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateChildTaxonOperation extends AbstractPostOperation {\r
+       \r
+       private static final Logger logger = Logger\r
+       .getLogger(CreateChildTaxonOperation.class);\r
+       \r
+       private TaxonNameBase newTaxonName;\r
+\r
+       private Taxon childTaxon;\r
+\r
+       \r
+       /**\r
+        * @param label\r
+        * @param undoContext\r
+        * @param parentTaxon\r
+        * @param postOperationEnabled\r
+        * @param conversationEnabled\r
+        */\r
+       public CreateChildTaxonOperation(String label, IUndoContext undoContext,\r
+                       Taxon parentTaxon, TaxonNameBase name, IPostOperationEnabled postOperationEnabled) {\r
+               super(label, undoContext, parentTaxon, postOperationEnabled);\r
+               \r
+               this.newTaxonName = name;\r
+       }\r
+\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+        */\r
+       @Override\r
+       public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+               \r
+               childTaxon = TaxonUtil.addChildTaxonBaseIsolated(taxon.getUuid(), newTaxonName);\r
+               \r
+               if(childTaxon != null){\r
+                       return postExecute(childTaxon);\r
+               }else{\r
+                       return new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, TaxeditorStorePlugin.ERROR_SAVING_ZERO_NAME, "Attempt to save taxon with zero length name", null);\r
+               }\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+        */\r
+       @Override\r
+       public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+               return execute(monitor, info);\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+        */\r
+       @Override\r
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+               \r
+               logger.warn("Not yet implemented.");\r
+               return null;\r
+       }\r
+       \r
+       public Taxon getChildTaxon() {\r
+               return childTaxon;\r
+       }\r
+}\r