Added a bunch of functionality that will be needed when opening the editor with an...
authorn.hoffmann <n.hoffmann@localhost>
Tue, 23 Jun 2009 16:57:51 +0000 (16:57 +0000)
committern.hoffmann <n.hoffmann@localhost>
Tue, 23 Jun 2009 16:57:51 +0000 (16:57 +0000)
40 files changed:
.gitattributes
taxeditor-application/TaxEditor.product
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInputFactory.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DistributionFeatureGroupComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DistributionMapDialog.java
taxeditor-navigation/plugin.xml
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/CreateChildTaxonHandler.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/DeleteTaxonNodeHandler.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/MoveTaxonHandler.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizadPage.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizard.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/QuickCreateChildTaxonHandler.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/Root.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorRoot.java with 84% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymContentProvider.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymContentProvider.java with 89% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymLabelProvider.java with 90% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonContentProvider.java with 76% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonLabelProvider.java with 91% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorPropertyTester.java with 54% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonomicTreeContentProvider.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonomicTreeContentProvider.java with 87% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonomicTreeLabelProvider.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonomicTreeLabelProvider.java with 93% similarity]
taxeditor-store/plugin.xml
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizard.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizardPage.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonNodeUtil.java [deleted file]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonUtil.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPostOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeConceptRelationshipTypeOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeConceptToSynonymOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateChildTaxonOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonomicTreeOperation.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonNodeOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonomicTreeOperation.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java

index fb6707b443f8a1669898fcc866a000f1dbd2c722..43a7cf526a737dda921ce36eca8440736db8b7f6 100644 (file)
@@ -835,22 +835,24 @@ taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/Cre
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/DeleteTaxonNodeHandler.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/MoveTaxonHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/DeleteTaxonNodeHandler.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/MoveTaxonHandler.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizadPage.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizard.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/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/NavigatorPropertyTester.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/NavigatorTaxonomicTreeContentProvider.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonomicTreeLabelProvider.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/OpenTaxonActionProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/Root.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymContentProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.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/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/navigator/TaxonNodeContentProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonomicTreeContentProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonomicTreeLabelProvider.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
 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
@@ -971,6 +973,8 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/UriDialog.java -tex
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelExportWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelImportWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelExportWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelImportWizard.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizard.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizardPage.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizardPage.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbImportWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizardPage.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbImportWizard.java -text
@@ -990,8 +994,8 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/NameUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ReferenceUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/Resources.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/SynonymUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ReferenceUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/Resources.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/SynonymUtil.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonNodeUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonTransfer.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonTransfer.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TimeUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPersistentPostOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPostOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TimeUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPersistentPostOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPostOperation.java -text
@@ -1009,12 +1013,14 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateImageOpera
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateMisapplicationOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInExisitingHomotypicalGroupOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInNewGroupOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateMisapplicationOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInExisitingHomotypicalGroupOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInNewGroupOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonomicTreeOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteDescriptionElementOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteImageOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMisapplicationOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteSynonymOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonNodeOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteDescriptionElementOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteImageOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMisapplicationOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteSynonymOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonNodeOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonomicTreeOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/IPostOperationEnabled.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/RemoveHomotypicalGroupBasionymOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/IPostOperationEnabled.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/RemoveHomotypicalGroupBasionymOperation.java -text
index 7ecdc6d4314ad2406fac748c078c2b08b6089975..c1a2befedb992ea27a83ead24cf58a81d8494543 100644 (file)
@@ -1,87 +1,89 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<?pde version="3.4"?>\r
-\r
-<product name="%productName" id="eu.etaxonomy.taxeditor.application.TaxonomicEditor" application="eu.etaxonomy.taxeditor.application.application" version="2.0.0" useFeatures="true">\r
-\r
-   <aboutInfo>\r
-      <text>\r
-         %productBlurb\r
-      </text>\r
-   </aboutInfo>\r
-\r
-   <configIni use="default">\r
-   </configIni>\r
-\r
-   <launcherArgs>\r
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>\r
-   </launcherArgs>\r
-\r
-   <windowImages i16="/taxeditor-application/icons/256color_16x16.gif" i32="/taxeditor-application/icons/256color_32x32.gif" i48="/taxeditor-application/icons/256color_48x48.gif"/>\r
-\r
-   <splash\r
-      startupProgressRect="5,447,366,15"\r
-      startupMessageRect="7,432,360,20"\r
-      startupForegroundColor="000000" />\r
-   <launcher name="TaxonomicEditor">\r
-      <solaris/>\r
-      <win useIco="false">\r
-         <bmp/>\r
-      </win>\r
-   </launcher>\r
-\r
-   <vm>\r
-   </vm>\r
-\r
-   <plugins>\r
-      <plugin id="com.ibm.icu"/>\r
-      <plugin id="eu.etaxonomy.cdmLibrary"/>\r
-      <plugin id="eu.etaxonomy.taxeditor.application"/>\r
-      <plugin id="eu.etaxonomy.taxeditor.editor"/>\r
-      <plugin id="eu.etaxonomy.taxeditor.navigation"/>\r
-      <plugin id="eu.etaxonomy.taxeditor.store"/>\r
-      <plugin id="org.eclipse.core.commands"/>\r
-      <plugin id="org.eclipse.core.contenttype"/>\r
-      <plugin id="org.eclipse.core.databinding"/>\r
-      <plugin id="org.eclipse.core.databinding.beans"/>\r
-      <plugin id="org.eclipse.core.expressions"/>\r
-      <plugin id="org.eclipse.core.filebuffers"/>\r
-      <plugin id="org.eclipse.core.filesystem"/>\r
-      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>\r
-      <plugin id="org.eclipse.core.jobs"/>\r
-      <plugin id="org.eclipse.core.resources"/>\r
-      <plugin id="org.eclipse.core.resources.compatibility" fragment="true"/>\r
-      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>\r
-      <plugin id="org.eclipse.core.runtime"/>\r
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>\r
-      <plugin id="org.eclipse.equinox.app"/>\r
-      <plugin id="org.eclipse.equinox.common"/>\r
-      <plugin id="org.eclipse.equinox.preferences"/>\r
-      <plugin id="org.eclipse.equinox.registry"/>\r
-      <plugin id="org.eclipse.help"/>\r
-      <plugin id="org.eclipse.jface"/>\r
-      <plugin id="org.eclipse.jface.databinding"/>\r
-      <plugin id="org.eclipse.jface.text"/>\r
-      <plugin id="org.eclipse.osgi"/>\r
-      <plugin id="org.eclipse.pde.source"/>\r
-      <plugin id="org.eclipse.swt"/>\r
-      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>\r
-      <plugin id="org.eclipse.text"/>\r
-      <plugin id="org.eclipse.ui"/>\r
-      <plugin id="org.eclipse.ui.editors"/>\r
-      <plugin id="org.eclipse.ui.forms"/>\r
-      <plugin id="org.eclipse.ui.ide"/>\r
-      <plugin id="org.eclipse.ui.navigator"/>\r
-      <plugin id="org.eclipse.ui.navigator.resources"/>\r
-      <plugin id="org.eclipse.ui.views"/>\r
-      <plugin id="org.eclipse.ui.views.properties.tabbed"/>\r
-      <plugin id="org.eclipse.ui.win32" fragment="true"/>\r
-      <plugin id="org.eclipse.ui.workbench"/>\r
-      <plugin id="org.eclipse.ui.workbench.texteditor"/>\r
-      <plugin id="org.junit4"/>\r
-   </plugins>\r
-\r
-   <features>\r
-      <feature id="eu.etaxonomy.taxeditor" version="2.0.0.v20090610_1523"/>\r
-   </features>\r
-\r
-</product>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.4"?>
+
+<product name="%productName" id="eu.etaxonomy.taxeditor.application.TaxonomicEditor" application="eu.etaxonomy.taxeditor.application.application" version="2.0.0" useFeatures="true">
+
+   <aboutInfo>
+      <text>
+         %productBlurb
+      </text>
+   </aboutInfo>
+
+   <configIni use="default">
+   </configIni>
+
+   <launcherArgs>
+      <vmArgs>-Xmx256M</vmArgs>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+   </launcherArgs>
+
+   <windowImages i16="/taxeditor-application/icons/256color_16x16.gif" i32="/taxeditor-application/icons/256color_32x32.gif" i48="/taxeditor-application/icons/256color_48x48.gif"/>
+
+   <splash
+      startupProgressRect="5,447,366,15"
+      startupMessageRect="7,432,360,20"
+      startupForegroundColor="000000" />
+   <launcher name="TaxonomicEditor">
+      <solaris/>
+      <win useIco="false">
+         <bmp/>
+      </win>
+   </launcher>
+
+
+   <vm>
+   </vm>
+
+   <plugins>
+      <plugin id="com.ibm.icu"/>
+      <plugin id="eu.etaxonomy.cdmLibrary"/>
+      <plugin id="eu.etaxonomy.taxeditor.application"/>
+      <plugin id="eu.etaxonomy.taxeditor.editor"/>
+      <plugin id="eu.etaxonomy.taxeditor.navigation"/>
+      <plugin id="eu.etaxonomy.taxeditor.store"/>
+      <plugin id="org.eclipse.core.commands"/>
+      <plugin id="org.eclipse.core.contenttype"/>
+      <plugin id="org.eclipse.core.databinding"/>
+      <plugin id="org.eclipse.core.databinding.beans"/>
+      <plugin id="org.eclipse.core.expressions"/>
+      <plugin id="org.eclipse.core.filebuffers"/>
+      <plugin id="org.eclipse.core.filesystem"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.jobs"/>
+      <plugin id="org.eclipse.core.resources"/>
+      <plugin id="org.eclipse.core.resources.compatibility" fragment="true"/>
+      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.runtime"/>
+      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
+      <plugin id="org.eclipse.equinox.app"/>
+      <plugin id="org.eclipse.equinox.common"/>
+      <plugin id="org.eclipse.equinox.preferences"/>
+      <plugin id="org.eclipse.equinox.registry"/>
+      <plugin id="org.eclipse.help"/>
+      <plugin id="org.eclipse.jface"/>
+      <plugin id="org.eclipse.jface.databinding"/>
+      <plugin id="org.eclipse.jface.text"/>
+      <plugin id="org.eclipse.osgi"/>
+      <plugin id="org.eclipse.pde.source"/>
+      <plugin id="org.eclipse.swt"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.text"/>
+      <plugin id="org.eclipse.ui"/>
+      <plugin id="org.eclipse.ui.editors"/>
+      <plugin id="org.eclipse.ui.forms"/>
+      <plugin id="org.eclipse.ui.ide"/>
+      <plugin id="org.eclipse.ui.navigator"/>
+      <plugin id="org.eclipse.ui.navigator.resources"/>
+      <plugin id="org.eclipse.ui.views"/>
+      <plugin id="org.eclipse.ui.views.properties.tabbed"/>
+      <plugin id="org.eclipse.ui.win32" fragment="true"/>
+      <plugin id="org.eclipse.ui.workbench"/>
+      <plugin id="org.eclipse.ui.workbench.texteditor"/>
+      <plugin id="org.junit4"/>
+   </plugins>
+
+   <features>
+      <feature id="eu.etaxonomy.taxeditor" version="2.0.0.v20090610_1523"/>
+   </features>
+
+</product>
index ee9063d1db8e5fd85821ef1aba0c9497e6873ba6..17c03a4d7ad80b5169bb653a689772b0a03f5311 100644 (file)
@@ -102,8 +102,8 @@ public class EditorUtil extends AbstractUtility{
         * @return                              The EditorPart.\r
         * @throws PartInitException \r
         */\r
         * @return                              The EditorPart.\r
         * @throws PartInitException \r
         */\r
-       public static IEditorPart openEmpty(UUID parentTaxonNodeUuid) throws PartInitException{\r
-               TaxonEditorInput input = TaxonEditorInput.NewEmptyInstance(parentTaxonNodeUuid);\r
+       public static IEditorPart openEmpty(UUID parentNodeUuid) throws PartInitException{\r
+               TaxonEditorInput input = TaxonEditorInput.NewEmptyInstance(parentNodeUuid);\r
                return open(input, MultiPageTaxonEditor.ID);\r
        }\r
 \r
                return open(input, MultiPageTaxonEditor.ID);\r
        }\r
 \r
index ff9bb4e41271cbd7b6e71bf62525f6ef7fd3dff4..7449f2396dab13eba5a5c8445502a1d1f58f7067 100644 (file)
@@ -23,6 +23,7 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -91,26 +92,29 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
        return new TaxonEditorInput(taxonNode, conversation);
     }
     
        return new TaxonEditorInput(taxonNode, conversation);
     }
     
-    public static TaxonEditorInput NewEmptyInstance(UUID parentTaxonNodeUuid){
+    public static TaxonEditorInput NewEmptyInstance(UUID parentNodeUuid){
        ConversationHolder conversation = CdmStore.NewTransactionalConversation();
                
                TaxonNameBase<?, ?> name = PreferencesUtil.getInstanceOfPreferredNameClass();
                
        ConversationHolder conversation = CdmStore.NewTransactionalConversation();
                
                TaxonNameBase<?, ?> name = PreferencesUtil.getInstanceOfPreferredNameClass();
                
+               TaxonNode parentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(parentNodeUuid);
+               
                Taxon newTaxon = null;
                TaxonNode newTaxonNode = null;
                
                Taxon newTaxon = null;
                TaxonNode newTaxonNode = null;
                
-               // FIXME adding of root taxon nodes disabled for now. Still have to find a way to 
-               // which taxonomic tree the node shoul dbe added
-//             if(parentTaxonNodeUuid == null){
-//                     newTaxon = Taxon.NewInstance(name, CdmStore.getDefault().getDefaultSec());
-//                     newTaxonNode = new TaxonNode();
-//             }else{
-                       TaxonNode parentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(parentTaxonNodeUuid);
-                                               
+               if(parentTaxonNode == null){
+                       // parentNodeUUid might be a taxonomic tree 
+                       // FIXME this is not very elegant, please refactor
+                       // add new taxon as root node
+                       TaxonomicTree tree = CdmStore.getTaxonService().getTaxonomicTreeByUuid(parentNodeUuid);
+                       
+                       newTaxon = Taxon.NewInstance(name, CdmStore.getDefault().getDefaultSec());
+                       newTaxonNode = tree.addRoot(newTaxon, null);
+               }else{
+                       // add new taxon as child of another taxon
                        newTaxon = Taxon.NewInstance(name, parentTaxonNode.getTaxon().getSec());
                        newTaxon = Taxon.NewInstance(name, parentTaxonNode.getTaxon().getSec());
-
                        newTaxonNode = parentTaxonNode.addChild(newTaxon, parentTaxonNode.getReferenceForParentChildRelation(), parentTaxonNode.getMicroReferenceForParentChildRelation());
                        newTaxonNode = parentTaxonNode.addChild(newTaxon, parentTaxonNode.getReferenceForParentChildRelation(), parentTaxonNode.getMicroReferenceForParentChildRelation());
-//             }
+               }
                // add the new taxon to the editors persistence context
                CdmStore.getTaxonService().saveTaxonNode(newTaxonNode);
                
                // add the new taxon to the editors persistence context
                CdmStore.getTaxonService().saveTaxonNode(newTaxonNode);
                
index 68977b967b7ca963f6670badddc4d41cf6f85c2c..48e92ffa1bce34c7411e223c7ecef06a80cc131a 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.ui.IElementFactory;\r
 import org.eclipse.ui.IMemento;\r
 \r
 import org.eclipse.ui.IElementFactory;\r
 import org.eclipse.ui.IMemento;\r
 \r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 \r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 \r
index a1b0a05618849c648253472fbe8b605a0db9d731..ee92553b0d7e55e2ef7258d91148ad7d5f2a6d83 100644 (file)
@@ -58,7 +58,7 @@ public class DistributionFeatureGroupComposite extends DescriptionFeatureGroupCo
        public void mouseUp(MouseEvent event) {
                if(event.widget == showMapButton){
                
        public void mouseUp(MouseEvent event) {
                if(event.widget == showMapButton){
                
-                       DistributionMapDialog dialog = new DistributionMapDialog(editor, this.getShell(), distributions);
+                       DistributionMapDialog dialog = new DistributionMapDialog(editor, this.getShell());
                        
                        dialog.open();
                }
                        
                        dialog.open();
                }
index 5f0fd574d12b3b8e84da035c57e9a9505906cb20..309ed4ecce93dad3f9e34b8b51c2c7756e714e70 100644 (file)
@@ -12,7 +12,6 @@ package eu.etaxonomy.taxeditor.editor.description;
 
 import java.awt.Color;
 import java.util.Map;
 
 import java.awt.Color;
 import java.util.Map;
-import java.util.Set;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.browser.Browser;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.browser.Browser;
@@ -28,7 +27,7 @@ import org.eclipse.swt.widgets.ProgressBar;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.ext.EditGeoService;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.ext.EditGeoService;
-import eu.etaxonomy.cdm.model.description.Distribution;
+import eu.etaxonomy.cdm.ext.IEditGeoService;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
 import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;
 
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
 import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;
 
@@ -39,8 +38,8 @@ import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;
  */
 public class DistributionMapDialog extends Dialog {
 
  */
 public class DistributionMapDialog extends Dialog {
 
-       private Set<Distribution> distributions;
-
+       private IEditGeoService geoService;
+       
        private AbstractTaxonEditor editor;
 
        private Browser browser;
        private AbstractTaxonEditor editor;
 
        private Browser browser;
@@ -54,16 +53,16 @@ public class DistributionMapDialog extends Dialog {
        public DistributionMapDialog(Shell parent, int style) {
                super(parent, style);
                this.setText("Map Viewer");
        public DistributionMapDialog(Shell parent, int style) {
                super(parent, style);
                this.setText("Map Viewer");
+               geoService = new EditGeoService();
        }
        
        /**
         * @param parent
         */
        }
        
        /**
         * @param parent
         */
-       public DistributionMapDialog(AbstractTaxonEditor editor, Shell parent, Set<Distribution> distributions) {
+       public DistributionMapDialog(AbstractTaxonEditor editor, Shell parent) {
                this(parent, 0);
                
                this.editor = editor;
                this(parent, 0);
                
                this.editor = editor;
-               this.distributions = distributions;
        }
 
        public Object open () {
        }
 
        public Object open () {
@@ -143,8 +142,8 @@ public class DistributionMapDialog extends Dialog {
                String bbox = "-180,-90,180,90"; 
                String backLayer = null;
                
                String bbox = "-180,-90,180,90"; 
                String backLayer = null;
                
-               String parameter = EditGeoService.getEditGeoServiceUrlParameterString(
-                               distributions
+               String parameter = geoService.getEditGeoServiceUrlParameterString(
+                               editor.getTaxon()
                                presenceAbsenceTermColors, 
                                width, 
                                height, 
                                presenceAbsenceTermColors, 
                                width, 
                                height, 
index b5c47ed07bb87e196d9ad66fa2ff80ab61fe1351..b27c1413d7e9e70bdc4bd7c0bc9cbc3bb9de0cae 100644 (file)
                commandId="eu.etaxonomy.taxeditor.navigation.command.editTaxon"
                label="Edit"
                style="push">
                commandId="eu.etaxonomy.taxeditor.navigation.command.editTaxon"
                label="Edit"
                style="push">
+            <visibleWhen>
+               <reference
+                     definitionId="isTaxonNode">
+               </reference>
+            </visibleWhen>
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.command.moveTaxon"
                label="Move Taxon"
                style="push">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.command.moveTaxon"
                label="Move Taxon"
                style="push">
+            <visibleWhen>
+               <reference
+                     definitionId="isTaxonNode">
+               </reference>
+            </visibleWhen>
          </command>
          <separator
          </command>
          <separator
-               name="taxeditor-navigation.separator1">
+               name="taxeditor-navigation.separator1"
+               visible="true">
          </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.command.createChildTaxon"
          </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.command.createChildTaxon"
                style="push">
          </command>
          <separator
                style="push">
          </command>
          <separator
-               name="separator1"
+               name="eu.etaxonomy.taxeditor.treemenu.separator2"
                visible="true">
          </separator>
          <command
                visible="true">
          </separator>
          <command
    <extension
          point="org.eclipse.ui.navigator.navigatorContent">
       <navigatorContent
    <extension
          point="org.eclipse.ui.navigator.navigatorContent">
       <navigatorContent
-            contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonomicTreeContentProvider"
+            contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonomicTreeContentProvider"
             id="eu.etaxonomy.taxeditor.navigation.taxonomictreecontent"
             id="eu.etaxonomy.taxeditor.navigation.taxonomictreecontent"
-            labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonomicTreeLabelProvider"
+            labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonomicTreeLabelProvider"
             name="Taxonomic Tree">
          <triggerPoints>
             <instanceof
             name="Taxonomic Tree">
          <triggerPoints>
             <instanceof
-                  value="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorRoot">
+                  value="eu.etaxonomy.taxeditor.navigation.navigator.Root">
             </instanceof>
          </triggerPoints>
          <possibleChildren>
             </instanceof>
          </triggerPoints>
          <possibleChildren>
          </possibleChildren>
       </navigatorContent>
       <navigatorContent
          </possibleChildren>
       </navigatorContent>
       <navigatorContent
-            contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonContentProvider"
+            contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodeContentProvider"
             id="eu.etaxonomy.taxeditor.navigation.taxoncontent"
             id="eu.etaxonomy.taxeditor.navigation.taxoncontent"
-            labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonLabelProvider"
+            labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodeLabelProvider"
             name="Taxon Node">
          <triggerPoints>
             <instanceof value="eu.etaxonomy.cdm.model.taxon.TaxonNode"/>
             name="Taxon Node">
          <triggerPoints>
             <instanceof value="eu.etaxonomy.cdm.model.taxon.TaxonNode"/>
                class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonDropAdapterAssistant"
                id="eu.etaxonomy.taxeditor.navigation.navigator.dropassistant">
             <possibleDropTargets>
                class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonDropAdapterAssistant"
                id="eu.etaxonomy.taxeditor.navigation.navigator.dropassistant">
             <possibleDropTargets>
-               <instanceof
-                     value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
-               </instanceof>
+               <or>
+                  <instanceof
+                        value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
+                  </instanceof>
+                  <instanceof
+                        value="eu.etaxonomy.cdm.model.taxon.TaxonomicTree">
+                  </instanceof>
+               </or>
             </possibleDropTargets>
          </dropAssistant>
          <possibleChildren>
             </possibleDropTargets>
          </dropAssistant>
          <possibleChildren>
          </actionProvider>
       </navigatorContent>
       <navigatorContent
          </actionProvider>
       </navigatorContent>
       <navigatorContent
-            contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorSynonymContentProvider"
+            contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.SynonymContentProvider"
             id="eu.etaxonomy.taxeditor.navigation.synonymcontent"
             id="eu.etaxonomy.taxeditor.navigation.synonymcontent"
-            labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorSynonymLabelProvider"
+            labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.SynonymLabelProvider"
             name="Synonyms"
             priority="highest">
          <triggerPoints>
             <and>
                <instanceof
             name="Synonyms"
             priority="highest">
          <triggerPoints>
             <and>
                <instanceof
-                     value="eu.etaxonomy.cdm.model.taxon.Taxon">
+                     value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
                </instanceof>
                <test
                      forcePluginActivation="true"
                </instanceof>
                <test
                      forcePluginActivation="true"
    <extension
          point="org.eclipse.core.expressions.propertyTesters">
       <propertyTester
    <extension
          point="org.eclipse.core.expressions.propertyTesters">
       <propertyTester
-            class="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorPropertyTester"
+            class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester"
             id="eu.etaxonomy.taxeditor.propertytests.navigatorPropertyTester"
             namespace="eu.etaxonomy.taxeditor.propertytests"
             properties="hasSynonyms"
             id="eu.etaxonomy.taxeditor.propertytests.navigatorPropertyTester"
             namespace="eu.etaxonomy.taxeditor.propertytests"
             properties="hasSynonyms"
-            type="eu.etaxonomy.cdm.model.taxon.Taxon">
+            type="eu.etaxonomy.cdm.model.taxon.TaxonNode">
       </propertyTester>
    </extension>
       </propertyTester>
    </extension>
+   <extension
+         point="org.eclipse.ui.newWizards">
+      <category
+            id="eu.etaxonomy.taxeditor.new.category.cdm"
+            name="CDM">
+      </category>
+      <primaryWizard
+            id="org.eclipse.ui.wizards.new.file">
+      </primaryWizard>
+      <wizard
+            category="eu.etaxonomy.taxeditor.new.category.cdm"
+            class="eu.etaxonomy.taxeditor.navigation.handler.NewTaxonomicTreeWizard"
+            id="taxeditor-navigation.wizard1"
+            name="Taxonomic Tree">
+      </wizard>
+   </extension>
+   <extension
+         point="org.eclipse.core.expressions.definitions">
+      <definition
+            id="isTaxonNode">
+         <with
+               variable="activeMenuSelection">
+            <iterate>
+               <instanceof
+                     value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+      <definition
+            id="isTaxonomicTree">
+         <with
+               variable="activeMenuSelection">
+            <iterate>
+               <instanceof
+                     value="eu.etaxonomy.cdm.model.taxon.TaxonomicTree">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+      <definition
+            id="isSynonym">
+         <with
+               variable="activeMenuSelection">
+            <iterate>
+               <instanceof
+                     value="eu.etaxonomy.cdm.model.taxon.Synonym">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+   </extension>
       
       
       
       
       
       
index c7910c93cf761df7e48878f2a9021bbe88fd114c..bfe4f19586bf0211749cf39a8aecabd4ea44d2fe 100644 (file)
@@ -35,6 +35,7 @@ import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
 import org.eclipse.ui.navigator.CommonViewer;
 
 import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
 import org.eclipse.ui.navigator.CommonViewer;
 
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -82,11 +83,9 @@ public class NavigationUtil extends AbstractUtility{
                                getActiveWorkbenchWindow();
        }
        
                                getActiveWorkbenchWindow();
        }
        
-       public static void openEmpty(TaxonNode parentTaxonNode) {
+       public static void openEmpty(UUID parentNodeUuid) {
                try {
                try {
-                       UUID parentTaxonNodeUuid = parentTaxonNode == null ? null : parentTaxonNode.getUuid();
-                       
-                       EditorUtil.openEmpty(parentTaxonNodeUuid);
+                       EditorUtil.openEmpty(parentNodeUuid);
                } catch (PartInitException e) {
                        logger.error("Error opening the editor", e);
                }
                } catch (PartInitException e) {
                        logger.error("Error opening the editor", e);
                }
@@ -133,16 +132,16 @@ public class NavigationUtil extends AbstractUtility{
         * @param event 
         * @return
         */
         * @param event 
         * @return
         */
-       public static TaxonNode getCurrentSelection(ExecutionEvent event){
+       public static CdmBase getCurrentSelection(ExecutionEvent event){
                
                ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);
                
                // The selection should always be a tree selection since we are in the 
                // taxonomic tree view. Just in case this will be used in another spot.
                if(menuSelection instanceof TreeSelection){
                
                ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);
                
                // The selection should always be a tree selection since we are in the 
                // taxonomic tree view. Just in case this will be used in another spot.
                if(menuSelection instanceof TreeSelection){
-                       TaxonNode taxonNode = (TaxonNode) ((TreeSelection) menuSelection).getFirstElement();
-                       logger.debug("Selected taxon: " + taxonNode);
-                       return taxonNode;
+                       CdmBase cdmBase = (CdmBase) ((TreeSelection) menuSelection).getFirstElement();
+                       logger.debug("Selected cdmBase object: " + cdmBase);
+                       return cdmBase;
                }
                return null;
        }
                }
                return null;
        }
@@ -188,8 +187,7 @@ public class NavigationUtil extends AbstractUtility{
         * @param parentElement
         */
        public static void selectInNavigator(Object element, Object parentElement) {
         * @param parentElement
         */
        public static void selectInNavigator(Object element, Object parentElement) {
-               TaxonNavigator navigator = (TaxonNavigator) TaxeditorEditorPlugin.getDefault().getWorkbench().
-                               getActiveWorkbenchWindow().getActivePage().findView(TaxonNavigator.ID);
+               TaxonNavigator navigator = getNavigator();
                if (navigator != null) {
                        CommonViewer viewer = navigator.getCommonViewer();
                        if (viewer != null) {
                if (navigator != null) {
                        CommonViewer viewer = navigator.getCommonViewer();
                        if (viewer != null) {
@@ -240,4 +238,12 @@ public class NavigationUtil extends AbstractUtility{
                                        " more than one accepted taxon. This case is not handled yet by the software.");
                }
        }
                                        " more than one accepted taxon. This case is not handled yet by the software.");
                }
        }
+
+       /**
+        * @return the TaxonNavigator instance if present
+        */
+       public static TaxonNavigator getNavigator() {
+               return (TaxonNavigator) TaxeditorEditorPlugin.getDefault().getWorkbench().
+                                       getActiveWorkbenchWindow().getActivePage().findView(TaxonNavigator.ID);
+       }
 }
\ No newline at end of file
 }
\ No newline at end of file
index 0e2abacce2fcaff967eb6224fca30081bd580929..f83accc48cdb4620575d950e625c8a41aba2cbba 100644 (file)
@@ -14,7 +14,7 @@ import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.IHandler;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.IHandler;
 
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 
 /**
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 
 /**
@@ -29,10 +29,10 @@ public class CreateChildTaxonHandler extends AbstractHandler implements
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
         */
        public Object execute(ExecutionEvent event) throws ExecutionException {
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
         */
        public Object execute(ExecutionEvent event) throws ExecutionException {
-               TaxonNode parentTaxonNode = NavigationUtil.getCurrentSelection(event);
-               
-               // Open editor for new taxon
-               NavigationUtil.openEmpty(parentTaxonNode);
+               CdmBase selection = NavigationUtil.getCurrentSelection(event);
+                               
+               // Open editor for new cdmBase object
+               NavigationUtil.openEmpty(selection.getUuid());
                
                return null;
        }
                
                return null;
        }
index 7b1c2940743cbbb13ac366cf6e36841b6df688ac..e4a9350255ae1c6f522cae7e9f1792fd51406ab4 100644 (file)
@@ -18,9 +18,12 @@ import org.eclipse.core.commands.IHandler;
 import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.core.commands.operations.IUndoableOperation;
 
 import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.core.commands.operations.IUndoableOperation;
 
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.operations.DeleteTaxonNodeOperation;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.operations.DeleteTaxonNodeOperation;
+import eu.etaxonomy.taxeditor.operations.DeleteTaxonomicTreeOperation;
 
 /**
  * @author n.hoffmann
 
 /**
  * @author n.hoffmann
@@ -32,13 +35,17 @@ public class DeleteTaxonNodeHandler extends AbstractHandler implements IHandler{
                        .getLogger(DeleteTaxonNodeHandler.class);
 
        public Object execute(ExecutionEvent event) throws ExecutionException {
                        .getLogger(DeleteTaxonNodeHandler.class);
 
        public Object execute(ExecutionEvent event) throws ExecutionException {
-               // FIXME make operation handle taxon node?
-               TaxonNode taxonNode = NavigationUtil.getCurrentSelection(event);
-               
-               IUndoableOperation operation;
+               CdmBase selection = NavigationUtil.getCurrentSelection(event);
+                               
+               IUndoableOperation operation = null;
                try {
                try {
-                       operation = new DeleteTaxonNodeOperation(event.getCommand().getName(), 
-                                       NavigationUtil.getUndoContext(), taxonNode);
+                       if(selection instanceof TaxonomicTree){
+                               operation = new DeleteTaxonomicTreeOperation(event.getCommand().getName(), 
+                                               NavigationUtil.getUndoContext(), (TaxonomicTree) selection);
+                       }else if(selection instanceof TaxonNode){
+                               operation = new DeleteTaxonNodeOperation(event.getCommand().getName(), 
+                                               NavigationUtil.getUndoContext(), (TaxonNode) selection);
+                       }
                        NavigationUtil.executeOperation(operation);
                } catch (NotDefinedException e) {
                        logger.warn("Command name not set");
                        NavigationUtil.executeOperation(operation);
                } catch (NotDefinedException e) {
                        logger.warn("Command name not set");
index e435d1b2fae91d976a5b405b8a8c7fc417eace8d..dfddc0a6ca57d009030ed45dfc265f58c2d8a5de 100644 (file)
@@ -40,7 +40,7 @@ public class MoveTaxonHandler extends AbstractHandler implements IPostOperationE
         */
        public Object execute(ExecutionEvent event) throws ExecutionException {
                Shell shell = NavigationUtil.getShell();
         */
        public Object execute(ExecutionEvent event) throws ExecutionException {
                Shell shell = NavigationUtil.getShell();
-               TaxonNode taxonNode = NavigationUtil.getCurrentSelection(event);
+               TaxonNode taxonNode = (TaxonNode) NavigationUtil.getCurrentSelection(event);
                                
                Dialog dialog = new TaxonSearchDialog(shell);
         Object value = ((TaxonSearchDialog) dialog).open();
                                
                Dialog dialog = new TaxonSearchDialog(shell);
         Object value = ((TaxonSearchDialog) dialog).open();
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizadPage.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizadPage.java
new file mode 100644 (file)
index 0000000..1ee4b18
--- /dev/null
@@ -0,0 +1,68 @@
+// $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.navigation.handler;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class NewTaxonomicTreeWizadPage extends WizardPage {
+       private static final Logger logger = Logger
+                       .getLogger(NewTaxonomicTreeWizadPage.class);
+
+       private Text text_treeLabel;
+
+       /**
+        * @param pageName
+        */
+       protected NewTaxonomicTreeWizadPage(String pageName) {
+               super(pageName);
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+        */
+       public void createControl(Composite parent) {
+               
+               
+               Composite composite = new Composite(parent, SWT.NONE);
+               GridLayout gridLayout = new GridLayout();
+               gridLayout.numColumns = 2;
+               composite.setLayout(gridLayout);
+               
+               CLabel label_treeLabel = new CLabel(composite, SWT.NULL);
+               label_treeLabel.setText("Label:");
+               
+               text_treeLabel = new Text(composite, SWT.BORDER);
+               text_treeLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+
+               // FIXME this is a rudimentary implementation. Add missing fields.
+               
+               setControl(composite);
+       }
+
+       /**
+        * @return the text_treeLabel
+        */
+       public String getTreeLabel() {
+               return text_treeLabel.getText();
+       }
+}
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizard.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizard.java
new file mode 100644 (file)
index 0000000..8bbf94e
--- /dev/null
@@ -0,0 +1,79 @@
+// $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.navigation.handler;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.operations.CreateTaxonomicTreeOperation;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class NewTaxonomicTreeWizard extends Wizard implements INewWizard {
+       private static final Logger logger = Logger
+                       .getLogger(NewTaxonomicTreeWizard.class);
+
+       public static final String NEW_TAXONOMIC_TREE = "NEW_TAXONOMIC_TREE";
+
+       private NewTaxonomicTreeWizadPage page;
+       
+       /**
+        * 
+        */
+       public NewTaxonomicTreeWizard() {
+               // TODO Auto-generated constructor stub
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.wizard.Wizard#addPages()
+        */
+       @Override
+       public void addPages() {
+               super.addPages();
+               
+               page = new NewTaxonomicTreeWizadPage(NEW_TAXONOMIC_TREE);
+               
+               addPage(page);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.wizard.Wizard#performFinish()
+        */
+       @Override
+       public boolean performFinish() {
+
+               AbstractOperation operation = new CreateTaxonomicTreeOperation("Create Taxonomic Tree", 
+                               NavigationUtil.getUndoContext(), page.getTreeLabel());
+               NavigationUtil.executeOperation(operation);
+
+               NavigationUtil.getNavigator().getCommonViewer().refresh();
+               
+               return true;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+        */
+       public void init(IWorkbench workbench, IStructuredSelection selection) {
+               // TODO Auto-generated method stub
+
+       }
+}
index c5f570b25307a3e1715f59423a4152a11a8c2359..abb9defaff519db884414a66fe32c3c965f42dbf 100644 (file)
@@ -9,6 +9,8 @@
 
 package eu.etaxonomy.taxeditor.navigation.handler;
 
 
 package eu.etaxonomy.taxeditor.navigation.handler;
 
+import java.util.UUID;
+
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -24,7 +26,6 @@ import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
@@ -43,7 +44,7 @@ public class QuickCreateChildTaxonHandler extends AbstractHandler implements
        private static final Logger logger = Logger
                        .getLogger(QuickCreateChildTaxonHandler.class);
 
        private static final Logger logger = Logger
                        .getLogger(QuickCreateChildTaxonHandler.class);
 
-       private TaxonNode parentTaxonNode;
+       private UUID parentNodeUuid;
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -51,14 +52,18 @@ public class QuickCreateChildTaxonHandler extends AbstractHandler implements
        public Object execute(ExecutionEvent event) throws ExecutionException {
 
                Shell shell = HandlerUtil.getActiveShell(event);
        public Object execute(ExecutionEvent event) throws ExecutionException {
 
                Shell shell = HandlerUtil.getActiveShell(event);
-               parentTaxonNode = NavigationUtil.getCurrentSelection(event);
                
                
-               if(NavigationUtil.isDirty(parentTaxonNode)){
+               CdmBase selection = NavigationUtil.getCurrentSelection(event);
+               
+
+               if((selection instanceof TaxonNode) && NavigationUtil.isDirty((TaxonNode) selection)){
                        MessageDialog.openWarning(shell, "Unsaved Parent Taxon", "There are unsaved " +
                        MessageDialog.openWarning(shell, "Unsaved Parent Taxon", "There are unsaved " +
-                                       "changes in the parent taxon. Pleas save first.");
+                                       "changes in the parent taxon. Please save first.");
                        return null;
                }
                
                        return null;
                }
                
+               parentNodeUuid = selection.getUuid();                   
+               
                InputDialog dialog = new InputDialog(shell, "Quick create child taxon", 
                                "Enter child taxon's name to create a new taxon", null, null);
                if (dialog.open() == Window.OK) {
                InputDialog dialog = new InputDialog(shell, "Quick create child taxon", 
                                "Enter child taxon's name to create a new taxon", null, null);
                if (dialog.open() == Window.OK) {
@@ -70,7 +75,7 @@ public class QuickCreateChildTaxonHandler extends AbstractHandler implements
                        CreateChildTaxonOperation operation;
                        try {
                                operation = new CreateChildTaxonOperation(event.getCommand().getName(), 
                        CreateChildTaxonOperation operation;
                        try {
                                operation = new CreateChildTaxonOperation(event.getCommand().getName(), 
-                                               NavigationUtil.getUndoContext(), parentTaxonNode, name, this);
+                                               NavigationUtil.getUndoContext(), parentNodeUuid, name, this);
                                IStatus status = EditorUtil.executeOperation(operation);
                                if(status.getCode() == TaxeditorStorePlugin.ERROR_SAVING_ZERO_NAME){
                                        MessageDialog.openWarning(shell, "No Name Specified", "An attempt was made to save a taxon with" +
                                IStatus status = EditorUtil.executeOperation(operation);
                                if(status.getCode() == TaxeditorStorePlugin.ERROR_SAVING_ZERO_NAME){
                                        MessageDialog.openWarning(shell, "No Name Specified", "An attempt was made to save a taxon with" +
@@ -88,7 +93,7 @@ public class QuickCreateChildTaxonHandler extends AbstractHandler implements
        }
 
        public boolean postOperation(CdmBase objectAffectedByOperation) {
        }
 
        public boolean postOperation(CdmBase objectAffectedByOperation) {
-               NavigationUtil.selectInNavigator(objectAffectedByOperation, parentTaxonNode);
+               NavigationUtil.selectInNavigator(objectAffectedByOperation, parentNodeUuid);
                return true;
        }
 }
                return true;
        }
 }
similarity index 84%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorRoot.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/Root.java
index df1463f03e1f04a825bc3cb47dfe8663728bd1bd..2947360e4eca71e58b712e23a204527a80e87a98 100644 (file)
@@ -27,9 +27,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 02.06.2009\r
  * @version 1.0\r
  */\r
  * @created 02.06.2009\r
  * @version 1.0\r
  */\r
-public class NavigatorRoot extends PlatformObject implements IAdaptable, IPersistableElement, IElementFactory  {\r
+public class Root extends PlatformObject implements IAdaptable, IPersistableElement, IElementFactory  {\r
 \r
 \r
-       private static final Logger logger = Logger.getLogger(NavigatorRoot.class);\r
+       private static final Logger logger = Logger.getLogger(Root.class);\r
        \r
        public List<TaxonomicTree> getParentBeans() {\r
                List<TaxonomicTree> trees = CdmStore.getDefault().getTaxonomicTrees();\r
        \r
        public List<TaxonomicTree> getParentBeans() {\r
                List<TaxonomicTree> trees = CdmStore.getDefault().getTaxonomicTrees();\r
similarity index 89%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymContentProvider.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymContentProvider.java
index 21770a3ffeca2d2adc7e98b19c5b81c532da2c0a..da7ad5082058832ad11365a7a4719392b4490296 100644 (file)
@@ -28,9 +28,9 @@ import eu.etaxonomy.taxeditor.editor.name.IterableSynonymyList;
  * @created 02.06.2009\r
  * @version 1.0\r
  */\r
  * @created 02.06.2009\r
  * @version 1.0\r
  */\r
-public class NavigatorSynonymContentProvider implements ITreeContentProvider {\r
+public class SynonymContentProvider implements ITreeContentProvider {\r
        private static final Logger logger = Logger\r
        private static final Logger logger = Logger\r
-                       .getLogger(NavigatorSynonymContentProvider.class);\r
+                       .getLogger(SynonymContentProvider.class);\r
 \r
        private static final Object[] NO_CHILDREN = new Object[0];\r
        \r
 \r
        private static final Object[] NO_CHILDREN = new Object[0];\r
        \r
similarity index 90%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymLabelProvider.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.java
index aa3ad1344431fbe17be04843ebc16bd3a5206d53..d1dd2ebe13cfe2990b0fd78e6e34b6426b047b00 100644 (file)
@@ -30,10 +30,10 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
  * @created 04.06.2009\r
  * @version 1.0\r
  */\r
  * @created 04.06.2009\r
  * @version 1.0\r
  */\r
-public class NavigatorSynonymLabelProvider extends ColumnLabelProvider \r
+public class SynonymLabelProvider extends ColumnLabelProvider \r
                implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {\r
        private static final Logger logger = Logger\r
                implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {\r
        private static final Logger logger = Logger\r
-                       .getLogger(NavigatorSynonymLabelProvider.class);\r
+                       .getLogger(SynonymLabelProvider.class);\r
        \r
        public Image getImage(Object element) {\r
                return null;\r
        \r
        public Image getImage(Object element) {\r
                return null;\r
index 101870553c482c0599aa1002a8a4e66c214a3f59..9a06bff562c876b99a0c319e9c1693adba9eb0d8 100644 (file)
@@ -65,7 +65,7 @@ public class TaxonNavigator extends CommonNavigator implements IConversationEnab
                conversation = CdmStore.NewTransactionalConversation();\r
                conversation.registerForDataStoreChanges(this);\r
                this.getCommonViewer().refresh();\r
                conversation = CdmStore.NewTransactionalConversation();\r
                conversation.registerForDataStoreChanges(this);\r
                this.getCommonViewer().refresh();\r
-               return new NavigatorRoot();\r
+               return new Root();\r
        }\r
        \r
        public void init(IViewSite site, IMemento memento)\r
        }\r
        \r
        public void init(IViewSite site, IMemento memento)\r
@@ -179,7 +179,7 @@ public class TaxonNavigator extends CommonNavigator implements IConversationEnab
        }\r
        \r
        protected String getFrameToolTipText(Object element) {\r
        }\r
        \r
        protected String getFrameToolTipText(Object element) {\r
-               if (element instanceof NavigatorRoot) {\r
+               if (element instanceof Root) {\r
                        return "Taxonomic Tree";\r
                }\r
                return super.getFrameToolTipText(element);\r
                        return "Taxonomic Tree";\r
                }\r
                return super.getFrameToolTipText(element);\r
similarity index 76%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonContentProvider.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java
index 14d318dcab73b2186754bd261ccbe4b011f80425..859410dafdbc64902ea1cccb08a44b2449b5631b 100644 (file)
@@ -21,9 +21,9 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
  * @created 02.06.2009\r
  * @version 1.0\r
  */\r
  * @created 02.06.2009\r
  * @version 1.0\r
  */\r
-public class NavigatorTaxonContentProvider implements ITreeContentProvider {\r
+public class TaxonNodeContentProvider implements ITreeContentProvider {\r
        private static final Logger logger = Logger\r
        private static final Logger logger = Logger\r
-                       .getLogger(NavigatorTaxonContentProvider.class);\r
+                       .getLogger(TaxonNodeContentProvider.class);\r
 \r
        public Object[] getChildren(Object parentElement) {\r
                \r
 \r
        public Object[] getChildren(Object parentElement) {\r
                \r
@@ -35,14 +35,17 @@ public class NavigatorTaxonContentProvider implements ITreeContentProvider {
        }\r
 \r
        public Object getParent(Object element) {\r
        }\r
 \r
        public Object getParent(Object element) {\r
-//             if(element instanceof TaxonNode){\r
-//                     return ((TaxonNode) element).getParent();\r
-//             }               \r
+               if(element instanceof TaxonNode){\r
+                       return ((TaxonNode) element).getParent();\r
+               }               \r
                return null;\r
        }\r
 \r
        public boolean hasChildren(Object element) {\r
                return null;\r
        }\r
 \r
        public boolean hasChildren(Object element) {\r
-               return this.getChildren(element).length > 0;\r
+               \r
+               boolean length = this.getChildren(element).length > 0;\r
+               \r
+               return length;\r
        }\r
 \r
        public Object[] getElements(Object inputElement) {\r
        }\r
 \r
        public Object[] getElements(Object inputElement) {\r
similarity index 91%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonLabelProvider.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java
index 0b5a61a19c47eadc87845865483ee22b7b9ae29d..119ccf16bce15f6d8104cf840f07fab52ee62685 100644 (file)
@@ -26,10 +26,10 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
  * @created 04.06.2009\r
  * @version 1.0\r
  */\r
  * @created 04.06.2009\r
  * @version 1.0\r
  */\r
-public class NavigatorTaxonLabelProvider extends ColumnLabelProvider \r
+public class TaxonNodeLabelProvider extends ColumnLabelProvider \r
                implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {\r
        private static final Logger logger = Logger\r
                implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {\r
        private static final Logger logger = Logger\r
-                       .getLogger(NavigatorTaxonLabelProvider.class);\r
+                       .getLogger(TaxonNodeLabelProvider.class);\r
        \r
        public Image getImage(Object element) {\r
                return null;\r
        \r
        public Image getImage(Object element) {\r
                return null;\r
similarity index 54%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorPropertyTester.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java
index 2a01dbe8bf311832ed936a3718bfe5ffb01f7309..2a1338cfb984de4a9db5010d6729e99a926bd3f2 100644 (file)
@@ -6,16 +6,19 @@ package eu.etaxonomy.taxeditor.navigation.navigator;
 import org.eclipse.core.expressions.PropertyTester;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import org.eclipse.core.expressions.PropertyTester;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
 \r
 \r
-public class NavigatorPropertyTester extends PropertyTester {\r
+public class TaxonNodePropertyTester extends PropertyTester {\r
        \r
        private static final Object HAS_SYNONYMS = "hasSynonyms";\r
        \r
        private static final Object HAS_SYNONYMS = "hasSynonyms";\r
-\r
+       \r
        public boolean test(Object receiver, String property, Object[] args,\r
                        Object expectedValue) {\r
        public boolean test(Object receiver, String property, Object[] args,\r
                        Object expectedValue) {\r
-               if (receiver instanceof Taxon && HAS_SYNONYMS.equals(property)) {\r
-                       return ((Taxon) receiver).hasSynonyms();\r
+               if (receiver instanceof TaxonNode && HAS_SYNONYMS.equals(property)) {\r
+                       Taxon taxon = ((TaxonNode) receiver).getTaxon();\r
+                       return taxon.hasSynonyms();\r
                }\r
                }\r
+               \r
                return false;\r
        }\r
 }\r
                return false;\r
        }\r
 }\r
@@ -21,16 +21,16 @@ import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
  * @created 17.06.2009
  * @version 1.0
  */
  * @created 17.06.2009
  * @version 1.0
  */
-public class NavigatorTaxonomicTreeContentProvider implements ITreeContentProvider {
+public class TaxonomicTreeContentProvider implements ITreeContentProvider {
        private static final Logger logger = Logger
        private static final Logger logger = Logger
-                       .getLogger(NavigatorTaxonomicTreeContentProvider.class);
+                       .getLogger(TaxonomicTreeContentProvider.class);
 
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
         */
        public Object[] getChildren(Object parentElement) {
 
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
         */
        public Object[] getChildren(Object parentElement) {
-               if (parentElement instanceof NavigatorRoot) {
-                       return ((NavigatorRoot) parentElement).getParentBeans().toArray();
+               if (parentElement instanceof Root) {
+                       return ((Root) parentElement).getParentBeans().toArray();
                }
                
                if(parentElement instanceof TaxonomicTree) {
                }
                
                if(parentElement instanceof TaxonomicTree) {
@@ -25,10 +25,10 @@ import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
  * @created 17.06.2009
  * @version 1.0
  */
  * @created 17.06.2009
  * @version 1.0
  */
-public class NavigatorTaxonomicTreeLabelProvider extends ColumnLabelProvider 
+public class TaxonomicTreeLabelProvider extends ColumnLabelProvider 
 implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
        private static final Logger logger = Logger
 implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
        private static final Logger logger = Logger
-                       .getLogger(NavigatorTaxonomicTreeLabelProvider.class);
+                       .getLogger(TaxonomicTreeLabelProvider.class);
        
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object)
        
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object)
index cad100671a422ec62cd7eec29e40c0b5653b9e00..b1c2374b6cf5eefe9fa463b879cd6a314493acf3 100644 (file)
                class="selection.Selection1">
          </selection>
       </wizard>
                class="selection.Selection1">
          </selection>
       </wizard>
+      <wizard
+            category="eu.etaxonomy.taxeditor.import.category.cdm"
+            class="eu.etaxonomy.taxeditor.io.BerlinModelExportWizard"
+            id="eu.etaxonomy.taxeditor.io.export.berlinModel"
+            name="Berlin Model">
+      </wizard>
       <category
             id="eu.etaxonomy.taxeditor.export.category.excel"
             name="Excel">
       <category
             id="eu.etaxonomy.taxeditor.export.category.excel"
             name="Excel">
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizard.java
new file mode 100644 (file)
index 0000000..faa1a93
--- /dev/null
@@ -0,0 +1,44 @@
+// $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.io;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IExportWizard;
+import org.eclipse.ui.IWorkbench;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class BerlinModelExportWizard extends Wizard implements IExportWizard {
+       private static final Logger logger = Logger
+                       .getLogger(BerlinModelExportWizard.class);
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.wizard.Wizard#performFinish()
+        */
+       @Override
+       public boolean performFinish() {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+        */
+       public void init(IWorkbench workbench, IStructuredSelection selection) {
+               // TODO Auto-generated method stub
+
+       }
+}
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizardPage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizardPage.java
new file mode 100644 (file)
index 0000000..dfa3d5d
--- /dev/null
@@ -0,0 +1,45 @@
+// $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.io;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class BerlinModelExportWizardPage extends WizardPage {
+
+
+       private static final Logger logger = Logger
+                       .getLogger(BerlinModelExportWizardPage.class);
+
+       /**
+        * @param pageName
+        */
+       protected BerlinModelExportWizardPage(String pageName) {
+               super(pageName);
+               this.setTitle("Berlin Model Export");
+               
+               this.setDescription("Exports the contents of the currently selected database into a Berlin Model database");
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+        */
+       public void createControl(Composite parent) {
+               // TODO Auto-generated method stub
+
+       }
+}
index f4cb8814aaaa1204721d5b88f1df31f25bb07ba1..52c7d54d38792eddba77be97bd3db2132b5f1de8 100644 (file)
@@ -23,9 +23,10 @@ import org.eclipse.ui.IExportWizard;
 import org.eclipse.ui.IWorkbench;
 
 import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
 import org.eclipse.ui.IWorkbench;
 
 import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
-import eu.etaxonomy.cdm.io.common.ICdmExport;
+import eu.etaxonomy.cdm.io.common.ICdmExporter;
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
 
 /**
  * @author n.hoffmann
@@ -38,7 +39,7 @@ public class JaxbExportWizard extends Wizard implements IExportWizard {
 
        public final String JAXB_EXPORT = "JAXB_EXPORT";
 
 
        public final String JAXB_EXPORT = "JAXB_EXPORT";
 
-       private ICdmExport<JaxbExportConfigurator> export;
+       private ICdmExporter export;
 
        private JaxbExportWizardPage page;
 
 
        private JaxbExportWizardPage page;
 
@@ -50,11 +51,12 @@ public class JaxbExportWizard extends Wizard implements IExportWizard {
        @Override
        public boolean performFinish() {
                
        @Override
        public boolean performFinish() {
                
-               export = new CdmDefaultExport<JaxbExportConfigurator>();
+               export = new CdmDefaultExport();
                
                String url = page.getFolderText() + File.pathSeparator + page.getExportFileName();
                
                exportConfigurator = JaxbExportConfigurator.NewInstance(CdmDataSourceRepository.getDefault().getCurrentDataSource(), url);
                
                String url = page.getFolderText() + File.pathSeparator + page.getExportFileName();
                
                exportConfigurator = JaxbExportConfigurator.NewInstance(CdmDataSourceRepository.getDefault().getCurrentDataSource(), url);
+               exportConfigurator.setCdmAppController(CdmStore.getApplicationController());
                
                
                Job exportJob = new Job("JAXB Export"){
                
                
                Job exportJob = new Job("JAXB Export"){
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonNodeUtil.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonNodeUtil.java
deleted file mode 100644 (file)
index 37bc501..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
-* 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.model;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.log4j.Logger;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.reference.ReferenceBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author n.hoffmann
- * @created 25.03.2009
- * @version 1.0
- */
-public class TaxonNodeUtil {
-       private static final Logger logger = Logger
-               .getLogger(TaxonNodeUtil.class);
-       
-       /**
-        * 
-        * @param taxonNodeUuid
-        * @return
-        */
-       public static boolean deleteTaxonNodeIsolated(UUID taxonNodeUuid){
-               // get a new conversation
-               ConversationHolder conversation = CdmStore.NewTransactionalConversation();
-               
-               TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);
-               
-               boolean result = taxonNode.remove();
-               
-               // commit the conversation and throw it away
-               conversation.commit(true);
-               return result;
-       }
-       
-       public static TaxonNode addChildTaxonBaseIsolated(UUID taxonNodeUuid, TaxonNameBase<?, ?> newTaxonName){
-               // disallow saving of zero length names
-               if(newTaxonName.getFullTitleCache().length() == 0){
-                       return null;
-               }
-               
-               // get a new conversation
-               ConversationHolder conversation = CdmStore.NewTransactionalConversation();
-               // find the taxonBase
-               TaxonNode parentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);
-               // logic to add new taxon name
-               Taxon childTaxon = Taxon.NewInstance(newTaxonName, parentTaxonNode.getTaxon().getSec());
-               TaxonNode childTaxonNode = parentTaxonNode.addChild(childTaxon);
-               //not needed here: CdmStore.getTaxonService().save(parentTaxon);
-               // commit the conversation and throw it away
-               conversation.commit(true);
-               return childTaxonNode;
-       }
-       
-       /**
-        * 
-        * @param taxonNodeUuid
-        * @param newParentTaxonNodeUuid
-        * @return
-        */
-       public static TaxonNode moveTaxonBaseIsolated(UUID taxonNodeUuid, UUID newParentTaxonNodeUuid){
-               
-               // get a new conversation
-               ConversationHolder conversation = CdmStore.NewTransactionalConversation();
-               // find the taxon node
-               TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);
-               // store all relevant information of taxon node and delete the taxon node.
-               Taxon taxon = taxonNode.getTaxon();
-               ReferenceBase parentChildReference = taxonNode.getReferenceForParentChildRelation();
-               String parentChildMicroReference = taxonNode.getMicroReferenceForParentChildRelation();
-               Synonym synonymUsed = taxonNode.getSynonymToBeUsed();
-
-               taxonNode.remove();
-               
-               TaxonNode newParentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(newParentTaxonNodeUuid);
-               TaxonNode newChild = newParentTaxonNode.addChild(taxon, parentChildReference, parentChildMicroReference, synonymUsed);
-               // commit the conversation
-               conversation.commit(true);              
-               return newChild;
-       }
-       
-       /**
-        * TODO this method should be in cdm library
-        * 
-        * Example:
-        * TaxonA(fromTaxon) isOverlapping TaxonB(toTaxon) 
-        * 
-        * @param fromTaxon
-        * @param toTaxon
-        * @return
-        * @deprecated TODO this method should be in the library
-        */
-       public static TaxonRelationship getRelationshipBetweenTwoTaxa(Taxon fromTaxon, Taxon toTaxon){
-               Set<TaxonRelationship> relations = new HashSet<TaxonRelationship>();
-               
-               for(TaxonRelationship relation : fromTaxon.getRelationsFromThisTaxon()){
-                       if(relation.getToTaxon().equals(toTaxon)){
-                               relations.add(relation);
-                       }
-               }
-               
-               if(relations.size() > 1){
-                       logger.warn("Found multiple relations between two taxa. Does this make sense?");
-               }
-               
-               if(relations.size() == 0){
-                       logger.warn("No relations between the two given taxa");
-                       new Throwable("No relations between the two given taxa");
-               }
-               
-               return relations.toArray(new TaxonRelationship[0])[0];
-       }
-}
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonUtil.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonUtil.java
new file mode 100644 (file)
index 0000000..a98598a
--- /dev/null
@@ -0,0 +1,61 @@
+/**
+* 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.model;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+
+/**
+ * @author n.hoffmann
+ * @created 25.03.2009
+ * @version 1.0
+ */
+public class TaxonUtil {
+       private static final Logger logger = Logger
+               .getLogger(TaxonUtil.class);
+       
+       
+       /**
+        * TODO this method should be in cdm library
+        * 
+        * Example:
+        * TaxonA(fromTaxon) isOverlapping TaxonB(toTaxon) 
+        * 
+        * @param fromTaxon
+        * @param toTaxon
+        * @return
+        * @deprecated TODO this method should be in the library
+        */
+       public static TaxonRelationship getRelationshipBetweenTwoTaxa(Taxon fromTaxon, Taxon toTaxon){
+               Set<TaxonRelationship> relations = new HashSet<TaxonRelationship>();
+               
+               for(TaxonRelationship relation : fromTaxon.getRelationsFromThisTaxon()){
+                       if(relation.getToTaxon().equals(toTaxon)){
+                               relations.add(relation);
+                       }
+               }
+               
+               if(relations.size() > 1){
+                       logger.warn("Found multiple relations between two taxa. Does this make sense?");
+               }
+               
+               if(relations.size() == 0){
+                       logger.warn("No relations between the two given taxa");
+                       new Throwable("No relations between the two given taxa");
+               }
+               
+               return relations.toArray(new TaxonRelationship[0])[0];
+       }
+}
index 54d8685b96ad9059a79da09e4b4aea836672823c..8282f3568c9974353756dd26dc90616a1bdf219b 100644 (file)
@@ -9,6 +9,8 @@
 \r
 package eu.etaxonomy.taxeditor.operations;\r
 \r
 \r
 package eu.etaxonomy.taxeditor.operations;\r
 \r
+import java.util.UUID;\r
+\r
 import org.apache.log4j.Logger;\r
 import org.eclipse.core.commands.operations.AbstractOperation;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.apache.log4j.Logger;\r
 import org.eclipse.core.commands.operations.AbstractOperation;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
@@ -45,16 +47,28 @@ public abstract class AbstractPostOperation extends AbstractOperation {
         */\r
        protected TaxonNode taxonNode;\r
 \r
         */\r
        protected TaxonNode taxonNode;\r
 \r
+       protected UUID parentNodeUuid;\r
+\r
        /**\r
         * \r
         * @param label\r
         * @param undoContext\r
         * @param taxon\r
         */\r
        /**\r
         * \r
         * @param label\r
         * @param undoContext\r
         * @param taxon\r
         */\r
-       public AbstractPostOperation(String label, IUndoContext undoContext,\r
-                       Taxon taxon) {\r
+       private AbstractPostOperation(String label, IUndoContext undoContext) {\r
                super(label);\r
                addContext(undoContext);\r
                super(label);\r
                addContext(undoContext);\r
+       }\r
+       \r
+       /**\r
+        * \r
+        * @param label\r
+        * @param undoContext\r
+        * @param taxon\r
+        */\r
+       public AbstractPostOperation(String label, IUndoContext undoContext,\r
+                       Taxon taxon) {\r
+               this(label, undoContext);\r
                \r
                this.taxon = taxon;\r
        }\r
                \r
                this.taxon = taxon;\r
        }\r
@@ -84,6 +98,13 @@ public abstract class AbstractPostOperation extends AbstractOperation {
                this.taxonNode = taxonNode;\r
        }\r
        \r
                this.taxonNode = taxonNode;\r
        }\r
        \r
+       public AbstractPostOperation(String label, IUndoContext undoContext, UUID parentNodeUuid, IPostOperationEnabled postOperationEnabled){\r
+               this(label, undoContext);\r
+               \r
+               this.parentNodeUuid = parentNodeUuid;\r
+               this.postOperationEnabled = postOperationEnabled;\r
+       }\r
+       \r
        /**\r
         * This method will try to call the post operation on a possibly registered\r
         * IPostOperationEnabled implementor. Objects that were affected by the operation \r
        /**\r
         * This method will try to call the post operation on a possibly registered\r
         * IPostOperationEnabled implementor. Objects that were affected by the operation \r
index d48cc38ae65221854b01df4386f5e7dbe30efec1..2538d928313c6079632e3a9749154911e9de112d 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
 \r
 /**\r
  * @author n.hoffmann\r
 \r
 /**\r
  * @author n.hoffmann\r
@@ -45,7 +45,7 @@ public class ChangeConceptRelationshipTypeOperation extends AbstractPostOperatio
                super(label, undoContext, taxon, postOperationEnabled);\r
                this.relatedTaxon = relatedTaxon;\r
                                \r
                super(label, undoContext, taxon, postOperationEnabled);\r
                this.relatedTaxon = relatedTaxon;\r
                                \r
-               this.taxonRelationship = TaxonNodeUtil.getRelationshipBetweenTwoTaxa(relatedTaxon, taxon);\r
+               this.taxonRelationship = TaxonUtil.getRelationshipBetweenTwoTaxa(relatedTaxon, taxon);\r
                this.oldRelationshipType = taxonRelationship.getType();\r
                this.newRelationshipType = type;\r
        }\r
                this.oldRelationshipType = taxonRelationship.getType();\r
                this.newRelationshipType = type;\r
        }\r
index 48f9c795e2a90ef5e5a156ecc0d68e84025e5113..607a953233c1efe1047f8c40c95030958517e79a 100644 (file)
@@ -22,7 +22,7 @@ import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
 \r
 /**\r
  * @author p.ciardelli\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -45,7 +45,7 @@ public class ChangeConceptToSynonymOperation extends
                        IPostOperationEnabled editor) {\r
                super(label, undoContext, taxon, editor);\r
                \r
                        IPostOperationEnabled editor) {\r
                super(label, undoContext, taxon, editor);\r
                \r
-               this.taxonRelationship = TaxonNodeUtil.getRelationshipBetweenTwoTaxa(concept, taxon);\r
+               this.taxonRelationship = TaxonUtil.getRelationshipBetweenTwoTaxa(concept, taxon);\r
                this.oldRelationshipType = taxonRelationship.getType();\r
                \r
                this.concept = concept;\r
                this.oldRelationshipType = taxonRelationship.getType();\r
                \r
                this.concept = concept;\r
index 78aee4422ddc529a7ee61cc995875a39e1402558..74d686e9d1c6488eea05b06a025a9fc8edc6c504 100644 (file)
@@ -10,6 +10,8 @@
 
 package eu.etaxonomy.taxeditor.operations;
 
 
 package eu.etaxonomy.taxeditor.operations;
 
+import java.util.UUID;
+
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,9 +20,12 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
@@ -45,8 +50,8 @@ public class CreateChildTaxonOperation extends AbstractPostOperation {
         * @param conversationEnabled
         */
        public CreateChildTaxonOperation(String label, IUndoContext undoContext,
         * @param conversationEnabled
         */
        public CreateChildTaxonOperation(String label, IUndoContext undoContext,
-                       TaxonNode taxonNode, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled) {
-               super(label, undoContext, taxonNode, postOperationEnabled);
+                       UUID parentNodeUuid, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled) {
+               super(label, undoContext, parentNodeUuid, postOperationEnabled);
                
                this.newTaxonName = name;
        }
                
                this.newTaxonName = name;
        }
@@ -59,7 +64,7 @@ public class CreateChildTaxonOperation extends AbstractPostOperation {
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                
-               childTaxonNode = TaxonNodeUtil.addChildTaxonBaseIsolated(taxonNode.getUuid(), newTaxonName);
+               childTaxonNode = addChildTaxonBaseIsolated(parentNodeUuid, newTaxonName);
                
                if(childTaxonNode != null){
                        return postExecute(childTaxonNode);
                
                if(childTaxonNode != null){
                        return postExecute(childTaxonNode);
@@ -87,4 +92,34 @@ public class CreateChildTaxonOperation extends AbstractPostOperation {
                logger.warn("Not yet implemented.");
                return null;
        }
                logger.warn("Not yet implemented.");
                return null;
        }
+       
+       private TaxonNode addChildTaxonBaseIsolated(UUID parentNodeUuid, TaxonNameBase<?, ?> newTaxonName){
+               // disallow saving of zero length names
+               if(newTaxonName.getFullTitleCache().length() == 0){
+                       return null;
+               }
+               
+               // get a new conversation
+               ConversationHolder conversation = CdmStore.NewTransactionalConversation();
+               // find the taxonBase
+               TaxonNode parentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(parentNodeUuid);
+               
+               Taxon childTaxon;
+               TaxonNode childTaxonNode;
+               
+               if(parentTaxonNode == null){
+                       // parent seems to of type TaxonomicTree
+                       TaxonomicTree tree = CdmStore.getTaxonService().getTaxonomicTreeByUuid(parentNodeUuid);
+                       childTaxon = Taxon.NewInstance(newTaxonName, CdmStore.getDefault().getDefaultSec());
+                       
+                       childTaxonNode = tree.addRoot(childTaxon, null);
+               }else{
+                       // logic to add new taxon name
+                       childTaxon = Taxon.NewInstance(newTaxonName, parentTaxonNode.getTaxon().getSec());
+                       childTaxonNode = parentTaxonNode.addChild(childTaxon);
+               }
+               // commit the conversation and throw it away
+               conversation.commit(true);
+               return childTaxonNode;
+       }
 }
 }
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonomicTreeOperation.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonomicTreeOperation.java
new file mode 100644 (file)
index 0000000..31c4032
--- /dev/null
@@ -0,0 +1,91 @@
+// $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.operations;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.AbstractOperation;
+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.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
+import eu.etaxonomy.taxeditor.model.TaxonUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class CreateTaxonomicTreeOperation extends AbstractOperation {
+
+       private static final Logger logger = Logger
+                       .getLogger(CreateTaxonomicTreeOperation.class);
+       private String treeLabel;
+       
+       /**
+        * @param label
+        * @param undoContext 
+        */
+       public CreateTaxonomicTreeOperation(String label, IUndoContext undoContext, String treeLabel) {
+               super(label);
+               addContext(undoContext);
+               
+               this.treeLabel = treeLabel;
+       }
+       
+       /* (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 {
+
+               if(treeLabel.trim().length() == 0){
+                       return Status.CANCEL_STATUS;
+               }
+               
+               // get a new conversation
+               ConversationHolder conversation = CdmStore.NewTransactionalConversation();
+               
+               TaxonomicTree tree = TaxonomicTree.NewInstance(treeLabel);
+               
+               CdmStore.getTaxonService().saveTaxonomicTree(tree);
+               
+               conversation.commit(true);
+               
+               return Status.OK_STATUS;
+       }
+
+       /* (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 {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (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 {
+               // TODO Auto-generated method stub
+               return null;
+       }
+}
index 304ab1d748242ef7b8908b00ceb4e969d8b4bb0b..39aba56e4ad2c592b961cb085b76752722828ac7 100644 (file)
@@ -19,7 +19,7 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
 \r
 /**\r
  * Deletes a relation between two taxa. \r
 \r
 /**\r
  * Deletes a relation between two taxa. \r
@@ -47,7 +47,7 @@ public class DeleteConceptRelationOperation extends AbstractPostOperation {
                \r
                this.relatedTaxon = relatedTaxon;\r
                \r
                \r
                this.relatedTaxon = relatedTaxon;\r
                \r
-               relationship = TaxonNodeUtil.getRelationshipBetweenTwoTaxa(relatedTaxon, taxon);\r
+               relationship = TaxonUtil.getRelationshipBetweenTwoTaxa(relatedTaxon, taxon);\r
 \r
                relationshipType = relationship.getType();\r
                \r
 \r
                relationshipType = relationship.getType();\r
                \r
index 2ab5632d5328e41cc1fad5ffa969bacf624f9a7c..027d79d921d5fed6b6e66e81262a931e7e37cfa6 100644 (file)
@@ -9,6 +9,8 @@
 \r
 package eu.etaxonomy.taxeditor.operations;\r
 \r
 \r
 package eu.etaxonomy.taxeditor.operations;\r
 \r
+import java.util.UUID;\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.apache.log4j.Logger;\r
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
@@ -19,8 +21,10 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.swt.widgets.Shell;\r
 \r
 import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.swt.widgets.Shell;\r
 \r
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
  * Delete a taxon node from its TaxonomicTree and thus from the current taxonomic view.\r
 \r
 /**\r
  * Delete a taxon node from its TaxonomicTree and thus from the current taxonomic view.\r
@@ -78,7 +82,7 @@ public class DeleteTaxonNodeOperation extends AbstractPostOperation {
                }\r
                \r
                // delete the taxon in an isolated conversation\r
                }\r
                \r
                // delete the taxon in an isolated conversation\r
-               TaxonNodeUtil.deleteTaxonNodeIsolated(taxonNode.getUuid());\r
+               deleteTaxonNodeIsolated(taxonNode.getUuid());\r
                \r
                \r
                return postExecute(null);\r
                \r
                \r
                return postExecute(null);\r
@@ -105,4 +109,22 @@ public class DeleteTaxonNodeOperation extends AbstractPostOperation {
                // so that all the mediation magic does the rest for us\r
                return postExecute(null);\r
        }\r
                // so that all the mediation magic does the rest for us\r
                return postExecute(null);\r
        }\r
+       \r
+       /**\r
+        * \r
+        * @param taxonNodeUuid\r
+        * @return\r
+        */\r
+       private boolean deleteTaxonNodeIsolated(UUID taxonNodeUuid){\r
+               // get a new conversation\r
+               ConversationHolder conversation = CdmStore.NewTransactionalConversation();\r
+               \r
+               TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);\r
+               \r
+               boolean result = taxonNode.remove();\r
+               \r
+               // commit the conversation and throw it away\r
+               conversation.commit(true);\r
+               return result;\r
+       }\r
 }\r
 }\r
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonomicTreeOperation.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonomicTreeOperation.java
new file mode 100644 (file)
index 0000000..10c21f8
--- /dev/null
@@ -0,0 +1,99 @@
+// $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.operations;
+
+import java.util.UUID;
+
+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 eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class DeleteTaxonomicTreeOperation extends AbstractPostOperation {
+       
+       private static final Logger logger = Logger
+                               .getLogger(DeleteTaxonomicTreeOperation.class);
+       
+       private TaxonomicTree taxonomicTree;
+
+
+       /**
+        * @param label
+        * @param undoContext
+        * @param taxonNode
+        * @param postOperationEnabled
+        */
+       public DeleteTaxonomicTreeOperation(String label, IUndoContext undoContext,
+                       TaxonomicTree taxonomicTree) {
+               super(label, undoContext, null);
+               
+               this.taxonomicTree = taxonomicTree;
+               
+       }
+
+
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               
+               deleteTaxonomicTreeIsolated(taxonomicTree.getUuid());
+               
+               return postExecute(null);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+       
+       /**
+        * @param uuid
+        */
+       private boolean deleteTaxonomicTreeIsolated(UUID uuid) {
+               // get a new conversation
+               ConversationHolder conversation = CdmStore.NewTransactionalConversation();
+               
+               TaxonomicTree taxonomicTree = CdmStore.getTaxonService().getTaxonomicTreeByUuid(uuid);
+               CdmStore.getTaxonService().removeTaxonomicTree(taxonomicTree);
+
+               // commit the conversation
+               conversation.commit(true);      
+               return true;
+       }
+}
index 6674fb0fa21948089b56a555071dc0ceb3034272..e78b5024796d274cfdcea367bd09de6542f3f940 100644 (file)
@@ -9,6 +9,8 @@
 \r
 package eu.etaxonomy.taxeditor.operations;\r
 \r
 \r
 package eu.etaxonomy.taxeditor.operations;\r
 \r
+import java.util.UUID;\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.apache.log4j.Logger;\r
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
@@ -17,8 +19,13 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;\r
 import org.eclipse.core.runtime.Status;\r
 \r
 import org.eclipse.core.runtime.IStatus;\r
 import org.eclipse.core.runtime.Status;\r
 \r
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
  * Change the taxonomic parent of a given taxon.\r
 \r
 /**\r
  * Change the taxonomic parent of a given taxon.\r
@@ -57,7 +64,7 @@ public class MoveTaxonOperation extends AbstractPostOperation {
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
                \r
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
                \r
-               TaxonNode newTaxonNode = TaxonNodeUtil.moveTaxonBaseIsolated(taxonNode.getUuid(), newParentTaxonNode.getUuid());\r
+               TaxonNode newTaxonNode = moveTaxonBaseIsolated(taxonNode.getUuid(), newParentTaxonNode.getUuid());\r
                \r
                return postExecute(newTaxonNode);\r
        }\r
                \r
                return postExecute(newTaxonNode);\r
        }\r
@@ -78,8 +85,35 @@ public class MoveTaxonOperation extends AbstractPostOperation {
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
                \r
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
                \r
-               TaxonNodeUtil.moveTaxonBaseIsolated(taxonNode.getUuid(), oldParentTaxonNode.getUuid());\r
+               moveTaxonBaseIsolated(taxonNode.getUuid(), oldParentTaxonNode.getUuid());\r
                \r
                return Status.OK_STATUS;\r
        }\r
                \r
                return Status.OK_STATUS;\r
        }\r
+       \r
+       /**\r
+        * \r
+        * @param taxonNodeUuid\r
+        * @param newParentTaxonNodeUuid\r
+        * @return\r
+        */\r
+       private TaxonNode moveTaxonBaseIsolated(UUID taxonNodeUuid, UUID newParentTaxonNodeUuid){\r
+               \r
+               // get a new conversation\r
+               ConversationHolder conversation = CdmStore.NewTransactionalConversation();\r
+               // find the taxon node\r
+               TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);\r
+               // store all relevant information of taxon node and delete the taxon node.\r
+               Taxon taxon = taxonNode.getTaxon();\r
+               ReferenceBase parentChildReference = taxonNode.getReferenceForParentChildRelation();\r
+               String parentChildMicroReference = taxonNode.getMicroReferenceForParentChildRelation();\r
+               Synonym synonymUsed = taxonNode.getSynonymToBeUsed();\r
+\r
+               taxonNode.remove();\r
+               \r
+               TaxonNode newParentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(newParentTaxonNodeUuid);\r
+               TaxonNode newChild = newParentTaxonNode.addChild(taxon, parentChildReference, parentChildMicroReference, synonymUsed);\r
+               // commit the conversation\r
+               conversation.commit(true);              \r
+               return newChild;\r
+       }\r
 }\r
 }\r
index 6fb1108e0430615ab3a496604722726a594606ae..083de428acb2ba2d3477c8e58229a4b595cc5d6f 100644 (file)
@@ -212,9 +212,13 @@ public class CdmStore{
                this.applicationController = applicationController;
        }
        
                this.applicationController = applicationController;
        }
        
-       public CdmApplicationController getApplicationController(){
+       private CdmApplicationController getApplicationControllerInternal(){
                return applicationController;
        }
                return applicationController;
        }
+       
+       public static CdmApplicationController getApplicationController(){
+               return getDefault().getApplicationControllerInternal();
+       }
 
        
        /**
 
        
        /**
@@ -305,7 +309,7 @@ public class CdmStore{
                        configurator.setDoNamesWithoutTaxa(true);
                        configurator.setDoSynonyms(true);
                }
                        configurator.setDoNamesWithoutTaxa(true);
                        configurator.setDoSynonyms(true);
                }
-               configurator.setReferenceBase(null);
+               configurator.setSec(null);
                configurator.setPageNumber(0);
                // TODO currently limit results to 1000
                configurator.setPageSize(1000);
                configurator.setPageNumber(0);
                // TODO currently limit results to 1000
                configurator.setPageSize(1000);