Merge branch 'release/4.4.0' 4.4.0
authorjenkins <jenkins-int@bgbm.org>
Mon, 5 Dec 2016 15:19:07 +0000 (16:19 +0100)
committerjenkins <jenkins-int@bgbm.org>
Mon, 5 Dec 2016 15:19:07 +0000 (16:19 +0100)
256 files changed:
.gitignore
eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin.properties
eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_de.properties
eu.etaxonomy.taxeditor.application/plugin.xml
eu.etaxonomy.taxeditor.application/pom.xml
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/ApplicationWorkbenchWindowAdvisor.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/DerivatePerspective.java
eu.etaxonomy.taxeditor.bulkeditor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.bulkeditor/pom.xml
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineDocumentProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineEditor.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/LineAnnotation.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditor.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/DeleteHandler.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/MediaEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameRelationshipEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/ReferenceEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java
eu.etaxonomy.taxeditor.cdmlib/.classpath
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/build.properties
eu.etaxonomy.taxeditor.cdmlib/lib/p6spy-2.1.4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-oauth2-2.0.11.RELEASE.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/pom.xml
eu.etaxonomy.taxeditor.cdmlib/resources/cdm.map.ser
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmModelCacherConnectionProvider.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSource.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml
eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/messages.properties
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/messages_de.properties
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin.properties
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/pom.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/Messages.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenParentHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorLabels.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyPropertyTester.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/AbstractPolytomousKeyNodeHandler.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/DeleteNodeHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/InsertNewNodeHandler.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/RemotingCreateChildPolytomousKeyNodeHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/RemotingCreateSiblingPolytomousKeyNodeHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/DeleteNodeOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/InsertPolytomousKeyNodeOperation.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/RemotingCreatePolytomousKeyNodeOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDropTargetListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteTaxonBaseHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptToSynonymOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExistingHomotypicalGroupOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonBaseOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveSynonymToAnotherAcceptedTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/DistributionEditingSupport.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/filter/ChecklistEditorFilter.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/AbstractDynamicConceptRelationMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientAgentService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientClassificationService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientClassificationService.java.orig [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCollectionService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientReferenceService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTermService.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteDescriptionElementOperation.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExisitingHomotypicalGroupOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperationTest.java
eu.etaxonomy.taxeditor.feature.jre.linux64/feature.xml
eu.etaxonomy.taxeditor.feature.jre.linux64/pom.xml
eu.etaxonomy.taxeditor.feature.platform/feature.xml
eu.etaxonomy.taxeditor.feature.platform/pom.xml
eu.etaxonomy.taxeditor.feature/feature.xml
eu.etaxonomy.taxeditor.feature/pom.xml
eu.etaxonomy.taxeditor.help/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.help/pom.xml
eu.etaxonomy.taxeditor.molecular.lib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.molecular.lib/pom.xml
eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.molecular/pom.xml
eu.etaxonomy.taxeditor.navigation/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.navigation/plugin.xml
eu.etaxonomy.taxeditor.navigation/pom.xml
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/IterableSynonymyList.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapter.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CloneClassificationHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxonHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CloneClassificationOperation.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/src/test/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperationTest.java [moved from eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveTaxonOperationTest.java with 61% similarity]
eu.etaxonomy.taxeditor.printpublisher/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.printpublisher/pom.xml
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_de.properties
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/pom.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/Messages.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databasePreferences/wizard/DatabasePreferencesPage.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databasePreferences/wizard/DatabasePreferencesWizard.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceCredentialsWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceH2WizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceMySQLWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourcePostgreSQLServerWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenDatabasePreferencesWizardHandler.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportConfiguratorWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelNormalExplicitTaxaImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DeleteResultMessagingUtils.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/MessagingUtils.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AdminGeneralPreferences.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AdminPreferencesPage.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicEditorGeneralPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/PreservationMethodMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/StageMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/bar/AuthenticatedUserBar.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/CloneClassificationDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteConfiguratorDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteMediaConfiguratorComposite.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteTaxonBaseConfiguratorComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalReferenceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonBaseSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractCdmEntityWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/LabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/CloneClassificationWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/CloneClassificationWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeAgentRelationCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeAgentRelationCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/TaxonInteractionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaMetaElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NomenclaturalStatusElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailElement.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipDetailSection.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SynonymRelationshipWizardPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectingAreasDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeoScopeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeoScopePolyKeyDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/PresenceAbsenceTermDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/DataImportView.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SaveImportedSpecimenAction.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenImportView.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenSearchWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewerComparator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmMetaDataAwareDataSourceContainer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/specimenSearch/SpecimenSearchComposite.java
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet.xml
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.dtd [moved from eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/dataset.dtd with 85% similarity]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/NormalExplicitImportTest.xml
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/store/CdmStoreTest.xml
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/store/ConcurrentSessionTest.xml
eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.test/pom.xml
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/PropertyPathsTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/RemotingCdmUpdateOperationTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonNavigatorTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/IOServiceExportTest.java
eu.etaxonomy.taxeditor.test/src/test/resources/.cdmLibrary/writableResources/test.mgd.datasources.xml [deleted file]
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.dtd [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/PolytomousKeyViewPartTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/RemotingCdmUpdateOperationTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNavigatorTest.testDeleteClassificationWithDeleteChildren.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNavigatorTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/service/IOServiceExportTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/service/IOServiceImportTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/session/CdmEntitySessionAwareTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/session/CdmEntitySessionManagerTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/h2/cdmTest.h2.db
eu.etaxonomy.taxeditor.webapp/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.webapp/pom.xml
eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/CDMEmbeddedServerException.java
eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product
eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product.with.jre
eu.etaxonomy.taxeditor/pom.xml
pom.xml

index a806330..ecfb4d5 100644 (file)
@@ -31,3 +31,5 @@ eu.etaxonomy.taxeditor.webapp/lib/cdmlib-remote-webapp.war
 /eu.etaxonomy.taxeditor.webapp/.settings/org.eclipse.m2e.core.prefs
 /eu.etaxonomy.taxeditor.webapp/lib/
 
+eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.xsd
+eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/PUBLIC.xsd
index 845d0ac..9eeb847 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Application
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 4.3.0
+Bundle-Version: 4.4.0
 Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/plugin
index 37beb7b..8110d54 100644 (file)
@@ -14,11 +14,13 @@ perspective.name = Taxonomic
 perspective.name.0 = Polytomous Key\r
 perspective.name.1 = Uses\r
 perspective.name.2 = Derivatives\r
+perspective.name.3 = Checklist\r
 menu.label = General\r
 menu.label.0 = Edit\r
 menu.label.1 = Window\r
 menu.label.2 = Help\r
 menu.label.3 = New\r
+menu.label.4 = Admin\r
 command.label = Close\r
 command.label.0 = Close All\r
 command.label.1 = Save\r
@@ -43,6 +45,7 @@ command.label.19 = About Taxonomic Editor
 command.label.20 = About the EDIT Platform\r
 command.label.21 = New\r
 command.label.22 = Save\r
+command.label.23 = Database Preferences\r
 product.name = EDIT Taxonomic Editor\r
 command.name = Parser Help\r
 command.name.0 = About the EDIT Platform\r
index 91621f4..0d73651 100644 (file)
@@ -14,11 +14,13 @@ perspective.name = Taxonomisch
 perspective.name.0 = Polytomer Schlüssel
 perspective.name.1 = Nutzung
 perspective.name.2 = Derivate
+perspective.name.3 = Checklisten
 menu.label = Datei
 menu.label.0 = Bearbeiten
 menu.label.1 = Extras
 menu.label.2 = Hilfe
 menu.label.3 = Neu
+menu.label.4 = Admin
 command.label = Schlie\u00dfen
 command.label.0 = Schlie\u00dfe alle
 command.label.1 = Speichern
@@ -43,6 +45,7 @@ command.label.19 = \u00dcber den Taxonomischen Editor
 command.label.20 = \u00dcber die EDIT Platform
 command.label.21 = Neu
 command.label.22 = Speichern
+command.label.23 = Datenbank Präferenzen
 product.name = EDIT Taxonomischer Editor
 command.name = Parser Hilfe
 command.name.0 = \u00dcber die EDIT Platform
index ae74af8..a2ca946 100644 (file)
@@ -41,7 +41,7 @@
             class="eu.etaxonomy.taxeditor.perspective.ChecklistPerspective"
             icon="icons/check.png"
             id="eu.etaxonomy.taxeditor.perspective.checklistperspective"
-            name="Checklist">
+            name="%perspective.name.3">
       </perspective>
      
    </extension>
                id="org.eclipse.ui.main.menu.window"
                label="%menu.label.1">
          </menu>
+          <menu
+               id="org.eclipse.ui.main.menu.admin"
+               label="%menu.label.4">
+         </menu>
          <menu
                id="org.eclipse.ui.main.menu.help"
                label="%menu.label.2">
          </menu>
+        
       </menuContribution>
       <menuContribution
             locationURI="menu:org.eclipse.ui.main.menu.file">
          </command>
       </menuContribution>
       <menuContribution
+            allPopups="false"
+            locationURI="menu:org.eclipse.ui.main.menu.admin">
+         <command
+               commandId="eu.etaxonomy.taxeditor.application.DatabaseSettings"
+               label="%command.label.23"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <and>
+                  <reference
+                        definitionId="hasROLE_PROJECT_MANAGER">
+                  </reference>
+                  <reference
+                        definitionId="isCdmStoreConnected">
+                  </reference>
+               </and>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+      <menuContribution
             locationURI="menu:org.eclipse.ui.main.menu.help">
          <command
                commandId="org.eclipse.ui.help.helpContents"
index 76fef54..ad6e9a0 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.3.0</version>
+    <version>4.4.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index bb5b360..6a116e2 100644 (file)
@@ -61,8 +61,6 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
     public void postWindowOpen() {
                PreferencesUtil.checkNomenclaturalCode();
 
-
-
                if(PreferencesUtil.shouldConnectAtStartUp()) {
             CdmStore.connect();
         }
index 1033f0c..32f7c3b 100644 (file)
@@ -13,7 +13,6 @@ import org.eclipse.ui.IPageLayout;
 import org.eclipse.ui.IPlaceholderFolderLayout;
 import org.eclipse.ui.progress.IProgressConstants;
 
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
@@ -36,12 +35,8 @@ public class DerivatePerspective extends Default {
 
         layout.addView(DetailsViewPart.ID, IPageLayout.RIGHT, 0.6f, layout.getEditorArea());
 
-        layout.addView(DerivateView.ID, IPageLayout.BOTTOM, 0.5f, layout.getEditorArea());
-
         layout.addView(DescriptiveViewPart.ID, IPageLayout.BOTTOM, 0.6f, TaxonNavigator.ID);
 
-        //        layout.addView(SupplementalDataViewPart.ID, IPageLayout.BOTTOM, 0.25f, DetailsViewPart.ID);
-
         folderAdditional = layout.createPlaceholderFolder(ADDITIONAL, IPageLayout.BOTTOM, 0.6f, TaxonNavigator.ID);
 
         folderAdditional.addPlaceholder(CdmDataSourceViewPart.ID);
index 3305fff..a353c6a 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Bulkeditor Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 4.3.0
+Bundle-Version: 4.4.0
 Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
index d9b805c..6a84cc5 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>4.3.0</version>
+               <version>4.4.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 1ad5dc7..e2a4d74 100644 (file)
@@ -26,6 +26,8 @@ import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.texteditor.AbstractDocumentProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
@@ -274,7 +276,16 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                                }
                                if (annotation.isMarkedAsMerged()) {
                                        persistenceService.merge(annotation.getEntity(), annotation.getMergeTarget()); //  merge
-                               } else {
+                               } if (annotation.isMarkedAsDeleted()) {
+                                       try {
+                                               persistenceService.delete(annotation.getEntity(), annotation.getDeleteConfigurator());
+                                       } catch (ReferencedObjectUndeletableException e) {
+                                               // TODO Auto-generated catch block
+                                               e.printStackTrace();
+                                       } //  merge
+                               }
+                               
+                               else {
                                        // TODO clarify w AM whether this needs to be executed on merged objects
                                        //persistenceService.delete(annotation.getEntity()); // delete
                                }
@@ -378,9 +389,9 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        int length = position.getLength();
 
                        Object entity = annotation.getEntity();
-                       annotation.markAsDeleted();
+                       //annotation.markAsDeleted(configurator);
                        model.removeAnnotation(annotation);
-
+                       
                        // Immediately followed by a delimiter?
                        int annotationEnd = offset + length;
                        try {
@@ -392,7 +403,9 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        }
 
                        try {
+                               
                                document.replace(offset, length, "");
+                               
                        } catch (BadLocationException e) {
                                MessagingUtils.error(getClass(), "Problems removing annotated line", e);
                        }
@@ -411,4 +424,6 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        updateLineFromAnnotation(annotation);
                }
        }
+       
+       
 }
index 03ee6e9..178c9c6 100644 (file)
@@ -235,6 +235,7 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
      */
     public void removeAnnotatedLine(LineAnnotation annotation) {
         ((AnnotatedLineDocumentProvider) getDocumentProvider()).removeAnnotatedLine(annotation);
+        
     }
 
     /* (non-Javadoc)
index b57e8b7..d9224d9 100644 (file)
@@ -10,6 +10,7 @@
 
 package eu.etaxonomy.taxeditor.annotatedlineeditor;
 
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 
 
@@ -57,5 +58,5 @@ public interface IEntityPersistenceService<T> {
         * @return a boolean.
         * @throws ReferencedObjectUndeletableException
         */
-       boolean delete(T entity) throws ReferencedObjectUndeletableException;
+       boolean delete(T entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException;
 }
index ef4f124..9f41f4b 100644 (file)
@@ -14,6 +14,9 @@ import java.util.Set;
 import org.apache.log4j.Logger;
 import org.eclipse.jface.text.source.Annotation;
 
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
+
 /**
  * An <code>Annotation</code> which spans an entire line and holds an object associated
  * with the line in an <code>IEntityContainer</code>.
@@ -37,6 +40,7 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
        private boolean markedAsMerged;
        private boolean markedAsNew;
        private T mergeTarget;
+       private DeleteConfiguratorBase configurator= null;
 
 
        /**
@@ -184,7 +188,13 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
                        lineDisplayStrategy.setStatusMessage(entity + " deleted.", entity);
                }
        }
-
+        public void markAsDeleted(DeleteConfiguratorBase config) {
+                       super.markDeleted(true);
+                       this.configurator = config;
+                       if (!isMarkedAsMerged()) {
+                               lineDisplayStrategy.setStatusMessage(entity + " deleted.", entity);
+                       }
+               }
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsMerged(eu.etaxonomy.cdm.model.common.CdmBase)
         */
@@ -248,4 +258,13 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
     public void setEntity(Object entity) {
         this.entity = (T) entity;
     }
+
+       public DeleteConfiguratorBase getDeleteConfigurator() {
+               return this.configurator;
+       }
+
+       public void setDeleteConfigurator(DeleteConfiguratorBase config) {
+               this.configurator = config;
+               
+       }
 }
index d3d9d48..61883e7 100644 (file)
@@ -44,6 +44,7 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
@@ -74,7 +75,7 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        private boolean isDirty;
 
     private IUndoContext undoContext;
-
+  
        public BulkEditor() {
                super(CdmStore.createConversation());
         undoContext = new UndoContext();
@@ -185,6 +186,13 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
                searchBar.setFocus();
        }
 
+       /**
+        * @return the searchBar
+        */
+       public BulkEditorSearch getSearchBar() {
+               return searchBar;
+       }
+
        private void displayWarningDialog() {
                IPreferenceStore prefs = PreferencesUtil.getPreferenceStore();
                if (!prefs.getBoolean(IPreferenceKeys.HIDE_BULKEDITOR_INFO)) {
@@ -247,8 +255,9 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
            isDirty = true;
            firePropertyChange(PROP_DIRTY);
        }
-
-       @Override
+       
+       
+       @Override
        public void doSave(IProgressMonitor progressMonitor) {
            isDirty = false;
 
@@ -286,13 +295,13 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
                                        return;
                                }
                        }
-                       conversation.clear();
-                       conversation.commit(true);
+                       //conversation.clear();
+                       //conversation.commit(true);
 
                        getEditorInput().dispose();
                        getEditorInput().bind();
                        getEditorInput().performSearch(query);
-
+                       
                        refresh();
 
                        selectFirstItem();
@@ -330,10 +339,12 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
 
        @Override
        public boolean canAttachMedia() {
-           return getEditorInput() instanceof TaxonEditorInput?true:false;
+           return (getEditorInput() instanceof TaxonEditorInput || getEditorInput() instanceof OccurrenceEditorInput) ?true:false;
        }
 
     public IUndoContext getUndoContext() {
         return undoContext;
     }
+
+       
 }
index f42174b..0246e62 100644 (file)
@@ -11,6 +11,7 @@
 package eu.etaxonomy.taxeditor.bulkeditor.handler;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.core.commands.AbstractHandler;
@@ -18,7 +19,7 @@ import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.text.TextSelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
@@ -27,18 +28,16 @@ import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.IAgentService;
-import eu.etaxonomy.cdm.api.service.IGroupService;
-import eu.etaxonomy.cdm.api.service.IMediaService;
-import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.media.Media;
@@ -66,14 +65,16 @@ import eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator.DeleteConfiguratorDia
  */
 public class DeleteHandler extends AbstractHandler {
 
+
+
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
         */
        @Override
        public Object execute(ExecutionEvent event) throws ExecutionException {
 
-               ISelection selection = HandlerUtil.getCurrentSelection(event);
 
+               TextSelection selection = (TextSelection) HandlerUtil.getCurrentSelection(event);
                IEditorPart editor = HandlerUtil.getActiveEditor(event);
 
                IEditorInput input = editor.getEditorInput();
@@ -87,132 +88,154 @@ public class DeleteHandler extends AbstractHandler {
 
 
                        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
+                       DeleteConfiguratorBase config = null;
                        IEntityPersistenceService persistenceService = (IEntityPersistenceService) input;
-
-
+                       DeleteResult result = new DeleteResult();
+                       String errorMessage= "The object ";
                        for(Object object : structuredSelection.toList()){
+                           if (object instanceof CdmBase){
+                               CdmBase base = (CdmBase)object;
+                               LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
+                               if (base.getId() != 0){
+
+
+                                       try {
+                                           ICdmApplicationConfiguration controller;
+                                           controller = CdmStore.getCurrentApplicationConfiguration();
+                                           if (object instanceof SpecimenOrObservationBase){
+                                               IOccurrenceService service = controller.getOccurrenceService();
+                                                       if (object != null){
+                                                               result = service.isDeletable(((SpecimenOrObservationBase) object).getUuid(), null);
+                                                               errorMessage = "The specimen or observation ";
+
+                                                       }
+                                           } else if (object instanceof Reference){
+                                                       IReferenceService service = controller.getReferenceService();
+                                                       if (object != null){
+                                                               result = service.isDeletable(((Reference)object).getUuid(), null);
+                                                               errorMessage = "The reference ";
+                                                       }
+
+                                           } else if (object instanceof Group){
+                                               errorMessage = "The group ";
+                                           }else if (object instanceof User){
+                                               errorMessage = "The user ";
+                                           } else if (object instanceof TaxonNameBase){
+                                               TaxonNameBase name = HibernateProxyHelper.deproxy(object, TaxonNameBase.class);
+                                               if (object != null){
+                                                   config = new NameDeletionConfigurator();
+
+                                                   DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion",  null,  "Do you really want to delete the name?\nThis operation is irreversible!", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
+                                                   int result_dialog= dialog.open();
+                                                   if (result_dialog != Status.OK){
+                                                       return null;
+                                                   }
+                                                   result = controller.getNameService().isDeletable(name.getUuid(), config);
+                                                   errorMessage = "The name ";
+
+                                               }
+                                           } else if (object instanceof TaxonBase){
+
+                                                       // synonym
+                                                       if(object instanceof Synonym){
+                                                               Synonym synonym = HibernateProxyHelper.deproxy(object, Synonym.class);
+                                                               config = new SynonymDeletionConfigurator();
+                                                               errorMessage = "The synonym ";
+                                                               DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion",  null,  "Do you really want to delete the synonym?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
+                                    int result_dialog= dialog.open();
+                                    if (result_dialog != Status.OK){
+                                         return null;
+                                    }
+                                    result = controller.getTaxonService().isDeletable(synonym.getUuid(), config);
+
+                                                       }
+                                                       else if(object instanceof Taxon ){
+                                                               Taxon  taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
+                                                               if (((Taxon)object).getTaxonNodes().isEmpty()){
+                                            errorMessage = "The taxon ";
+                                                               } else{
+                                                                   MessagingUtils.messageDialog("Delete not possible", getClass(), "The taxon can not be deleted in bulk editor. It is used in a classification.", null);
+                                                                   return null;
+                                                               }
+                                                               config = new TaxonDeletionConfigurator();
+                                                               ((TaxonDeletionConfigurator) config).setDeleteInAllClassifications(true);
+                                                               DeleteConfiguratorDialog dialog;
+                                                           dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion",  null,  "Do you really want to delete the taxon?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
+                                                               int result_dialog= dialog.open();
+                                    if (result_dialog != Status.OK){
+                                         return null;
+                                    }
+                                    result = controller.getTaxonService().isDeletable(taxon.getUuid(), config);
+
+                                                       }
+                                           } else if (object instanceof TeamOrPersonBase){
+
+                                                 errorMessage = "The team or person ";
+                                          } else if (object instanceof Media){
+                                              config = new MediaDeletionConfigurator();
+                                              Media media = HibernateProxyHelper.deproxy(object, Media.class);
+                                              DeleteConfiguratorDialog dialog;
+                                                  dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion",  null,  "Do you really want to delete the media?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
+                                                  int result_dialog= dialog.open();
+                               if (result_dialog != Status.OK){
+                                   return null;
+                               }
+
+                               result = controller.getMediaService().isDeletable(media.getUuid(), config);
+                               errorMessage = "The media ";
+
+                           }
+
+
+                               } catch (Exception e){
+                                       MessagingUtils.errorDialog("Exception occured. Delete not possible", getClass(), e.getMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID, null, true);
+                               }
+                               if (result.isError() || result.isAbort()){
+                                       if (!result.getExceptions().isEmpty()) {
+                                               List<String> messages = new ArrayList<String>();
+                                               int i = result.getExceptions().size();
+                                               for (Exception e:result.getExceptions()){
+                                                       messages.add(e.getMessage());
+                                               }
+                                               errorMessage += "could not be deleted.";
+                                               //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
+                                               DeleteResultMessagingUtils.messageDialogWithDetails(result,errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
+                                       }else{
+                                               MessagingUtils.messageDialog("Delete not possible", getClass(), "The object could not be deleted. An exception occured.", null);
+                                       }
+                               }else if (model != null) {
+                        Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
+                        while (iter.hasNext()) {
+                            Object next = iter.next();
+                            if (next instanceof LineAnnotation) {
+                                if (result.isOk()){
+                                    ((LineAnnotation)next).markAsDeleted(config);
 
-                               LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
-                               DeleteResult result = new DeleteResult();
-                               String errorMessage= "The object ";
-                               //result.setError();
-                               try {
-                                       ICdmApplicationConfiguration controller;
-                                       controller = CdmStore.getCurrentApplicationConfiguration();
-
-                                       if (object instanceof SpecimenOrObservationBase){
-                                               IOccurrenceService service = controller.getOccurrenceService();
-                                               if (object != null){
-                                                       result = service.delete(((SpecimenOrObservationBase) object).getUuid());
-                                                       errorMessage = "The specimen or observation ";
-                                               }
-                                       } else if (object instanceof Reference){
-                                               IReferenceService service = controller.getReferenceService();
-                                               if (object != null){
-                                                       result = service.delete(((Reference) object).getUuid());
-                                                       errorMessage = "The reference ";
-                                               }
-
-                                       } else if (object instanceof Group){
-                                               IGroupService service = controller.getGroupService();
-                                               if (object != null){
-                                                       result = service.delete(((Group) object).getUuid());
-                                                       errorMessage = "The group ";
-                                               }
-                                       }else if (object instanceof User){
-                                               IUserService service = controller.getUserService();
-                                               if (object != null){
-                                                       result = service.delete(((User) object).getUuid());
-                                                       errorMessage = "The user ";
-                                               }
-                                       } else if (object instanceof TaxonNameBase){
-                                               INameService service = controller.getNameService();
-                                               if (object != null){
-                                                       NameDeletionConfigurator config = new NameDeletionConfigurator();
-
-                                                       DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion",  null,  "Do you really want to delete the name?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
-                                                       int result_dialog= dialog.open();
-                                                       if (result_dialog != Status.OK){
-                                                               return null;
-                                                       }
-                                                       result = service.delete(((TaxonNameBase) object).getUuid(), config);
-                                                       errorMessage = "The name ";
-                                               }
-                                       } else if (object instanceof TaxonBase){
-                                               ITaxonService service = controller.getTaxonService();
-                                               if (object != null){
-                                                       if (object instanceof Taxon){
-                                                           TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
-                                                               config.setDeleteInAllClassifications(true);
-                                                               DeleteConfiguratorDialog dialog;
-                                                               if (((Taxon)object).getTaxonNodes().isEmpty()){
-                                                                   dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion",  null,  "Do you really want to delete the taxon?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
-                                                                   int result_dialog= dialog.open();
-                                       if (result_dialog != Status.OK){
-                                           return null;
-                                       }
-                                       result = service.deleteTaxon(((TaxonBase) object).getUuid(), config, null);
-                                       errorMessage = "The taxon ";
-                                                               } else{
-                                                                   MessagingUtils.messageDialog("Delete not possible", getClass(), "The taxon can not be deleted in bulk editor. It is used in a classification.", null);
-                                                                   return null;
-                                                               }
-
-                                                       }else{
-                                                               SynonymDeletionConfigurator config = new SynonymDeletionConfigurator();
-                                                               DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion",  null,  "Do you really want to delete the synonym?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
-                                int result_dialog= dialog.open();
-                                if (result_dialog != Status.OK){
-                                     return null;
                                 }
-                                                               result = service.deleteSynonym(((Synonym)object).getUuid(), config);
-                                                               errorMessage = "The synonym ";
-                                                       }
-                                               }
-                                       } else if (object instanceof TeamOrPersonBase){
-                                               IAgentService service = controller.getAgentService();
-                                               //TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
-                                               result = service.delete(((TeamOrPersonBase)object).getUuid());
-                                               errorMessage = "The team or person ";
-                                       } else if (object instanceof Media){
-                        IMediaService service = controller.getMediaService();
-                        //TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
-                        result = service.delete(((Media)object).getUuid(), null);
-                        errorMessage = "The media ";
+
+                            }
+                        }
                     }
 
-                               } catch (Exception e){
-                                       MessagingUtils.errorDialog("Exception occured. Delete not possible", getClass(), e.getMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID, null, true);
-                               }
-                               if (result.isError() || result.isAbort()){
-                                       if (!result.getExceptions().isEmpty()) {
-                                               List<String> messages = new ArrayList<String>();
-                                               int i = result.getExceptions().size();
-                                               for (Exception e:result.getExceptions()){
-                                                       messages.add(e.getMessage());
-                                               }
-                                               errorMessage += "could not be deleted.";
-                                               //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
-                                               DeleteResultMessagingUtils.messageDialogWithDetails(result,errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
-                                       }else{
-                                               MessagingUtils.messageDialog("Delete not possible", getClass(), "The object could not be deleted. An exception occured.", null);
-                                       }
-                               }
-                               if (result.isOk() ){
-                                       ((BulkEditor) editor).removeAnnotatedLine(annotation);
-                                       if(result.getUpdatedObjects().size() != 0 || !result.getExceptions().isEmpty()){
-                                           List<String> messages = new ArrayList<String>();
+                           }
+                       if (result.isOk() ){
+
+                    ((BulkEditor) editor).removeAnnotatedLine(annotation);
+
+                    if(result.getUpdatedObjects().size() != 0 || !result.getExceptions().isEmpty()){
+                        List<String> messages = new ArrayList<String>();
                         int i = result.getExceptions().size();
                         for (Exception e:result.getExceptions()){
                             messages.add(e.getMessage());
                         }
-                                           errorMessage += "was deleted but related object(s) could not be deleted. ";
-                                           //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
-                                           DeleteResultMessagingUtils.messageDialogWithDetails(result, errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
-                                       }
+                        errorMessage += "can be deleted but related object(s) could not be deleted. ";
+                        //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
+                        DeleteResultMessagingUtils.messageDialogWithDetails(result, errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
+                    }
+
+                }
 
-                               }
+                           }
 
                        }
                }
@@ -221,4 +244,5 @@ public class DeleteHandler extends AbstractHandler {
                return null;
        }
 
+
 }
index 31b7498..4140a1b 100644 (file)
@@ -14,6 +14,7 @@ import java.util.List;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
@@ -155,10 +156,9 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
        }
 
        @Override
-       public boolean delete(TeamOrPersonBase entity)
+       public boolean delete(TeamOrPersonBase entity, DeleteConfiguratorBase config)
                        throws ReferencedObjectUndeletableException {
-               // TODO Auto-generated method stub
-               return false;
+               return CdmStore.getService(IAgentService.class).delete(entity.getUuid()) != null;
        }
 
     /* (non-Javadoc)
index 440af45..9b46b57 100644 (file)
@@ -16,6 +16,7 @@ import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.IGroupService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
@@ -74,8 +75,8 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
         */
        @Override
-       public boolean delete(Group entity) throws ReferencedObjectUndeletableException {
-               return CdmStore.getService(IGroupService.class).delete(entity) != null;
+       public boolean delete(Group entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
+               return CdmStore.getService(IGroupService.class).delete(entity.getUuid()) != null;
        }
 
        /* (non-Javadoc)
index 697118e..052e116 100644 (file)
@@ -14,9 +14,12 @@ import java.util.List;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IMediaService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.persistence.dao.hibernate.media.MediaDaoHibernateImpl;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.MediaCreator;
@@ -61,8 +64,14 @@ public class MediaEditorInput extends AbstractBulkEditorInput<Media> {
     }
 
     @Override
-    public boolean delete(Media entity) throws ReferencedObjectUndeletableException {
-        return CdmStore.getService(IMediaService.class).delete(entity) != null;
+    public boolean delete(Media entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
+       MediaDeletionConfigurator mediaConfig = null;
+       if (config instanceof MediaDeletionConfigurator){
+               mediaConfig = (MediaDeletionConfigurator) config;
+       } else{
+               
+       }
+        return CdmStore.getService(IMediaService.class).delete(entity.getUuid(), mediaConfig) != null;
     }
 
     @Override
index 9017638..f257149 100644 (file)
@@ -15,7 +15,9 @@ import java.util.List;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
@@ -112,13 +114,17 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
                return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
        }
 */
-       /** {@inheritDoc}
-        **/
        @Override
-    public boolean delete(TaxonNameBase entity)  {
-               return CdmStore.getService(INameService.class).delete(entity) != null;
+    public boolean delete(TaxonNameBase entity, DeleteConfiguratorBase config)  {
+               NameDeletionConfigurator nameConfig = null;
+               if (config instanceof NameDeletionConfigurator){
+                       nameConfig = (NameDeletionConfigurator) config;
+               } else{
+                       
+               }
+               return CdmStore.getService(INameService.class).delete(entity.getUuid(), nameConfig) != null;
        }
-
+       
        /** {@inheritDoc} */
        @Override
     public TaxonNameBase save(TaxonNameBase entity) {
index 893232a..af2c3c8 100644 (file)
@@ -14,6 +14,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
@@ -84,7 +85,7 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
         */
        /** {@inheritDoc} */
        @Override
-       public boolean delete(NameRelationship entity) {
+       public boolean delete(NameRelationship entity, DeleteConfiguratorBase config) {
                // TODO Auto-generated method stub
                return false;
        }
index b247659..578105c 100644 (file)
@@ -15,6 +15,7 @@ import java.util.List;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
@@ -129,7 +130,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        /** {@inheritDoc}
         * @throws ReferencedObjectUndeletableException */
        @Override
-    public boolean delete(SpecimenOrObservationBase entity) throws ReferencedObjectUndeletableException {
+    public boolean delete(SpecimenOrObservationBase entity, DeleteConfiguratorBase config ) throws ReferencedObjectUndeletableException {
                return CdmStore.getService(IOccurrenceService.class).delete(entity) != null;
        }
 
index a269df4..48cf55f 100644 (file)
@@ -14,6 +14,7 @@ import java.util.List;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IReferenceService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.model.common.MarkerType;
@@ -132,8 +133,8 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
        /** {@inheritDoc}
         * @throws ReferencedObjectUndeletableException */
        @Override
-    public boolean delete(Reference entity) throws ReferencedObjectUndeletableException {
-               return CdmStore.getService(IReferenceService.class).delete(entity) != null;
+    public boolean delete(Reference entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
+               return CdmStore.getService(IReferenceService.class).delete(entity.getUuid()) != null;
        }
 
        /** {@inheritDoc} */
index 5ea635f..4d2a725 100644 (file)
@@ -6,9 +6,12 @@ import java.util.List;
 import java.util.UUID;\r
 \r
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;\r
 import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;\r
 import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;\r
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;\r
+import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;\r
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
@@ -79,9 +82,10 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
        /** {@inheritDoc} */\r
        @Override\r
        public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {\r
-               IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<TaxonBase>();\r
-               newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());\r
-               newConfig.setMatchMode(MatchMode.ANYWHERE);\r
+//             IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<TaxonBase>();\r
+//             newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());\r
+//             newConfig.setMatchMode(MatchMode.ANYWHERE);\r
+               \r
                List<TaxonBase> taxa =  CdmStore.getSearchManager().findTaxa(configurator);\r
                List<TaxonBase> taxaCopy = new ArrayList<TaxonBase>();\r
                for (TaxonBase taxon:taxa){\r
@@ -107,8 +111,26 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
        /** {@inheritDoc}\r
         * @throws ReferencedObjectUndeletableException */\r
        @Override\r
-    public boolean delete(TaxonBase entity) {\r
-               return CdmStore.getService(ITaxonService.class).delete(entity) != null;\r
+    public boolean delete(TaxonBase entity, DeleteConfiguratorBase config) {\r
+               if (entity instanceof Taxon){\r
+                       TaxonDeletionConfigurator taxonConfig = null;\r
+                       if (config instanceof TaxonDeletionConfigurator){\r
+                               taxonConfig = (TaxonDeletionConfigurator)config;\r
+                       }else{\r
+                               \r
+                       }\r
+                       \r
+                       return CdmStore.getService(ITaxonService.class).deleteTaxon(entity.getUuid(), taxonConfig, null) != null;\r
+               } else{\r
+                       SynonymDeletionConfigurator synConfig = null;\r
+                       if (config instanceof SynonymDeletionConfigurator){\r
+                               synConfig = (SynonymDeletionConfigurator)config;\r
+                       }else{\r
+                               \r
+                       }\r
+                       \r
+                       return CdmStore.getService(ITaxonService.class).deleteSynonym(entity.getUuid(), synConfig) != null;\r
+               }\r
        }\r
        @Override\r
        protected IEntityCreator<TaxonBase> createEntityCreator() {\r
index f78e19d..06bd812 100644 (file)
@@ -15,6 +15,7 @@ import java.util.List;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.model.common.User;
@@ -71,7 +72,7 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
         */
        @Override
-       public boolean delete(User entity) throws ReferencedObjectUndeletableException {
+       public boolean delete(User entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
                return CdmStore.getService(IUserService.class).delete(entity) != null;
        }
 
index e3690c7..63454d3 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>\r
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
-       <classpathentry kind="src" path="src/main/java"/>\r
-       <classpathentry kind="src" path="src/main/resources"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/apache-log4j-extras-1.2.17.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.8.8.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.8.8.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/avro-1.6.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-anim-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-css-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-dom-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-ext-1.8.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-extension-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-js-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-parser-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-script-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.5.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-4.3.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.3.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-ext/4.3.0-SNAPSHOT/cdmlib-ext-4.3.0-sources.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.3.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-io/4.3.0-SNAPSHOT/cdmlib-io-4.3.0-sources.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.3.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-model/4.3.0-SNAPSHOT/cdmlib-model-4.3.0-sources.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.3.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.3.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.3.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.3.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.3.0-SNAPSHOT/cdmlib-services-4.3.0-sources.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.3.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cglib-3.2.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-3.2.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/classmate-1.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/codemodel-2.2.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-codec-1.10.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-csv-1.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-lang3-3.3.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/doxia-core-1.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/doxia-logging-api-1.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/doxia-module-apt-1.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/doxia-module-xhtml-1.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/doxia-sink-api-1.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/dozer-5.3.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/dtd-parser-1.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/easymock-2.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/easymockclassextension-2.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.6.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/ezmorph-1.0.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/FastInfoset-1.2.13.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/fop-1.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/guava-19.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/h2-1.4.190.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-5.0.7.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-5.0.1.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-core-5.0.7.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-5.0.7.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-5.0.7.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-5.0.7.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.1-api-1.0.0.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-4.2.0.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-analyzers-4.2.0.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-5.5.2.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-orm-5.5.2.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-5.2.2.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-cdi-5.2.2.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/hsqldb-2.3.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/httpclient-cache-4.2.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/icu4j-2.6.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/istack-commons-runtime-2.21.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/istack-commons-tools-2.21.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/itextpdf-5.5.8.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jackson-annotations-2.6.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jackson-core-2.6.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jackson-core-asl-1.8.8.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jackson-databind-2.6.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jackson-mapper-asl-1.8.8.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jakarta-regexp-1.4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jandex-2.0.0.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/javassist-3.20.0-GA.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/javax.el-2.2.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/javax.el-api-2.2.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.1.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jaxb-api-2.2.12.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jaxb-core-2.2.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jaxb-jxc-2.2.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jaxb-runtime-2.2.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jaxb-xjc-2.2.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jaxb1-impl-2.2-EA.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.3.0.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jcl-over-slf4j-1.7.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jdom2-2.0.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jena-arq-2.13.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jena-core-2.13.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jena-iri-1.1.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jena-tdb-1.1.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/joda-time-2.9.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/json-20090211.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/json-lib-2.4-jdk15.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jsonld-java-0.5.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jsr250-api-1.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jta-1.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/jtds-1.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/junit-4.12.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/junit-benchmarks-0.7.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/libthrift-0.9.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-common-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-backward-codecs-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-core-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-facet-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-grouping-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-highlighter-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-join-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-memory-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-misc-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-queries-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-queryparser-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-sandbox-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/lucene-suggest-5.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/mapstruct-1.0.0.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/objenesis-1.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.8.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/ognl-2.6.9.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/p6spy-2.1.4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/paranamer-2.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/plexus-classworlds-1.2-alpha-9.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/plexus-component-annotations-1.5.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/plexus-container-default-1.0-alpha-30.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/plexus-utils-3.0.15.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/poi-3.13.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-3.13.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-schemas-3.13.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/postgresql-9.4-1206-jdbc4.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/relaxngDatatype-20020414.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/rngom-2.2.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/sanselan-0.97-incubator.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/Saxon-HE-9.7.0-2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/servlet-api-2.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.13.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/slf4j-log4j12-1.7.13.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/slf4j-nop-1.7.13.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/snappy-java-1.0.4.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/solr-analysis-extras-3.6.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-aop-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-aspects-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-beans-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-context-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-context-support-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-core-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-expression-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-jdbc-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-orm-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-oxm-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-plugin-core-1.2.0.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-plugin-metadata-1.2.0.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-security-config-4.0.3.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-security-core-4.0.3.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-security-web-4.0.3.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-test-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-tx-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-web-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/spring-webmvc-4.2.4.RELEASE.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/springfox-core-2.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/springfox-schema-2.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/springfox-spi-2.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/springfox-spring-web-2.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/springfox-swagger-common-2.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/springfox-swagger2-2.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/standard-1.1.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/stax-ex-1.7.7.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.5.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/swagger-models-1.5.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/tools.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/txw2-2.2.11.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.4.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/validation-api-1.1.0.Final.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.3.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xalan-2.7.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xercesImpl-2.11.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xml-resolver-1.2.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.6.0.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xmlpull-1.1.3.1.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xmlunit-1.6.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xom-1.2.5.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.4c.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xsom-20140925.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/xstream-1.4.8.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/yjp-controller-api-redist-9.0.8.jar"/>\r
-       <classpathentry kind="output" path="target/classes"/>\r
-</classpath>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-oauth2-2.0.11.RELEASE.jar"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="src" path="src/main/java"/>
+       <classpathentry kind="src" path="src/main/resources"/>
+       <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/apache-log4j-extras-1.2.17.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.8.8.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.8.8.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/avro-1.6.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-anim-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-css-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-dom-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-ext-1.8.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-extension-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-js-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-parser-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-script-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.5.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-4.4.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.4.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-ext/4.3.0-SNAPSHOT/cdmlib-ext-4.4.0-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.4.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-io/4.3.0-SNAPSHOT/cdmlib-io-4.4.0-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.4.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-model/4.3.0-SNAPSHOT/cdmlib-model-4.4.0-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.4.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.4.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.4.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.4.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.3.0-SNAPSHOT/cdmlib-services-4.4.0-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.4.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cglib-3.2.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-3.2.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/classmate-1.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/codemodel-2.2.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-codec-1.10.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-csv-1.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-lang3-3.3.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/doxia-core-1.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/doxia-logging-api-1.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/doxia-module-apt-1.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/doxia-module-xhtml-1.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/doxia-sink-api-1.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/dozer-5.3.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/dtd-parser-1.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/easymock-2.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/easymockclassextension-2.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.6.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/ezmorph-1.0.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/FastInfoset-1.2.13.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/fop-1.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/guava-19.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/h2-1.4.190.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-5.0.7.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-5.0.1.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-core-5.0.7.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-5.0.7.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-5.0.7.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-5.0.7.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.1-api-1.0.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-4.2.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-analyzers-4.2.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-5.5.2.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-search-orm-5.5.2.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-5.2.2.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-cdi-5.2.2.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hsqldb-2.3.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/httpclient-cache-4.2.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/icu4j-2.6.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/istack-commons-runtime-2.21.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/istack-commons-tools-2.21.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/itextpdf-5.5.8.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jackson-annotations-2.6.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jackson-core-2.6.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jackson-core-asl-1.8.8.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jackson-databind-2.6.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jackson-mapper-asl-1.8.8.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jakarta-regexp-1.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jandex-2.0.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/javassist-3.20.0-GA.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/javax.el-2.2.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/javax.el-api-2.2.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.1.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jaxb-api-2.2.12.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jaxb-core-2.2.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jaxb-jxc-2.2.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jaxb-runtime-2.2.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jaxb-xjc-2.2.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jaxb1-impl-2.2-EA.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.3.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jcl-over-slf4j-1.7.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jdom2-2.0.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jena-arq-2.13.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jena-core-2.13.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jena-iri-1.1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jena-tdb-1.1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/joda-time-2.9.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/json-20090211.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/json-lib-2.4-jdk15.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jsonld-java-0.5.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jsr250-api-1.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jta-1.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/jtds-1.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/junit-4.12.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/junit-benchmarks-0.7.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/libthrift-0.9.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-common-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-backward-codecs-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-core-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-facet-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-grouping-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-highlighter-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-join-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-memory-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-misc-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-queries-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-queryparser-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-sandbox-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/lucene-suggest-5.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/mapstruct-1.0.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/objenesis-1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.8.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/ognl-2.6.9.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/paranamer-2.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/plexus-classworlds-1.2-alpha-9.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/plexus-component-annotations-1.5.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/plexus-container-default-1.0-alpha-30.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/plexus-utils-3.0.15.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/poi-3.13.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-3.13.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-schemas-3.13.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/postgresql-9.4-1206-jdbc4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/relaxngDatatype-20020414.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/rngom-2.2.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/sanselan-0.97-incubator.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/Saxon-HE-9.7.0-2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/servlet-api-2.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.13.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/slf4j-log4j12-1.7.13.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/slf4j-nop-1.7.13.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/snappy-java-1.0.4.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/solr-analysis-extras-3.6.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-aop-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-aspects-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-beans-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-context-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-context-support-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-core-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-expression-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-jdbc-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-orm-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-oxm-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-plugin-core-1.2.0.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-plugin-metadata-1.2.0.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-config-4.0.3.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-core-4.0.3.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-security-web-4.0.3.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-test-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-tx-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-web-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-webmvc-4.2.4.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/springfox-core-2.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/springfox-schema-2.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/springfox-spi-2.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/springfox-spring-web-2.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/springfox-swagger-common-2.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/springfox-swagger2-2.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/standard-1.1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/stax-ex-1.7.7.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.5.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/swagger-models-1.5.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/tools.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/txw2-2.2.11.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.4.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/validation-api-1.1.0.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.3.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xalan-2.7.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xercesImpl-2.11.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xml-resolver-1.2.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.6.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xmlpull-1.1.3.1.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xmlunit-1.6.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xom-1.2.5.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.4c.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xsom-20140925.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/xstream-1.4.8.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/yjp-controller-api-redist-9.0.8.jar"/>
+       <classpathentry kind="output" path="target/classes"/>
+</classpath>
index 806d0b9..eb38d54 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: CDM Library Dependencies Plugin
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 4.3.0
+Bundle-Version: 4.4.0
 Eclipse-BundleShape: dir
 Export-Package: com.google.api,
  com.google.api.detect,
@@ -165,6 +165,7 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.remote.json.processor.value,
  eu.etaxonomy.cdm.remote.json.util,
  eu.etaxonomy.cdm.remote.l10n,
+ eu.etaxonomy.cdm.remote.oauth2,
  eu.etaxonomy.cdm.remote.service,
  eu.etaxonomy.cdm.remote.view,
  eu.etaxonomy.cdm.remote.view.oaipmh,
@@ -421,6 +422,46 @@ Export-Package: com.google.api,
  org.springframework.security.core,
  org.springframework.security.core.context,
  org.springframework.security.core.userdetails,
+ org.springframework.security.oauth2.client,
+ org.springframework.security.oauth2.client.filter,
+ org.springframework.security.oauth2.client.filter.state,
+ org.springframework.security.oauth2.client.http,
+ org.springframework.security.oauth2.client.resource,
+ org.springframework.security.oauth2.client.test,
+ org.springframework.security.oauth2.client.token,
+ org.springframework.security.oauth2.client.token.auth,
+ org.springframework.security.oauth2.client.token.grant.client,
+ org.springframework.security.oauth2.client.token.grant.code,
+ org.springframework.security.oauth2.client.token.grant.implicit,
+ org.springframework.security.oauth2.client.token.grant.password,
+ org.springframework.security.oauth2.client.token.grant.redirect,
+ org.springframework.security.oauth2.common,
+ org.springframework.security.oauth2.common.exceptions,
+ org.springframework.security.oauth2.common.util,
+ org.springframework.security.oauth2.config.annotation.builders,
+ org.springframework.security.oauth2.config.annotation.configuration,
+ org.springframework.security.oauth2.config.annotation.configurers,
+ org.springframework.security.oauth2.config.annotation.web.configuration,
+ org.springframework.security.oauth2.config.annotation.web.configurers,
+ org.springframework.security.oauth2.config.xml,
+ org.springframework.security.oauth2.http.converter,
+ org.springframework.security.oauth2.http.converter.jaxb,
+ org.springframework.security.oauth2.provider,
+ org.springframework.security.oauth2.provider.approval,
+ org.springframework.security.oauth2.provider.authentication,
+ org.springframework.security.oauth2.provider.client,
+ org.springframework.security.oauth2.provider.code,
+ org.springframework.security.oauth2.provider.endpoint,
+ org.springframework.security.oauth2.provider.error,
+ org.springframework.security.oauth2.provider.expression,
+ org.springframework.security.oauth2.provider.implicit,
+ org.springframework.security.oauth2.provider.password,
+ org.springframework.security.oauth2.provider.refresh,
+ org.springframework.security.oauth2.provider.request,
+ org.springframework.security.oauth2.provider.token,
+ org.springframework.security.oauth2.provider.token.store,
+ org.springframework.security.oauth2.provider.token.store.redis,
+ org.springframework.security.oauth2.provider.vote,
  org.springframework.security.provisioning,
  org.springframework.stereotype,
  org.springframework.transaction;uses:="org.springframework.core",
@@ -498,15 +539,15 @@ Bundle-ClassPath: .,
  lib/batik-util-1.7.jar,
  lib/batik-xml-1.7.jar,
  lib/c3p0-0.9.5.2.jar,
- lib/cdmlib-commons-4.3.0.jar,
- lib/cdmlib-ext-4.3.0.jar,
- lib/cdmlib-io-4.3.0.jar,
- lib/cdmlib-model-4.3.0.jar,
- lib/cdmlib-persistence-4.3.0.jar,
- lib/cdmlib-print-4.3.0.jar,
- lib/cdmlib-remote-4.3.0.jar,
- lib/cdmlib-services-4.3.0.jar,
- lib/cdmlib-test-4.3.0.jar,
+ lib/cdmlib-commons-4.4.0.jar,
+ lib/cdmlib-ext-4.4.0.jar,
+ lib/cdmlib-io-4.4.0.jar,
+ lib/cdmlib-model-4.4.0.jar,
+ lib/cdmlib-persistence-4.4.0.jar,
+ lib/cdmlib-print-4.4.0.jar,
+ lib/cdmlib-remote-4.4.0.jar,
+ lib/cdmlib-services-4.4.0.jar,
+ lib/cdmlib-test-4.4.0.jar,
  lib/cglib-3.2.0.jar,
  lib/cglib-nodep-3.2.0.jar,
  lib/classmate-1.3.1.jar,
@@ -633,7 +674,6 @@ Bundle-ClassPath: .,
  lib/opencsv-2.3.jar,
  lib/org.osgi.core-1.0.0.jar,
  lib/osgi-3.6.0.jar,
- lib/p6spy-2.1.4.jar,
  lib/paranamer-2.3.jar,
  lib/plexus-classworlds-1.2-alpha-9.jar,
  lib/plexus-component-annotations-1.5.5.jar,
@@ -716,5 +756,6 @@ Bundle-ClassPath: .,
  lib/xpp3-1.1.4c.jar,
  lib/xsom-20140925.jar,
  lib/xstream-1.4.8.jar,
- lib/yjp-controller-api-redist-9.0.8.jar
+ lib/yjp-controller-api-redist-9.0.8.jar,
+ lib/spring-security-oauth2-2.0.11.RELEASE.jar
 Import-Package: eu.etaxonomy.cdm.api.application
index 93df380..44ac1e9 100644 (file)
@@ -25,15 +25,15 @@ bin.includes = META-INF/,\
                lib/batik-util-1.7.jar,\
                lib/batik-xml-1.7.jar,\
                lib/c3p0-0.9.5.2.jar,\
-               lib/cdmlib-commons-4.3.0.jar,\
-               lib/cdmlib-ext-4.3.0.jar,\
-               lib/cdmlib-io-4.3.0.jar,\
-               lib/cdmlib-model-4.3.0.jar,\
-               lib/cdmlib-persistence-4.3.0.jar,\
-               lib/cdmlib-print-4.3.0.jar,\
-               lib/cdmlib-remote-4.3.0.jar,\
-               lib/cdmlib-services-4.3.0.jar,\
-               lib/cdmlib-test-4.3.0.jar,\
+               lib/cdmlib-commons-4.4.0.jar,\
+               lib/cdmlib-ext-4.4.0.jar,\
+               lib/cdmlib-io-4.4.0.jar,\
+               lib/cdmlib-model-4.4.0.jar,\
+               lib/cdmlib-persistence-4.4.0.jar,\
+               lib/cdmlib-print-4.4.0.jar,\
+               lib/cdmlib-remote-4.4.0.jar,\
+               lib/cdmlib-services-4.4.0.jar,\
+               lib/cdmlib-test-4.4.0.jar,\
                lib/cglib-3.2.0.jar,\
                lib/cglib-nodep-3.2.0.jar,\
                lib/classmate-1.3.1.jar,\
@@ -160,7 +160,6 @@ bin.includes = META-INF/,\
                lib/opencsv-2.3.jar,\
                lib/org.osgi.core-1.0.0.jar,\
                lib/osgi-3.6.0.jar,\
-               lib/p6spy-2.1.4.jar,\
                lib/paranamer-2.3.jar,\
                lib/plexus-classworlds-1.2-alpha-9.jar,\
                lib/plexus-component-annotations-1.5.5.jar,\
@@ -243,7 +242,8 @@ bin.includes = META-INF/,\
                lib/xpp3-1.1.4c.jar,\
                lib/xsom-20140925.jar,\
                lib/xstream-1.4.8.jar,\
-               lib/yjp-controller-api-redist-9.0.8.jar
+               lib/yjp-controller-api-redist-9.0.8.jar,\
+               lib/spring-security-oauth2-2.0.11.RELEASE.jar
 
 jars.compile.order = .
 output.. = bin/
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/p6spy-2.1.4.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/p6spy-2.1.4.jar
deleted file mode 100644 (file)
index 7bf6273..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/p6spy-2.1.4.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-oauth2-2.0.11.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-oauth2-2.0.11.RELEASE.jar
new file mode 100644 (file)
index 0000000..a0a9a4e
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-oauth2-2.0.11.RELEASE.jar differ
index b285179..b1830c2 100644 (file)
@@ -4,7 +4,7 @@
   <parent>\r
     <groupId>eu.etaxonomy</groupId>\r
     <artifactId>taxeditor-parent</artifactId>\r
-    <version>4.3.0</version>\r
+    <version>4.4.0</version>\r
   </parent>\r
   <modelVersion>4.0.0</modelVersion>\r
   <artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
index fa54dfb..2579773 100644 (file)
Binary files a/eu.etaxonomy.taxeditor.cdmlib/resources/cdm.map.ser and b/eu.etaxonomy.taxeditor.cdmlib/resources/cdm.map.ser differ
index 6297b5b..097c3b4 100644 (file)
@@ -5,7 +5,6 @@ import javax.sql.DataSource;
 import org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl;
 
 import eu.etaxonomy.cdm.database.CdmDataSource;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 
 /**
  * This is a very preliminary class to get the model cache running. Need to better understand how 
@@ -25,7 +24,7 @@ public class CdmModelCacherConnectionProvider extends DatasourceConnectionProvid
                String database = "xyz";
                String path = "C:\\Users\\a.mueller\\.cdmLibrary\\writableResources\\h2\\LocalH2_" + database;
         String username = "sa";
-        CdmDataSource dataSource = CdmDataSource.NewH2EmbeddedInstance("cdmTest", username, "", path,   NomenclaturalCode.ICNAFP);
+        CdmDataSource dataSource = CdmDataSource.NewH2EmbeddedInstance("cdmTest", username, "", path);
         return dataSource;
        }
        
index e40e362..3e7f334 100644 (file)
@@ -29,13 +29,13 @@ import eu.etaxonomy.cdm.config.CdmPersistentSourceUtils;
 import eu.etaxonomy.cdm.config.CdmPersistentXMLSource;
 import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
 import eu.etaxonomy.cdm.config.ICdmPersistentSource;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 
 /**
  * Class representing a CDM remote source which can be persisted to a source config file
  *
  */
 public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements ICdmPersistentSource{
+       @SuppressWarnings("unused")
        private static final Logger logger = Logger.getLogger(CdmPersistentRemoteSource.class);
 
        public static final String REMOTESOURCE_BEAN_POSTFIX = "RemoteSource";
@@ -98,15 +98,8 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                if(!cdmSourceProperties.containsKey(CdmSourceProperties.CONTEXTPATH.toString())) {
                        throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");
                }
-               // default NomenclaturalCode is always ICNAFP
-               if(!cdmSourceProperties.containsKey(CdmSourceProperties.NOMENCLATURAL_CODE.toString())) {
-                       cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), NomenclaturalCode.ICNAFP.name());
-               }
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.config.ICdmPersistentSource#getBeanName()
-        */
        @Override
        public String getBeanName() {
                return beanName;
@@ -133,17 +126,11 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                return cdmSourceProperties.getProperty(CdmSourceProperties.CONTEXTPATH.toString());
        }
 
-       @Override
-       public NomenclaturalCode getNomenclaturalCode() {
-               return NomenclaturalCode.fromString(cdmSourceProperties.getProperty(CdmSourceProperties.NOMENCLATURAL_CODE.toString()));
-       }
-
        public static CdmPersistentRemoteSource save(String strRemoteSourceName, ICdmRemoteSource remoteSource) throws CdmRemoteSourceException {
                Properties cdmSourceProperties = new Properties();
                cdmSourceProperties.put(CdmSourceProperties.SERVER.toString(), remoteSource.getServer());
                cdmSourceProperties.put(CdmSourceProperties.PORT.toString(), String.valueOf(remoteSource.getPort()));
                cdmSourceProperties.put(CdmSourceProperties.CONTEXTPATH.toString(), remoteSource.getContextPath());
-               cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), remoteSource.getNomenclaturalCode().name());
                checkProperties(cdmSourceProperties);
                return save(strRemoteSourceName, cdmSourceProperties);
        }
index 473cdca..ed950a4 100644 (file)
@@ -27,7 +27,7 @@ public class CdmRemoteSource extends CdmRemoteSourceBase {
         * @return
         */
        public static CdmRemoteSource NewInstance() {
-               return new CdmRemoteSource(DEFAULT_NAME, DEFAULT_SERVER, DEFAULT_PORT, DEFAULT_CONTEXT_PATH, DEFAULT_NOMENCLATURAL_CODE);
+               return new CdmRemoteSource(DEFAULT_NAME, DEFAULT_SERVER, DEFAULT_PORT, DEFAULT_CONTEXT_PATH);
        }
        
        /**
@@ -40,8 +40,8 @@ public class CdmRemoteSource extends CdmRemoteSourceBase {
         * @param nomenclaturalCode
         * @return
         */
-       public static CdmRemoteSource NewInstance(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
-               return new CdmRemoteSource(name, server, port, contextPath, nomenclaturalCode);
+       public static CdmRemoteSource NewInstance(String name, String server, int port, String contextPath) {
+               return new CdmRemoteSource(name, server, port, contextPath);
        }
        
        /**
@@ -53,8 +53,8 @@ public class CdmRemoteSource extends CdmRemoteSourceBase {
         * @param contextPath
         * @param nomenclaturalCode
         */
-       private CdmRemoteSource(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) { 
-               super(name, server, port, contextPath, nomenclaturalCode);
+       private CdmRemoteSource(String name, String server, int port, String contextPath) { 
+               super(name, server, port, contextPath);
                
        }
 
index 59c24ea..b349a4b 100644 (file)
@@ -15,7 +15,6 @@ import eu.etaxonomy.cdm.api.service.IMetadataService;
 import eu.etaxonomy.cdm.config.CdmSource;
 import eu.etaxonomy.cdm.config.CdmSourceException;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 
 /**
  * Base class representing a CDM remote source.
@@ -29,7 +28,6 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
        protected static final String DEFAULT_SERVER = "127.0.0.1";
        protected static final int DEFAULT_PORT = 8080;
        protected static final String DEFAULT_CONTEXT_PATH = "";
-       protected static final NomenclaturalCode DEFAULT_NOMENCLATURAL_CODE = NomenclaturalCode.ICNAFP;
        private String contextPath;
        private String baseUrl;
 
@@ -44,7 +42,6 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
                setServer(DEFAULT_SERVER);
                setPort(DEFAULT_PORT);
                setContextPath(DEFAULT_CONTEXT_PATH);
-               setNomenclaturalCode(DEFAULT_NOMENCLATURAL_CODE);
        }
 
        /**
@@ -56,19 +53,14 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
         * @param contextPath
         * @param nomenclaturalCode
         */
-       public CdmRemoteSourceBase(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+       public CdmRemoteSourceBase(String name, String server, int port, String contextPath) {
                setName(name);
                setServer(server);
                setPort(port);
                setContextPath(contextPath);
-               setNomenclaturalCode(nomenclaturalCode);
                metadataService = CdmApplicationRemoteConfiguration.getMetadataService(this);
        }
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getBaseUrl()
-        */
        @Override
        public String getBaseUrl() {
                return baseUrl;
@@ -86,9 +78,6 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
                this.baseUrl = baseUrl;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getContextPath()
-        */
        @Override
        public String getContextPath() {
                return contextPath;
@@ -105,27 +94,18 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
                this.contextPath = contextPath;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.config.CdmSource#getDbSchemaVersion()
-        */
        @Override
        public String getDbSchemaVersion() throws CdmSourceException {
                return metadataService.getDbSchemaVersion();
 
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.config.CdmSource#isDbEmpty()
-        */
        @Override
        public boolean isDbEmpty() throws CdmSourceException {
                return metadataService.isDbEmpty();
 
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.config.CdmSource#checkConnection()
-        */
        @Override
        public boolean checkConnection() throws CdmSourceException {
                // assuming that database service works implies
@@ -138,9 +118,6 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
                return true;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.config.CdmSource#getConnectionMessage()
-        */
        @Override
        public String getConnectionMessage() {
                return "Connecting to Remote CDM Instance " + getName() + ":" + getPort() + "/" + getContextPath();
@@ -152,5 +129,4 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
                return metadataService.getCdmMetadataMap();
        }
 
-
 }
index 2a5f815..d54986b 100644 (file)
@@ -255,8 +255,8 @@ public class CdmServerInfo {
             return CdmRemoteSource.NewInstance(name,
                     server,
                     port,
-                    instance.getBasePath(),
-                    null);
+                    instance.getBasePath()
+                    );
         }
         return null;
     }
index 491b203..56a8e35 100644 (file)
 \r
       <!-- Taxon Package -->\r
       <mapping class="eu.etaxonomy.cdm.model.taxon.Synonym"/>\r
-      <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationship"/>\r
-      <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymType"/>\r
       <mapping class="eu.etaxonomy.cdm.model.taxon.Taxon"/>\r
       <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonBase"/>\r
       <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonNode"/>\r
index cf3616e..82e8880 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Editor Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 4.3.0
+Bundle-Version: 4.4.0
 Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: OSGI-INF/l10n/plugin
index b069ba2..3519191 100644 (file)
@@ -42,6 +42,9 @@ OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND=No Derivatives found
 DeleteTaxonBaseHandler_CONFIRM_DELETION=Confirm Deletion
 DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT=Element has to be Synonym, Misapplication or Concept
 DeleteTaxonBaseHandler_REALLY_DELETE_TAXON=Are you sure you want to delete the selected taxon?
+DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM=Are you sure you want to delete the selected synoym, this is irreversible?
+DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=The Synonym could be deleted, but related object(s) could not be deleted
+DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=The misapplied name could be deleted, but related object(s) could not be deleted
 
 DescriptiveViewPart_COLLAPSE_ALL=Collapse All
 DescriptiveViewPart_EXPAND_ALL=Expand All
index f252b7d..dd77383 100644 (file)
@@ -40,8 +40,12 @@ OpenDerivateEditorForTaxonHandler_HIERARCHY_CORRUPTED=Die Derivathierarchie ist
 OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND=Keine Derivate gefunden
 
 DeleteTaxonBaseHandler_CONFIRM_DELETION=Löschen bestätigen
-DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT=Element muss Synonym, Misapplication oder Konzept sein
+DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT=Element muss Synonym, Misapplikation oder Konzept sein
 DeleteTaxonBaseHandler_REALLY_DELETE_TAXON=Wollen Sie wirklich das ausgewählte Taxon löschen?
+DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM=Wollen Sie das ausgewählte Synonym wirklich löschen, dieser Vorgang ist nicht reversibel.
+DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=Das Synonym konnte gelöscht werden, aber es gibt noch verknüpfte Objekte, die nicht gelöscht werden konnten.
+DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=Die Misapplikation konnte gelöscht werden, aber es gibt noch verknüpfte Objekte, die nicht gelöscht werden konnten.
+
 
 DescriptiveViewPart_COLLAPSE_ALL=Alles einklappen
 DescriptiveViewPart_EXPAND_ALL=Alles ausklappen
index 14420cb..24a5da7 100644 (file)
@@ -45,6 +45,7 @@ command.label.22 = Apply Layout
 command.label.23 = New Key Number\r
 command.label.24 = New Alternative\r
 command.label.25 = Refresh Nodes\r
+command.label.58 = Insert Node\r
 command.label.26 = Delete\r
 command.label.27 = New Factual Data\r
 menu.label.1 = New\r
@@ -105,6 +106,7 @@ category.name.5 = -- Polytomous Keys
 command.name.28 = New Child Node\r
 command.name.29 = New Sibling Node\r
 command.name.30 = Refresh Node Numbering\r
+command.name.58 = Insert New Node\r
 command.name.31 = Apply Layout\r
 category.name.6 = -- Concept Relations\r
 command.name.32 = Create Concept Relation\r
index d44bd77..f9b5a93 100644 (file)
                name="taxeditor-editor.separator2"
                visible="true">
          </separator>
-         <dynamic
+        <!-- <dynamic
                class="eu.etaxonomy.taxeditor.editor.name.handler.GroupBasionymContributionItem"
                id="taxeditor-editor.dynamic.setBasionym">
             <visibleWhen>
                   </reference>
                </or>
             </visibleWhen>
-         </dynamic>
+         </dynamic>-->
          <command
                commandId="eu.etaxonomy.taxeditor.editor.name.swapSynonymAndAccepted"
                label="%command.label.17"
                style="push">
          </command>
          <command
+               commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.node"
+               label="%command.label.58"
+               style="push">
+         </command>
+         <command
                commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.sibling"
                label="%command.label.24"
                style="push">
          </command>
-         <dynamic
+       <!--  <dynamic
                class="eu.etaxonomy.taxeditor.view.CdmViewerContextMenu"
                id="eu.etaxonomy.taxeditor.editor.polytomous.list.cdmViewerContextMenu">
-         </dynamic>
+         </dynamic>-->
          <command
                commandId="eu.etaxonomy.taxeditor.key.polytomous.command.refresh"
                label="%command.label.25"
       </handler>
       <handler
             class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.DeleteNodeHandler"
-            commandId="eu.etaxonomy.taxeditor.editor.key.polytomous.command.delete">
+            commandId="eu.etaxonomy.taxeditor.key.polytomous.command.delete">
          <activeWhen>
-            <with
+           <with
                   variable="activePartId">
                <equals
                      value="eu.etaxonomy.taxeditor.editor.key">
                </equals>
             </with>
          </activeWhen>
+         <enabledWhen>
+            <with
+                  variable="selection">
+               <test
+                     property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+               </test>
+            </with>
+         </enabledWhen>
       </handler>
       <handler
             class="eu.etaxonomy.taxeditor.editor.view.concept.handler.DeleteConceptRelationHandler"
       <handler
             class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RemotingCreateChildPolytomousKeyNodeHandler"
             commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.child">
-         <activeWhen>
+        <activeWhen>
             <reference
                   definitionId="isRemoting">
             </reference>
          </activeWhen>
       </handler>
+       <handler
+            class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.InsertNewNodeHandler"
+            commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.node">
+          <enabledWhen>
+             <with
+                   variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+            </test>
+         
+             </with>
+          </enabledWhen>
+      </handler>
       <handler
             class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RemotingCreateSiblingPolytomousKeyNodeHandler"
             commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.sibling">
          <activeWhen>
-            <reference
-                  definitionId="isRemoting">
-            </reference>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="eu.etaxonomy.taxeditor.editor.key">
+               </equals>
+            </with>
          </activeWhen>
+         <enabledWhen>
+             <with
+                   variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+            </test>
+         
+             </with>
+          </enabledWhen>
       </handler>
       <handler
             class="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
             </and>
          </activeWhen>
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RefreshNodeNumberingHandler"
+            commandId="eu.etaxonomy.taxeditor.key.polytomous.command.refresh">
+         <enabledWhen>
+            <with
+                  variable="selection">
+               <test
+                     property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+               </test>
+            </with>
+         </enabledWhen>
+      </handler>
    </extension>
    <extension
          name="%extension.name"
             id="eu.etaxonomy.taxeditor.editor.name.createMisapplication"
             name="%command.name.36">
       </command>
-      <!--command
+    <!--  <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.MoveTaxonHandler"
             id="eu.etaxonomy.taxeditor.editor.name.moveTaxon"
             name="Move Taxon">
-      </command-->
+      </command>-->
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.ChangeToSynonymHandler"
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.key.category"
-            defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.CreateChildNodeHandler"
+           
             id="eu.etaxonomy.taxeditor.key.polytomous.command.new.child"
             name="%command.name.28">
       </command>
-      <command
+       <command
             categoryId="eu.etaxonomy.taxeditor.editor.key.category"
-            defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.CreateSiblingNodeHandler"
+            
+            id="eu.etaxonomy.taxeditor.key.polytomous.command.new.node"
+            name="%command.name.58">
+      </command>
+        <command
+             categoryId="eu.etaxonomy.taxeditor.editor.key.category"
             id="eu.etaxonomy.taxeditor.key.polytomous.command.new.sibling"
             name="%command.name.29">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.key.category"
-            defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RefreshNodeNumberingHandler"
+           
             id="eu.etaxonomy.taxeditor.key.polytomous.command.refresh"
             name="%command.name.30">
       </command>
             name="%command.name.31">
       </command>
       <command
-            defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.DeleteNodeHandler"
+            categoryId="eu.etaxonomy.taxeditor.editor.key.category"
             id="eu.etaxonomy.taxeditor.key.polytomous.command.delete"
             name="%command.name.50">
       </command>
                property="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester.isRemoting">
          </test>
       </definition>
+       <definition
+            id="isKeyNode">
+          <with
+                variable="selection">
+             <test
+                   property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+             </test>
+          </with>
+      </definition>
       <definition
             id="isSequence">
          <with
             id="eu.etaxonomy.taxeditor.editor.name.propertyTester"
             namespace="eu.etaxonomy.taxeditor.editor.name.propertyTester"
             properties="isAcceptedTaxon,isSynonym,isMisapplication,isTaxonBase,hasEmptyNames,isAcceptedAndHasNoHomotypicSynonyms,isNotHomotypicSynonymOfAcceptedTaxon,isSynonymInHomotypicalGroupWithMoreSynonyms,isOrphaned"
-            type="org.eclipse.jface.viewers.IStructuredSelection">
+            type="java.lang.Object">
       </propertyTester>
       <propertyTester
             class="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.DescriptionsMenuPropertyTester"
             properties="isLinkedWithTaxonSelection"
             type="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
       </propertyTester>
+      <propertyTester
+            class="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester"
+            id="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester"
+            namespace="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester"
+            properties="isKeyNode"
+            type="org.eclipse.jface.viewers.IStructuredSelection">
+      </propertyTester>
    </extension>
    <extension
          point="org.eclipse.ui.bindings">   
index bf94d7a..2842c6b 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-    <version>4.3.0</version>
+    <version>4.4.0</version>
   </parent>
   
   <modelVersion>4.0.0</modelVersion>
index eab20bc..886bb28 100644 (file)
@@ -39,6 +39,11 @@ public class Messages extends NLS {
     public static String DeleteTaxonBaseHandler_CONFIRM_DELETION;
     public static String DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT;
     public static String DeleteTaxonBaseHandler_REALLY_DELETE_TAXON;
+    public static String DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM;
+    public static String DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS;
+    public static String DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS;
+
+
     public static String DerivateDropListener_MOVE_TO;
     public static String DerivateView_DERIVATIVE_EDITOR;
     public static String DerivateView_SAVING_HIERARCHY;
index 4d23e94..6887838 100644 (file)
@@ -23,6 +23,9 @@ import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.forms.editor.FormEditor;
 
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -145,7 +148,10 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
             // commit the conversation and start a new transaction immediately
 
             input.merge();
+            
             conversation.commit(true);
+            CdmApplicationState.getCurrentDataChangeService()
+            .fireChangeEvent(new CdmChangeEvent(Action.Update, input.getTaxonNode() , MultiPageTaxonEditor.class), true);
             monitor.worked(1);
 
             this.setDirty(false);
index 98481d4..782cd3d 100644 (file)
@@ -131,7 +131,11 @@ public class TaxonEditorInput  extends CdmEntitySessionInput implements IEditorI
             }else if(taxonBase instanceof Synonym){
                 Synonym synonym = (Synonym) taxonBase;
 
-                Set<Taxon> taxa = synonym.getAcceptedTaxa();
+                Set<Taxon> taxa = new HashSet<>();
+                Taxon taxon = synonym.getAcceptedTaxon();
+                if (taxon != null){
+                       taxa.add(taxon);
+                }
                 setInputForMultipleTaxa(conversation, taxa);
             }
         }
index 73d4598..fcc0122 100644 (file)
@@ -14,11 +14,6 @@ import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.IHandler;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
  * <p>OpenParentHandler class.</p>
index 82ee611..74b47bf 100644 (file)
@@ -18,7 +18,10 @@ public interface PolytomousKeyEditorLabels {
 
     public static final String CREATE_CHILD_POLYTOMOUS_KEY_NODE_LABEL = "Create Child Polytomous Key Node";
     public static final String CREATE_SIBLING_POLYTOMOUS_KEY_NODE_LABEL = "Create Sibling Polytomous Key Node";
+    public static final String INSERT_NODE_POLYTOMOUS_KEY_NODE_LABEL = "Insert Node Polytomous Key Node";
+    public static final String DELETE_NODE_POLYTOMOUS_KEY_NODE_LABEL = "Insert Node Polytomous Key Node";
 
     public static final String NO_KEY_NODE_FOR_CHILD_SELECTED_MESSAGE = "No Key Node Selected.Please right-click on a specific key node to create a new child key node.";
     public static final String NO_KEY_NODE_FOR_SIBLING_SELECTED_MESSAGE = "No Key Node Selected.Please right-click on a specific key node to create a new sibling key node.";
-}
+    public static final String NO_KEY_NODE_FOR_INSERT_NODE_SELECTED_MESSAGE = "No Key Node Selected.Please right-click on a specific key node to create a new key node.";
+    }
index 2f25753..780d871 100644 (file)
@@ -16,6 +16,7 @@ import java.util.List;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
+import eu.etaxonomy.cdm.hibernate.HHH_9751_Util;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 
 /**
@@ -74,6 +75,7 @@ public class PolytomousKeyListContentProvider implements
            }
                if (!node.getChildren().isEmpty()) {
                        result.addAll(node.getChildren());
+                       HHH_9751_Util.removeAllNull(result);
                        for (PolytomousKeyNode internalNode : node.getChildren()) {
                                getChildrenBreadthFirst(result, internalNode);
                        }
index 308f925..8dcc87f 100644 (file)
@@ -38,6 +38,7 @@ import org.eclipse.ui.part.EditorPart;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
@@ -261,7 +262,8 @@ public class PolytomousKeyListEditor extends EditorPart implements
 
                PolytomousKey key = ((PolytomousKeyEditorInput) getEditorInput())
                                .getKey();
-
+               key = HibernateProxyHelper.deproxy(key, PolytomousKey.class);
+               key.setRoot(HibernateProxyHelper.deproxy(key.getRoot(), PolytomousKeyNode.class));
                setPartName(key.getTitleCache());
 
                viewer.setInput(getEditorInput());
@@ -330,6 +332,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
        public void changed(Object element) {
         if(element != null) {
             viewer.update(element, null);
+
         }
 
         if (element instanceof PolytomousKeyNode) {
@@ -339,7 +342,9 @@ public class PolytomousKeyListEditor extends EditorPart implements
                 viewer.update(child, null);
             }
         }
+
         viewer.refresh();
+
        }
 
     /* (non-Javadoc)
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyPropertyTester.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyPropertyTester.java
new file mode 100755 (executable)
index 0000000..1964e04
--- /dev/null
@@ -0,0 +1,46 @@
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.key.polytomous;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+
+/**
+ * @author k.luther
+ * @date 23.11.2016
+ *
+ */
+public class PolytomousKeyPropertyTester extends PropertyTester {
+    private static final String KEYNODE = "isKeyNode";
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+        if(receiver instanceof IStructuredSelection){
+
+            IStructuredSelection selection = (IStructuredSelection) receiver;
+
+            Object selectedElement = selection.getFirstElement();
+            if(KEYNODE.equals(property)){
+                return isKeyNode(selectedElement);
+            }
+        }
+        return false;
+    }
+
+    private boolean isKeyNode(Object selectedElement) {
+        return (selectedElement instanceof PolytomousKeyNode) ? true : false;
+    }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/AbstractPolytomousKeyNodeHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/AbstractPolytomousKeyNodeHandler.java
new file mode 100755 (executable)
index 0000000..4fa94a0
--- /dev/null
@@ -0,0 +1,35 @@
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.key.polytomous.handler;
+
+import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
+
+/**
+ * @author k.luther
+ * @date 24.11.2016
+ *
+ */
+public abstract class AbstractPolytomousKeyNodeHandler extends RemotingCdmHandler {
+
+
+    IPolytomousKeyEditorPage editorPage;
+
+    /**
+     * @param label
+     */
+    public AbstractPolytomousKeyNodeHandler(String label) {
+        super(label);
+        // TODO Auto-generated constructor stub
+    }
+
+
+
+
+}
index 4fc42da..2e5e72f 100644 (file)
@@ -1,47 +1,64 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
 
 package eu.etaxonomy.taxeditor.editor.key.polytomous.handler;
 
-import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.commands.operations.AbstractOperation;
 import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.handlers.HandlerUtil;
 
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.DeleteNodeOperation;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
  * @created Dec 6, 2010
  * @version 1.0
  */
-public class DeleteNodeHandler extends AbstractHandler {
+public class DeleteNodeHandler extends AbstractPolytomousKeyNodeHandler {
+
+
+    PolytomousKeyNode nodeToBeDeleted;
+    /**
+     * @param label
+     */
+    public DeleteNodeHandler(String label) {
+        super(label);
+
+    }
+
+
+
+    public DeleteNodeHandler() {
+        super(PolytomousKeyEditorLabels.DELETE_NODE_POLYTOMOUS_KEY_NODE_LABEL);
+    }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
         * ExecutionEvent)
@@ -73,7 +90,7 @@ public class DeleteNodeHandler extends AbstractHandler {
 
                                        for (Object element : selection.toArray()) {
                                                PolytomousKeyNode keyNode = HibernateProxyHelper.deproxy(element, PolytomousKeyNode.class);
-                                               
+
                                                AbstractPostOperation operation = new DeleteNodeOperation(
                                                                label, undoContext, keyNode, editorPage);
                                                EditorUtil.executeOperation(operation);
@@ -86,11 +103,62 @@ public class DeleteNodeHandler extends AbstractHandler {
                        MessageDialog.openInformation(
                                EditorUtil.getShell(),
                                "No Key Node Selected",
-                               "Please right-click on a specific key node to delete a key node.");                 
-                       }                       
+                               "Please right-click on a specific key node to delete a key node.");
+                       }
                }
 
                return null;
        }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public IStatus allowOperations(ExecutionEvent event) {
+        IEditorPart editor = HandlerUtil.getActiveEditor(event);
+
+        if (editor instanceof KeyEditor) {
+            editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+                    .getActiveEditor();
+
+            if (editorPage instanceof PolytomousKeyListEditor) {
+                PolytomousKeyListEditor klEditor = (PolytomousKeyListEditor) editorPage;
+                IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+                    if (selection.getFirstElement() instanceof PolytomousKeyNode) {
+                        nodeToBeDeleted = (PolytomousKeyNode) selection.getFirstElement();
+                    } else {
+                        return new Status(IStatus.ERROR,
+                                "unknown",
+                                PolytomousKeyEditorLabels.NO_KEY_NODE_FOR_CHILD_SELECTED_MESSAGE);
+                    }
+                }
+
+        }
+        return Status.OK_STATUS;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public AbstractOperation prepareOperation(ExecutionEvent event) {
+        IUndoContext undoContext = EditorUtil.getUndoContext();
+        String label = "";
+        try {
+            label = event.getCommand().getName();
+        } catch (NotDefinedException e) {
+            MessagingUtils.warn(getClass(), "Command name not set.");
+        }
+        return new DeleteNodeOperation(label, undoContext, nodeToBeDeleted, editorPage);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onComplete() {
+        // TODO Auto-generated method stub
+
+    }
+
 }
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/InsertNewNodeHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/InsertNewNodeHandler.java
new file mode 100755 (executable)
index 0000000..62fce56
--- /dev/null
@@ -0,0 +1,91 @@
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.key.polytomous.handler;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.InsertPolytomousKeyNodeOperation;
+
+/**
+ * @author k.luther
+ * @date 17.11.2016
+ *
+ */
+public class InsertNewNodeHandler extends AbstractPolytomousKeyNodeHandler{
+
+    private PolytomousKeyNode parentNode ;
+
+
+    public InsertNewNodeHandler() {
+        super(PolytomousKeyEditorLabels.INSERT_NODE_POLYTOMOUS_KEY_NODE_LABEL);
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public IStatus allowOperations(ExecutionEvent event) {
+        IEditorPart editor = HandlerUtil.getActiveEditor(event);
+
+        if (editor instanceof KeyEditor) {
+            editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+                    .getActiveEditor();
+
+            if (editorPage instanceof PolytomousKeyListEditor) {
+                PolytomousKeyListEditor klEditor = (PolytomousKeyListEditor) editorPage;
+                if(klEditor.getTableItemCount() == 0) {
+                    PolytomousKey pk = klEditor.getViewerInputKey();
+                    parentNode = pk.getRoot();
+
+                } else {
+                    IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+                    if (selection.getFirstElement() instanceof PolytomousKeyNode) {
+                        parentNode = ((PolytomousKeyNode) selection.getFirstElement()).getParent();
+                    } else {
+                        return new Status(IStatus.ERROR,
+                                "unknown",
+                                PolytomousKeyEditorLabels.NO_KEY_NODE_FOR_CHILD_SELECTED_MESSAGE);
+                    }
+                }
+            }
+        }
+        return Status.OK_STATUS;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public AbstractOperation prepareOperation(ExecutionEvent event) {
+        return new InsertPolytomousKeyNodeOperation(event.getTrigger(), false, parentNode, editorPage);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onComplete() {
+        // TODO Auto-generated method stub
+
+    }
+
+}
index 1d679a8..a182ce6 100644 (file)
@@ -24,16 +24,17 @@ import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.RemotingCreatePolytomousKeyNodeOperation;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
 
 /**
  * @author cmathew
  * @date 21 Jul 2015
  *
  */
-public class RemotingCreateChildPolytomousKeyNodeHandler extends RemotingCdmHandler {
+public class RemotingCreateChildPolytomousKeyNodeHandler extends AbstractPolytomousKeyNodeHandler {
 
     private PolytomousKeyNode parentNode;
+    IPolytomousKeyEditorPage editorPage;
+
 
     public RemotingCreateChildPolytomousKeyNodeHandler() {
         super(PolytomousKeyEditorLabels.CREATE_CHILD_POLYTOMOUS_KEY_NODE_LABEL);
@@ -46,7 +47,7 @@ public class RemotingCreateChildPolytomousKeyNodeHandler extends RemotingCdmHand
         IEditorPart editor = HandlerUtil.getActiveEditor(event);
 
         if (editor instanceof KeyEditor) {
-            IPolytomousKeyEditorPage editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+            editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
                     .getActiveEditor();
 
             if (editorPage instanceof PolytomousKeyListEditor) {
@@ -75,7 +76,7 @@ public class RemotingCreateChildPolytomousKeyNodeHandler extends RemotingCdmHand
      */
     @Override
     public AbstractOperation prepareOperation(ExecutionEvent event) {
-        return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode);
+        return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode, editorPage);
     }
 
     /* (non-Javadoc)
@@ -83,8 +84,10 @@ public class RemotingCreateChildPolytomousKeyNodeHandler extends RemotingCdmHand
      */
     @Override
     public void onComplete() {
-        // TODO Auto-generated method stub
+
 
     }
 
+
+
 }
index 7f726a8..0cb48e6 100644 (file)
@@ -14,22 +14,25 @@ import org.eclipse.core.commands.operations.AbstractOperation;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.RemotingCreatePolytomousKeyNodeOperation;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
 
 /**
  * @author cmathew
  * @date 21 Jul 2015
  *
  */
-public class RemotingCreateSiblingPolytomousKeyNodeHandler extends RemotingCdmHandler {
+public class RemotingCreateSiblingPolytomousKeyNodeHandler extends AbstractPolytomousKeyNodeHandler {
 
     private PolytomousKeyNode parentNode;
 
+
     public RemotingCreateSiblingPolytomousKeyNodeHandler() {
         super(PolytomousKeyEditorLabels.CREATE_SIBLING_POLYTOMOUS_KEY_NODE_LABEL);
     }
@@ -38,9 +41,10 @@ public class RemotingCreateSiblingPolytomousKeyNodeHandler extends RemotingCdmHa
      */
     @Override
     public IStatus allowOperations(ExecutionEvent event) {
-
+        IEditorPart editor = HandlerUtil.getActiveEditor(event);
         IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
-
+        editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+                .getActiveEditor();
         if (selection.getFirstElement() instanceof PolytomousKeyNode) {
             parentNode = (PolytomousKeyNode) selection.getFirstElement();
         } else {
@@ -57,7 +61,7 @@ public class RemotingCreateSiblingPolytomousKeyNodeHandler extends RemotingCdmHa
      */
     @Override
     public AbstractOperation prepareOperation(ExecutionEvent event) {
-        return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode.getParent());
+        return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode.getParent(), editorPage);
     }
 
     /* (non-Javadoc)
index 684d8ee..e4a4066 100644 (file)
@@ -16,7 +16,7 @@ import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -24,14 +24,15 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author n.hoffmann
  *
  */
-public class DeleteNodeOperation extends AbstractPostTaxonOperation {
+public class DeleteNodeOperation extends AbstractPostOperation<PolytomousKeyNode> {
 
        private final PolytomousKeyNode parent;
        private final PolytomousKeyNode node;
 
+
        public DeleteNodeOperation(String label, IUndoContext undoContext,
                        PolytomousKeyNode node, IPostOperationEnabled postOperationEnabled) {
-               super(label, undoContext, postOperationEnabled);
+           super(label, undoContext, node, postOperationEnabled);
                this.node = node;
                this.parent = node.getParent();
        }
@@ -63,7 +64,7 @@ public class DeleteNodeOperation extends AbstractPostTaxonOperation {
                } else{
                        result = service.delete(node.getUuid(), true);
                }
-               
+
                if (!result.isOk() || result.getExceptions().size() > 0){
                        Exception t = new Exception();
                        if (result.getExceptions().size() >1){
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/InsertPolytomousKeyNodeOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/InsertPolytomousKeyNodeOperation.java
new file mode 100755 (executable)
index 0000000..5a95d4e
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.key.polytomous.operation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmDefaultOperation;
+
+/**
+ * @author k.luther
+ * @date 17.11.2016
+ *
+ */
+public class InsertPolytomousKeyNodeOperation extends RemotingCdmDefaultOperation  {
+
+    private final PolytomousKeyNode parentNode;
+
+    private final static String LABEL = "Insert new polytomous key node";
+
+    /**
+    *
+    */
+   protected IPostOperationEnabled postOperationEnabled;
+
+    /**
+     * @param label
+     * @param action
+     * @param source
+     * @param async
+     */
+    public InsertPolytomousKeyNodeOperation(Object source,
+            boolean async,
+            PolytomousKeyNode parentNode, IPostOperationEnabled postOperationEnabled) {
+        super(LABEL, Action.Create, source, async);
+        this.parentNode = parentNode;
+        this.postOperationEnabled = postOperationEnabled;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected CdmBase doSimpleExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
+        PolytomousKeyNode childNode = PolytomousKeyNode.NewInstance();
+        List<PolytomousKeyNode> newChildren = parentNode.getChildren();
+        List<PolytomousKeyNode> copy = new ArrayList<PolytomousKeyNode>();
+        for (PolytomousKeyNode node: newChildren) {
+            copy.add(node);
+        }
+        parentNode.addChild(childNode, 0);
+        for (PolytomousKeyNode node: copy){
+           childNode.addChild(node);
+        }
+        this.postOperationEnabled.postOperation(childNode);
+        return childNode;
+    }
+
+}
index c63350e..57a44bd 100644 (file)
@@ -15,6 +15,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.operation.RemotingCdmDefaultOperation;
 
 /**
@@ -25,14 +26,24 @@ import eu.etaxonomy.taxeditor.operation.RemotingCdmDefaultOperation;
 public class RemotingCreatePolytomousKeyNodeOperation extends RemotingCdmDefaultOperation {
 
     private final PolytomousKeyNode parentNode;
+    private PolytomousKeyNode childNode;
+    /**
+    *
+    */
+   protected IPostOperationEnabled postOperationEnabled;
+
+    public PolytomousKeyNode getChildNode() {
+        return childNode;
+    }
 
     private final static String LABEL = "Create new polytomous key node";
 
     public RemotingCreatePolytomousKeyNodeOperation(Object source,
             boolean async,
-            PolytomousKeyNode parentNode){
+            PolytomousKeyNode parentNode, IPostOperationEnabled postOperationEnabled){
         super(LABEL, Action.Create, source, async);
         this.parentNode = parentNode;
+        this.postOperationEnabled = postOperationEnabled;
     }
 
     /* (non-Javadoc)
@@ -40,9 +51,18 @@ public class RemotingCreatePolytomousKeyNodeOperation extends RemotingCdmDefault
      */
     @Override
     protected CdmBase doSimpleExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
-      PolytomousKeyNode childNode = PolytomousKeyNode.NewInstance();
+      childNode = PolytomousKeyNode.NewInstance();
       parentNode.addChild(childNode);
-      return childNode;
+      if (postOperationEnabled.postOperation(childNode)){
+          return childNode;
+      }else {
+          return null;
+      }
     }
 
+
+
+
+
+
 }
index c8bccaa..661c0c7 100644 (file)
@@ -4,17 +4,13 @@
 package eu.etaxonomy.taxeditor.editor.name.dnd;
 
 import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWTException;
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.DropTargetAdapter;
 import org.eclipse.swt.dnd.DropTargetEvent;
 
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
@@ -22,7 +18,6 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.IDropTargetable;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
 import eu.etaxonomy.taxeditor.editor.name.container.AbstractHomotypicalGroupContainer;
-import eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup;
 import eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
index 5d5f449..aa01487 100644 (file)
@@ -54,9 +54,6 @@ public class ChangeSynonymToAcceptedTaxonHandler extends AbstractHandler impleme
                        .getLogger(ChangeSynonymToAcceptedTaxonHandler.class);
        private MultiPageTaxonEditor editor;
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
        /** {@inheritDoc} */
        @Override
     public Object execute(ExecutionEvent event) throws ExecutionException {
index b5851aa..6aec9f9 100644 (file)
@@ -14,22 +14,24 @@ import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.IHandler;
 import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.handlers.HandlerUtil;
 
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.DeleteResult;
+import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Messages;
 import eu.etaxonomy.taxeditor.editor.Page;
+import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
 import eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation;
 import eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.DeleteTaxonOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.DeleteTaxonBaseOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -64,58 +66,50 @@ public class DeleteTaxonBaseHandler extends AbstractHandler implements IHandler,
                } catch (NotDefinedException e) {
                        MessagingUtils.error(getClass(), e);
                }
-
+               IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
                // synonym
                if(selectedElement instanceof Synonym){
-                       operation = new DeleteSynonymOperation(commandName, editor.getUndoContext(), editor.getTaxon(), (Synonym) selectedElement, editor);
+                   if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), Messages.DeleteTaxonBaseHandler_CONFIRM_DELETION, Messages.DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM)){
+                return ;
+            }
+                       operation = new DeleteSynonymOperation(commandName, editor.getUndoContext(),  new SynonymDeletionConfigurator(), activePage, editor.getTaxon(), (Synonym) selectedElement,this, editor, (ICdmEntitySessionEnabled)editor.getEditorInput());
+
                }
                // misapplication
                else if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isMisapplication()){
                        operation = new DeleteMisapplicationOperation(commandName, editor.getUndoContext(), editor
                                        .getTaxon(), (Taxon) selectedElement, editor);
                }
-               else if (selectedElement instanceof Taxon){
-                       //TODO: how to get the actual classification
-                       if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), Messages.DeleteTaxonBaseHandler_CONFIRM_DELETION, Messages.DeleteTaxonBaseHandler_REALLY_DELETE_TAXON)){
-                               return ;
-                       }
-
-                       IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
-
-                       operation = new DeleteTaxonOperation(commandName,
-                               editor.getUndoContext(),
-                               (Taxon) selectedElement,
-                               new TaxonDeletionConfigurator(),
-                               null,
-                               activePage,
-                               this,
-                               editor,
-                               (ICdmEntitySessionEnabled)editor.getEditorInput());
-                       //editor.dispose();
-
-               }
                else {
                        throw new IllegalArgumentException(Messages.DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT);
                }
 
                AbstractUtility.executeOperation(operation);
+               DeleteResult result = ((DeleteTaxonBaseOperation)operation).getResult();
+               if (result.isError()){
+            DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteDerivateOperation_DELETE_FAILED, TaxeditorEditorPlugin.PLUGIN_ID);
+        } else if (selectedElement instanceof Synonym){
+            this.editor.redraw();
+                   if (!result.getUpdatedObjects().isEmpty()){
+                DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
+            }
+               }else {
+                   if (!result.getUpdatedObjects().isEmpty()){
+                DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
+                   }
+               }
+
        }
 
        @Override
        public boolean postOperation(CdmBase objectAffectedByOperation) {
-               Display.getDefault().asyncExec(new Runnable(){
 
-                       @Override
-            public void run() {
-                               AbstractUtility.close(editor.getMultiPageTaxonEditor());
-                       }
-               });
                return true;
        }
 
        @Override
        public boolean onComplete() {
-               // TODO Auto-generated method stub
+
                return false;
        }
 
index 3afdefc..fa85760 100644 (file)
@@ -10,8 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.name.handler;
 
-import java.util.Set;
-
 import org.eclipse.core.expressions.PropertyTester;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
@@ -51,9 +49,6 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
        public NameEditorMenuPropertyTester() {
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
-        */
        /** {@inheritDoc} */
        @Override
     public boolean test(Object receiver, String property, Object[] args,
@@ -127,10 +122,10 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
        private boolean isNotHomotypicSynonymOfAcceptedTaxon(Object selectedElement) {
                if (isSynonym(selectedElement)){
                        Synonym synonym = (Synonym) selectedElement;
-                       for (Taxon taxon:synonym.getAcceptedTaxa()){
-                               if (taxon.getHomotypicGroup().equals(synonym.getHomotypicGroup())){
-                                       return false;
-                               }
+                       Taxon taxon = synonym.getAcceptedTaxon();
+                       if (taxon != null && 
+                                       taxon.getHomotypicGroup().equals(synonym.getHomotypicGroup())){
+                               return false;
                        }
                }
                return true;
@@ -177,12 +172,7 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
                return ((Taxon) selectedElement).isOrphaned();
            }
            else if(selectedElement instanceof Synonym){
-               Set<Taxon> acceptedTaxa = ((Synonym) selectedElement).getAcceptedTaxa();
-               for (Taxon taxon : acceptedTaxa) {
-                if(!taxon.isOrphaned()){
-                    return false;
-                }
-            }
+               return ((Synonym) selectedElement).isOrphaned();
            }
            return false;
        }
index d964006..0837e4b 100644 (file)
@@ -22,7 +22,6 @@ import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
@@ -49,8 +48,6 @@ public class ChangeConceptToSynonymOperation extends
        private TaxonRelationship taxonRelationship;
        private TaxonRelationshipType oldRelationshipType;
 
-       private SynonymRelationship newSynonymRelationship;
-
        /**
         * <p>Constructor for ChangeConceptToSynonymOperation.</p>
         *
@@ -81,9 +78,6 @@ public class ChangeConceptToSynonymOperation extends
                this.homotypicalGroup = homotypicalGroup != null ? homotypicalGroup : HomotypicalGroup.NewInstance();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
@@ -107,9 +101,6 @@ public class ChangeConceptToSynonymOperation extends
                return postExecute(synonym);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
@@ -118,9 +109,6 @@ public class ChangeConceptToSynonymOperation extends
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
index 89a8bf7..3f9fd97 100644 (file)
@@ -19,7 +19,7 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.SynonymType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -29,7 +29,6 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  *
  * @author n.hoffmann
  * @created 19.01.2009
- * @version 1.0
  */
 public class ChangeHomotypicGroupOperation extends AbstractPostTaxonOperation {
 
@@ -70,9 +69,6 @@ public class ChangeHomotypicGroupOperation extends AbstractPostTaxonOperation {
                this.newHomotypicalGroup = newHomotypicalGroup != null ? newHomotypicalGroup : HomotypicalGroup.NewInstance();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
@@ -89,15 +85,16 @@ public class ChangeHomotypicGroupOperation extends AbstractPostTaxonOperation {
                monitor.worked(40);
                newHomotypicalGroup = HibernateProxyHelper.deproxy(newHomotypicalGroup, HomotypicalGroup.class);
                newHomotypicalGroup.addTypifiedName(synonymName);
-
-               if(! synonym.getAcceptedTaxa().contains(element)){
-                       for(Taxon acceptedTaxon : synonym.getAcceptedTaxa()){
-                               acceptedTaxon.removeSynonym(synonym);
+               
+               Taxon acc = synonym.getAcceptedTaxon();
+               if(acc == null || !acc.equals(element)){
+                       if(acc != null){
+                               acc.removeSynonym(synonym);
                        }
-
-                       SynonymRelationshipType type = SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF();
+                       
+                       SynonymType type = SynonymType.HETEROTYPIC_SYNONYM_OF();
                        if(newHomotypicalGroup.getTypifiedNames().contains(element.getName())){
-                               type = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF();
+                               type = SynonymType.HOMOTYPIC_SYNONYM_OF();
                        }
 
                        element.addSynonym(synonym, type);
@@ -107,9 +104,6 @@ public class ChangeHomotypicGroupOperation extends AbstractPostTaxonOperation {
                return postExecute(synonym);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
@@ -117,9 +111,6 @@ public class ChangeHomotypicGroupOperation extends AbstractPostTaxonOperation {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
index c62759b..3253f2a 100644 (file)
@@ -77,9 +77,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                //this.namesInHomotypicGroup = namesInHomotypicalGroup;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
+
        /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
@@ -89,10 +87,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                        newNode = (TaxonNode) CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym.getUuid(),
                                element.getUuid(),
                                parentNode.getUuid(),
-                               true,
-                               true,
-                               null,
-                               null).getCdmEntity();
+                               true).getCdmEntity();
                } catch (HomotypicalGroupChangeException e) {
                        MessagingUtils.warningDialog("Operation may lead to inconsistent data", getClass(), e.getMessage());
                        return postExecute(null);
@@ -116,9 +111,6 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                return postExecute(newNode);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
@@ -126,9 +118,6 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
index 2360cef..8a7b354 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.SynonymType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
@@ -38,7 +38,7 @@ public class ChangeSynonymToMisapplicationOperation extends AbstractPostTaxonOpe
 
        private final Synonym synonym;
        private Taxon misapplication;
-       private Set<SynonymRelationshipType> synonymTypes;
+       private Set<SynonymType> synonymTypes;
 
        /**
         * <p>Constructor for ChangeSynonymToMisapplicationOperation.</p>
@@ -69,7 +69,7 @@ public class ChangeSynonymToMisapplicationOperation extends AbstractPostTaxonOpe
                CdmStore.getService(ITaxonService.class).saveOrUpdate(misapplication);
                monitor.worked(20);
 
-               // store synonymRelationshipType for later undo operations
+               // store SynonymType for later undo operations
                synonymTypes = synonym.getRelationType(element);
 
                // remove synonym from taxon
@@ -113,7 +113,7 @@ public class ChangeSynonymToMisapplicationOperation extends AbstractPostTaxonOpe
                element.removeTaxon(misapplication, TaxonRelationshipType.MISAPPLIED_NAME_FOR());
 
                // add synonym to taxon
-               for (SynonymRelationshipType synonymType : synonymTypes){
+               for (SynonymType synonymType : synonymTypes){
                        element.addSynonym(synonym, synonymType);
                }
 
index c53f5d0..b247d8c 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -27,7 +27,6 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  *
  * @author n.hoffmann
  * @created 02.02.2009
- * @version 1.0
  */
 public class CreateSynonymInExistingHomotypicalGroupOperation extends
                AbstractPostTaxonOperation {
@@ -35,7 +34,7 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
        private final HomotypicalGroup group;
        private final NonViralName newSynonymName;
 
-       private SynonymRelationship synonymRelationship;
+       private Synonym synonym;
 
        /**
         * <p>Constructor for CreateSynonymInExistingHomotypicalGroupOperation.</p>
@@ -54,9 +53,6 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
                this.newSynonymName = newSynonymName;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
@@ -69,9 +65,9 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
                // Create a new synonym for the taxon
                // TODO add citations
                if(group.equals(element.getHomotypicGroup())){
-                       synonymRelationship = element.addHomotypicSynonymName(newSynonymName, null, null);
+                       synonym = element.addHomotypicSynonymName(newSynonymName);
                }else{
-                       synonymRelationship = element.addHeterotypicSynonymName(newSynonymName);
+                       synonym = element.addHeterotypicSynonymName(newSynonymName);
                }
                monitor.worked(40);
 
@@ -84,12 +80,9 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
 //                     }
 //             }
 
-               return postExecute(synonymRelationship.getSynonym());
+               return postExecute(synonym);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
@@ -97,15 +90,12 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
-               element.removeSynonymRelation(synonymRelationship);
+               element.removeSynonym(synonym);
 
                return postExecute(null);
        }
index 2ef74bc..0d1a8b8 100644 (file)
@@ -18,7 +18,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -33,13 +33,11 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 16.01.2009
- * @version 1.0
  */
 public class CreateSynonymInNewGroupOperation extends AbstractPostTaxonOperation {
 
-       // TODO replace this with TaxonNameBase
        private final TaxonNameBase newSynonymName;
-       private SynonymRelationship newSynonymRelationship;
+       private Synonym newSynonym;
 
        /**
         * <p>Constructor for CreateSynonymInNewGroupOperation.</p>
@@ -57,9 +55,6 @@ public class CreateSynonymInNewGroupOperation extends AbstractPostTaxonOperation
                this.newSynonymName = newSynonymName;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
@@ -70,15 +65,12 @@ public class CreateSynonymInNewGroupOperation extends AbstractPostTaxonOperation
                monitor.worked(20);
                HibernateProxyHelper.deproxy(element);
                // Create a new synonym for the taxon
-               newSynonymRelationship = element.addHeterotypicSynonymName(newSynonymName);
+               newSynonym = element.addHeterotypicSynonymName(newSynonymName);
                monitor.worked(40);
                
-               return postExecute(newSynonymRelationship.getSynonym());
+               return postExecute(newSynonym);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
@@ -86,17 +78,14 @@ public class CreateSynonymInNewGroupOperation extends AbstractPostTaxonOperation
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
                // Remove the synonym
-               element.removeSynonymRelation(newSynonymRelationship);
-               newSynonymRelationship = null;
+               element.removeSynonym(newSynonym);
+               newSynonym = null;
 
                return postExecute(null);
        }
index d005de5..2ae7758 100644 (file)
@@ -9,24 +9,23 @@
 
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import java.util.Set;
-
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.ui.IWorkbenchPage;
 
 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.SynonymType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
-import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -34,12 +33,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author p.ciardelli
  * @created 14.01.2009
- * @version 1.0
  */
-public class DeleteSynonymOperation extends AbstractPostTaxonOperation {
+public class DeleteSynonymOperation extends DeleteTaxonBaseOperation {
 
        private final Synonym synonym;
-       private Set<SynonymRelationshipType> synonymTypes;
+       private SynonymType synonymType;
+
 
        /**
         * <p>Constructor for DeleteSynonymOperation.</p>
@@ -50,57 +49,46 @@ public class DeleteSynonymOperation extends AbstractPostTaxonOperation {
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
-       public DeleteSynonymOperation(String label, IUndoContext undoContext,
-                       Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled) {
-               super(label, undoContext, taxon, postOperationEnabled);
+       public DeleteSynonymOperation(String label, IUndoContext undoContext, TaxonBaseDeletionConfigurator configurator,IWorkbenchPage activePage,
+                       Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled,ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+               super(label, undoContext, configurator, activePage, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
                this.synonym = synonym;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
-               // Store synonymRelationshipType for later undo operations
-                               synonymTypes = synonym.getRelationType(element);
-                               monitor.worked(20);
+               // Store SynonymType for later undo operations
+               synonymType = synonym.getType();
+               monitor.worked(20);
 
-                               // Remove synonym from taxon
+               // Remove synonym from taxon
+               ICdmApplicationConfiguration controller;
 
-                               ICdmApplicationConfiguration controller;
+               controller = CdmStore.getCurrentApplicationConfiguration();
 
-                               controller = CdmStore.getCurrentApplicationConfiguration();
+               ITaxonService service = controller.getTaxonService();
+               if (synonym.getId() == 0){
+                       element.removeSynonym(synonym);
 
-                               ITaxonService service = controller.getTaxonService();
-                               if (synonym.getId() == 0){
-                                       element.removeSynonym(synonym);
+               } else {
+                       //TODO: this should be moved to the handler, the operations should not contain ui code
+                       setResult(service.deleteSynonym(synonym.getUuid(), null));
 
-                               } else {
-//TODO: this should be moved to the handler, the operations should not contain ui code
-                                       DeleteResult result = service.deleteSynonym(synonym.getUuid(), element.getUuid(), null);
-                                       if (result.isError()){
-                                               DeleteResultMessagingUtils.messageDialogWithDetails(result, "Delete failed", TaxeditorEditorPlugin.PLUGIN_ID);
-                                       } else if (!result.getUpdatedObjects().isEmpty()){
-                                           DeleteResultMessagingUtils.messageDialogWithDetails(result, "The Synonym could be deleted, but related object(s) could not be deleted", TaxeditorEditorPlugin.PLUGIN_ID);
-                                       }
-                               }
-                       //      taxon.removeSynonym(synonym);
+               }
+       //      taxon.removeSynonym(synonym);
 //                             CdmStore.getTaxonService().deleteSynonymRelationships(synonym);
 //                             CdmStore.getTaxonService().delete(synonym);
 
-                               monitor.worked(40);
+               monitor.worked(40);
 
-                               // Redraw editor if exists
+               // Redraw editor if exists
 
-                               return postExecute(element);
+               return postExecute(element);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
@@ -108,20 +96,30 @@ public class DeleteSynonymOperation extends AbstractPostTaxonOperation {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
                // Add synonym to taxon
-               for (SynonymRelationshipType synonymType : synonymTypes){
-                       element.addSynonym(synonym, synonymType);
-               }
+               element.addSynonym(synonym, synonymType);
 
                // Redraw editor if exists
                return postExecute(synonym);
        }
+
+    /**
+     * @return the result
+     */
+    @Override
+    public DeleteResult getResult() {
+        return result;
+    }
+
+    /**
+     * @param result the result to set
+     */
+    public void setResult(DeleteResult result) {
+        this.result = result;
+    }
 }
index 5d4c6f9..a800d1a 100644 (file)
@@ -8,18 +8,20 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.ui.IWorkbenchPage;\r
 \r
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
+import eu.etaxonomy.cdm.api.service.DeleteResult;\r
+import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;\r
 \r
 public class DeleteTaxonBaseOperation extends AbstractPersistentPostOperation {\r
 \r
-       protected TaxonDeletionConfigurator configurator;\r
+       protected TaxonBaseDeletionConfigurator configurator;\r
+       protected DeleteResult result;\r
 \r
        public DeleteTaxonBaseOperation(String label,\r
                IUndoContext undoContext,\r
-               TaxonDeletionConfigurator configurator,\r
+               TaxonBaseDeletionConfigurator configurator,\r
                IWorkbenchPage activePage,\r
                IPostOperationEnabled postOperationEnabled,\r
                IConversationEnabled conversationEnabled,\r
@@ -49,4 +51,8 @@ public class DeleteTaxonBaseOperation extends AbstractPersistentPostOperation {
                // TODO Auto-generated method stub\r
                return null;\r
        }\r
+\r
+       public DeleteResult getResult(){\r
+           return result;\r
+       }\r
 }\r
index 48632e4..87f027d 100644 (file)
@@ -12,14 +12,11 @@ import org.eclipse.ui.IWorkbenchPage;
 \r
 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;\r
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
-import eu.etaxonomy.cdm.api.service.DeleteResult;\r
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
 import eu.etaxonomy.cdm.model.taxon.Classification;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;\r
-import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
@@ -72,13 +69,9 @@ public class DeleteTaxonOperation extends DeleteTaxonBaseOperation{
 \r
                                ITaxonService service = controller.getTaxonService();\r
 \r
-                               DeleteResult result =   service.deleteTaxon(element.getUuid(), configurator, classification.getUuid());\r
+                               result =        service.deleteTaxon(element.getUuid(), (TaxonDeletionConfigurator)configurator, classification.getUuid());\r
 
-                               if (result.isError()){\r
-                                   DeleteResultMessagingUtils.messageDialogWithDetails(result, "Delete failed", TaxeditorEditorPlugin.PLUGIN_ID);\r
-                               } else if (!result.getUpdatedObjects().isEmpty()){\r
-                    DeleteResultMessagingUtils.messageDialogWithDetails(result, "The Taxon was deleted, but related object(s) could not be deleted", TaxeditorEditorPlugin.PLUGIN_ID);\r
-                               }\r
+\r
 \r
                                monitor.worked(40);\r
 \r
index 1e3b300..19bee8a 100644 (file)
@@ -15,7 +15,6 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
@@ -67,24 +66,18 @@ public class MoveSynonymToAnotherAcceptedTaxonOperation extends
                TaxonNameBase<?, ?> synonymName = synonym.getName();\r
                monitor.worked(20);\r
 \r
-\r
-\r
                // Switch groups\r
 \r
                monitor.worked(40);\r
-               SynonymRelationship synRel = synonym.getSynonymRelations().iterator().next();\r
-\r
-\r
 \r
                ((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();\r
                UpdateResult result;\r
 \r
-\r
                try {\r
-                       result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synRel,\r
+                       result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,\r
                                this.element.getUuid(),\r
                                true,\r
-                               synRel.getType(),\r
+                               synonym.getType(),\r
                                null,\r
                                null,\r
                                true);\r
@@ -94,10 +87,8 @@ public class MoveSynonymToAnotherAcceptedTaxonOperation extends
                }\r
                ((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();\r
 \r
-\r
-\r
                // Redraw editor if it exists\r
-               return postExecute(synRel.getSynonym());\r
+               return postExecute(synonym);\r
        }\r
 \r
        @Override\r
index 507b2cf..f39e1ac 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.SynonymType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
@@ -32,13 +32,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author n.hoffmann
  * @created 23.04.2009
- * @version 1.0
  */
 public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation {
 
        private final Synonym synonym;
        // TODO store the old relationship for undo reasons
-       private SynonymRelationshipType synonymRelationshipType;
+       private SynonymType synonymType;
 
        /**
         * <p>Constructor for SwapSynonymAndAcceptedOperation.</p>
@@ -57,9 +56,6 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
                this.synonym = synonym;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
@@ -74,9 +70,6 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
                return postExecute(element);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
@@ -85,9 +78,6 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
index 014ff4f..ec005e4 100644 (file)
@@ -129,7 +129,7 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
             }
         }
 
-        if(columnIndex >2 || (!PreferencesUtil.isShowRankInChecklistEditor() && columnIndex > 1)){
+        if(columnIndex >2 || (!PreferencesUtil.isShowRankInChecklistEditor() && columnIndex > 0)){
 
             for (TaxonDescription td : listTaxonDescriptions) {
                 for (DescriptionElementBase deb : td.getElements()) {
index 2274d9b..5e8af9a 100644 (file)
@@ -153,7 +153,11 @@ public final class DistributionEditingSupport extends EditingSupport {
                 if (!PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
                     sameArea = column.getText().equalsIgnoreCase(term.getTitleCache());
                 } else{
-                    sameArea = column.getText().equalsIgnoreCase(term.getIdInVocabulary());
+                       if (term.getIdInVocabulary() != null){
+                               sameArea = column.getText().equalsIgnoreCase(term.getIdInVocabulary());
+                       } else{
+                               sameArea = column.getText().equalsIgnoreCase(term.getTitleCache());
+                       }
                 }
                 if (sameArea) {
                     NamedArea area = (NamedArea) term;
index fc1587c..391d909 100644 (file)
@@ -27,8 +27,8 @@ public class ChecklistEditorFilter extends ViewerFilter {
         }
         Taxon taxon = (Taxon) element;
         NonViralName<?> nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
-        Reference reference = HibernateProxyHelper.deproxy(nonVirlaName.getNomenclaturalReference(), Reference.class);
-        String rank = taxon.getName().getRank().toString();
+      //  Reference reference = HibernateProxyHelper.deproxy(nonVirlaName.getNomenclaturalReference(), Reference.class);
+      //  String rank = taxon.getName().getRank().toString();
         //TaxonName
         if (nonVirlaName.getNameCache()!=null && nonVirlaName.getNameCache().matches(searchString)) {
             return true;
index 2d63caf..228705c 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.editor.view.concept.handler;
 
@@ -14,7 +14,6 @@ import org.eclipse.ui.handlers.IHandlerService;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -25,7 +24,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public abstract class AbstractDynamicConceptRelationMenu extends ContributionItem {
-       
+
        /*
         * (non-Javadoc)
         * @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
@@ -51,18 +50,21 @@ public abstract class AbstractDynamicConceptRelationMenu extends ContributionIte
                                        } catch (Exception e) {
                                                EditorUtil.error(getClass(), "Error executing command", e);
                                        }
-                               }                               
+                               }
                        });
                */
                for(final TaxonRelationshipType taxonRelationshipType: CdmStore.getTermManager().getPreferredTerms(TaxonRelationshipType.class)){
+                   if (!taxonRelationshipType.equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())){
                        MenuItem menuItem = new MenuItem(menu, -1);
                        menuItem.setText(taxonRelationshipType.getTitleCache());
                        menuItem.setData(taxonRelationshipType);
                        menuItem.addSelectionListener(new SelectionListener(){
 
-                               public void widgetDefaultSelected(SelectionEvent e) {}
+                               @Override
+                public void widgetDefaultSelected(SelectionEvent e) {}
 
-                               public void widgetSelected(SelectionEvent ev) {
+                               @Override
+                public void widgetSelected(SelectionEvent ev) {
                                        Event event = new Event();
                                        event.data = taxonRelationshipType;
                                        try {
@@ -70,11 +72,12 @@ public abstract class AbstractDynamicConceptRelationMenu extends ContributionIte
                                        } catch (Exception e) {
                                                MessagingUtils.error(getClass(), "Error executing command", e);
                                        }
-                               }                               
+                               }
                        });
+                   }
                }
        }
-       
+
        /**
         * <p>getCommandName</p>
         *
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientAgentService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientAgentService.java
deleted file mode 100644 (file)
index c72fb04..0000000
+++ /dev/null
@@ -1,865 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2013 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject&n