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
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
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
-#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
-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
-<?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
-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
-#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
-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
-/**
-* 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
-#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
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",
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
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>
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;
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;
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;
/**
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.
*
* @param uuid
*/
- public static void openEditor(IdentifiableEntity<?> selection) {
+ public static void openEditor(IdentifiableEntity selection) {
try {
UUID entityUuid = selection.getUuid();
EditorUtil.open(entityUuid);
}
}
- 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 + ".");
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){
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
\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
* @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
--- /dev/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.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
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;
//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);
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");
}
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;
/**
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);
}
--- /dev/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.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
--- /dev/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.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
--- /dev/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.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
--- /dev/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.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
--- /dev/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.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
--- /dev/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.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
--- /dev/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.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
--- /dev/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.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
--- /dev/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.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
--- /dev/null
+/**
+* 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");
+
+ }
+ }
+}
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
}\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
\r
}\r
\r
- /**\r
- * @return the queryString\r
- */\r
- public String getQueryString() {\r
- return queryString;\r
- }\r
-\r
}\r
* @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
* @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
* @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
* @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);
-#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
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,
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;
}
private TermVocabulary<Feature> getFeaturesInternal() {
- return applicationController.getTermService().getVocabulary(VocabularyType.Feature);
+ return applicationController.getTermService().getVocabulary(VocabularyEnum.Feature);
}
public static TermVocabulary<Feature> getFeatures() {
}
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() {
}
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) {
}
public TermVocabulary<SpecimenTypeDesignationStatus> getSpecimenTypeDesignationStatus() {
- return applicationController.getTermService().getVocabulary(VocabularyType.SpecimenTypeDesignationStatus);
+ return applicationController.getTermService().getVocabulary(VocabularyEnum.SpecimenTypeDesignationStatus);
}
public void removeAllTaxa() {
-// $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