Merge branch 'LibrAlign' of https://dev.e-taxonomy.eu/git/taxeditor into LibrAlign
authorb.stoever <stoever@bioinfweb.info>
Wed, 26 Oct 2016 15:31:21 +0000 (17:31 +0200)
committerb.stoever <stoever@bioinfweb.info>
Wed, 26 Oct 2016 15:31:21 +0000 (17:31 +0200)
# Conflicts:
# eu.etaxonomy.taxeditor.molecular.lib/.classpath
# eu.etaxonomy.taxeditor/rcp.target

314 files changed:
.gitignore
eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_de.properties
eu.etaxonomy.taxeditor.application/pom.xml
eu.etaxonomy.taxeditor.bulkeditor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.bulkeditor/plugin.xml
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/BulkEditorLineDisplay.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorPropertyTester.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorSelectionPropertyTester.java [new file with mode: 0644]
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/handler/OpenBulkEditorHandler.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForIdentifiableEntity.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForTaxonNodeHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.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/BulkEditorInputType.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.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/UserCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.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/pom.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CacheLoader.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/EntityCacherDebugResult.java
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/OSGI-INF/l10n/plugin_de.properties
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/pom.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
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/group/authority/CdmAuthorityEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenChecklistEditorHandler.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/handler/defaultHandler/DefaultOpenSpecimenEditorForTypeSpecimenHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonBaseHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonHandler.java with 77% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyGraphContentProvider.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyContentProvider.java with 96% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyGraphEditor.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/name/container/AbstractGroupedContainer.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/LineBreakListener.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/GroupBasionymContributionItem.java [deleted file]
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/view/checklist/ChecklistEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorInput.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/ConceptContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/ConceptGraphView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/CreateConceptRelationHandler.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/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/derivate/DerivateView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateFieldUnitContextMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/SingleReadHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteDescriptionElementOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesViewPart.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveTaxonOperationTest.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/.classpath
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.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditor.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditorInput.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractPherogramComponentHandler.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AlignmentEditorPasteHandler.java
eu.etaxonomy.taxeditor.navigation/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_de.properties
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/RecentNamesContributionItem.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyLabelProvider.java [deleted file]
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/TaxonNodeContentProvider.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CreateClassificationHierarchyHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/RemotingDeleteTaxonNodeHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateClassification.java
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/icons/default_derivate-16x16-32.png [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/plugin.xml [changed mode: 0644->0755]
eu.etaxonomy.taxeditor.store/pom.xml
eu.etaxonomy.taxeditor.store/schema/eu.etaxonomy.taxeditor.store.cdmViewer.exsd
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/Messages.java
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/editor/definedterm/TermLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/TermEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/EditFeatureTreeWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeEditorWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
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/ClassificationChooserWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvNameExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvPrintExportWizard.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/io/wizard/ExportToFileDestinationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/NomenclaturalCodeWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DefaultTermComparator.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/ImageResources.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewClassificationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewCollectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewFieldUnitWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewGrantedAuthorityWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewGroupWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewInstitutionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewNonViralNameWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewPersonWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewPolytomousKeyWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewPrimerWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTeamWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewUserWizard.java
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/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/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/store/SearchManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/AbstractEntityCollectionElementWizardPage.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/AbstractComboElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.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/combo/VocabularyComboElement.java
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/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/AgentSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CdmFilteredItemsSelectionDialog.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ClassificationSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectionSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/MediaSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NameSelectionDialog.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/NomenclaturalAuthorSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorTeamSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalPersonAuthorSelectionDialog.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalReferenceSelectionDialog.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PolytomousKeySelectionDialog.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/SpecimenOrObservationBaseSelectionDialog.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/dialog/selection/TaxonNodeSelectionDialog.java [changed mode: 0644->0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractFormSection.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/MultilanguageTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java [new file with mode: 0755]
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/element/TranslatableRepresentationElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/password/EditPasswordElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/password/PasswordWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/password/PasswordWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/EditTaxonNodeWizard.java
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/classification/TaxonNodeWizardPage.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/feature/FeatureDistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java [deleted file]
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/AuthorshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailSection.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/NameDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipWizard.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/NonViralNameDetailSection.java
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/occurrence/association/TaxonAssociationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/AbstractIdentifierSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/DerivedUnitFacadeIdentifierSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailElement.java with 54% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierSection.java [new file with mode: 0644]
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/AbstractTermBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/DefinedTermDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/DefinedTermDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermTranslationWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermVocabularyDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EntitySelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TermTranslationWizardPage.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/ApplicationUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmDataViewer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/BioCaseEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/DataImportEditorContextMenu.java [changed mode: 0644->0755]
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/GbifResponseComparator.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/GbifResponseImportView.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/SpecimenProviderSelectionWizardPage.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/CdmDataSourceViewPart.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/derivateSearch/DerivateContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewPart.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/supplementaldata/SupplementalDataViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java
eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.test/pom.xml
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionAwareTest.java
eu.etaxonomy.taxeditor.test/src/test/resources/.cdmLibrary/writableResources/test.mgd.datasources.xml [deleted file]
eu.etaxonomy.taxeditor.webapp/.classpath
eu.etaxonomy.taxeditor.webapp/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.webapp/build.properties
eu.etaxonomy.taxeditor.webapp/pom.xml
eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product
eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product.with.jre
eu.etaxonomy.taxeditor/pom.xml
eu.etaxonomy.taxeditor/rcp.target
pom.xml

index a8063308514ddeb3f0d453b097680cc729511ff4..05274d7b9b64f63005764ed53e4f513e52fcbd3f 100644 (file)
@@ -31,3 +31,4 @@ eu.etaxonomy.taxeditor.webapp/lib/cdmlib-remote-webapp.war
 /eu.etaxonomy.taxeditor.webapp/.settings/org.eclipse.m2e.core.prefs
 /eu.etaxonomy.taxeditor.webapp/lib/
 
+/.ssh
index a22849adce2b039edea48a8fccef220d19994233..1886bd6496419cfc39e18e0d04c5206df5ccf57a 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.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/plugin
index 4f2e19d7fe47d1000c0c4629868b0f3ccb2b10e3..91621f4e6af09879790c1c3192ff4e24806d3ff7 100644 (file)
@@ -36,7 +36,7 @@ command.label.12 = Einstellungen
 command.label.13 = Hilfeinhalt
 command.label.14 = Suchen
 command.label.15 = Dynamische Hilfe
-command.label.16 = Parser Hilfe Webseite (in Englisch)
+command.label.16 = Parser Hilfe Webseite (auf Englisch)
 command.label.17 = Suche nach Updates
 command.label.18 = Installiere Neue Software...
 command.label.19 = \u00dcber den Taxonomischen Editor
index 228de37780885a2a8a436855d205434573f76e2c..ae739dce7740f723383592dadfdbb05027358254 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index ad46b92fd833fe029713cb2fd38be4e121a5193e..f6ec6308bf3aecf7f64d74761253634c9f43f33e 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.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
index 9ede48e0da771eaedd05c82887c8d1425934a3ca..1db7f651df6d3d3d1fcce9ceb535e5c42dfbf75f 100644 (file)
@@ -32,4 +32,7 @@ specification.label = Merge Candidate Annotation
 specification.label.0 = Merge Target Annotation
 command.name.10 = convert Person to Team
 command.label.OPEN_REFERENCING_OBJECTS_VIEW = Referencing Objects View
-command.name.OPEN_REFERENCING_OBJECTS_VIEW = Open Referencing Objects View
\ No newline at end of file
+command.name.OPEN_REFERENCING_OBJECTS_VIEW = Open Referencing Objects View
+command.name.OPEN_BULK_EDITOR_FOR_TAXON_NODE = Open bulk editor for taxon  node
+viewCommandMapping.viewerName.REFERENCING_OBJECTS_VIEW = Referencing Objects View
+viewCommandMapping.viewerName.BULK_EDITOR = Bulk Editor
\ No newline at end of file
index f454140aa0116587bac81967730077f08ab2b2b4..96df15ab646195e4c529ec90e49cbd63c7cc0a79 100644 (file)
@@ -32,4 +32,7 @@ specification.label = Kandidat-Annotation zusammenf
 specification.label.0 = Ziel-Annotation zusammenfügen
 command.name.10 = Person in Team umwandeln
 command.label.OPEN_REFERENCING_OBJECTS_VIEW = Referenzierende Objekte
-command.name.OPEN_REFERENCING_OBJECTS_VIEW = Ã–ffne Referenzierende Objekte
\ No newline at end of file
+command.name.OPEN_REFERENCING_OBJECTS_VIEW = Ã–ffne Referenzierende Objekte
+command.name.OPEN_BULK_EDITOR_FOR_TAXON_NODE = Ã–ffne Bulk Editor für Taxonknoten
+viewCommandMapping.viewerName.REFERENCING_OBJECTS_VIEW = Referenzierende Objekte
+viewCommandMapping.viewerName.BULK_EDITOR = Bulk Editor
\ No newline at end of file
index 4869f718f708c836da07c80dcedda77ff609f01a..abb836ab25513f66bc7336c174c9927424507af9 100644 (file)
@@ -99,8 +99,8 @@
             </visibleWhen>
          </menu>
          <separator
-               name="taxeditor-bulkeditor.separator4"\r
-               visible="true">\r
+               name="taxeditor-bulkeditor.separator4"
+               visible="true">
          </separator>
          <command
                commandId="bulkeditor.commands.setmergetarget"
                </reference>
             </visibleWhen>
          </command>
-         <separator\r
-               name="eu.etaxonomy.taxeditor.bulkeditor.separator1"\r
-               visible="true">\r
-         </separator>\r
+         <separator
+               name="eu.etaxonomy.taxeditor.bulkeditor.separator1"
+               visible="true">
+         </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.bulkeditor.convertTeam2Person"
                label="%command.label.5"
             allPopups="false"
             locationURI="menu:eu.etaxonomy.taxeditor.menu.showView?after=org.eclipse.ui.views.showView.supplemental">
          <command
-               commandId="eu.etaxonomy.taxeditor.openReferencingObjectsView"
+               commandId="eu.etaxonomy.taxeditor.openReferencingObjectsViewFromMenu"
                label="%command.label.OPEN_REFERENCING_OBJECTS_VIEW"
                style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isCdmStoreConnected">
+               </reference>
+            </visibleWhen>
          </command>
       </menuContribution>
    </extension>
             name="%command.name.10">
       </command>
       <command
-            defaultHandler="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
             id="eu.etaxonomy.taxeditor.openReferencingObjectsView"
             name="%command.name.OPEN_REFERENCING_OBJECTS_VIEW">
       </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForTaxonNodeHandler"
+            id="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForTaxonNode"
+            name="%command.name.OPEN_BULK_EDITOR_FOR_TAXON_NODE">
+      </command>
+      <command
+            id="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity"
+            name="Open bulk editor for identifiable entity">
+         <commandParameter
+               id="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity.uuid"
+               name="Identifiable Entity UUID"
+               optional="true"
+               typeId="eu.etaxonomy.taxeditor.uuidParameterType">
+         </commandParameter>
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
+            id="eu.etaxonomy.taxeditor.openReferencingObjectsViewFromMenu"
+            name="%command.name.OPEN_REFERENCING_OBJECTS_VIEW">
+      </command>
       <!--command
             defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.NewEntityHandler"
             id="eu.etaxonomy.taxeditor.bulkeditor.command.new"
             </test>
          </with>
       </definition>
+      <definition
+            id="isBulkEditorSupported">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorSelectionPropertyTester.isBulkEditorSupported">
+            </test>
+         </with>
+      </definition>
+      <definition
+            id="isGroupEditor">
+         <with
+               variable="activeEditor">
+            <test
+                  property="taxeditor-bulkeditor.propertyTester.isGroupEditor">
+            </test>
+         </with>
+      </definition>
    </extension>
    <extension
          point="org.eclipse.core.expressions.propertyTesters">
             properties="isTeam, isPerson"
             type="java.lang.Object">
       </propertyTester>
+      <propertyTester
+            class="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorSelectionPropertyTester"
+            id="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorSelectionPropertyTester"
+            namespace="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorSelectionPropertyTester"
+            properties="isBulkEditorSupported"
+            type="org.eclipse.jface.viewers.IStructuredSelection">
+      </propertyTester>
    </extension>
    <extension
          point="org.eclipse.ui.handlers">
             class="eu.etaxonomy.taxeditor.bulkeditor.handler.ConvertPerson2TeamHandler"
             commandId="eu.etaxonomy.taxeditor.bulkeditor.convertPerson2Team">
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForIdentifiableEntity"
+            commandId="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity">
+         <activeWhen>
+            <reference
+                  definitionId="isBulkEditorSupported">
+            </reference>
+         </activeWhen>
+      </handler>
       
    </extension>
    <extension
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.openReferencingObjectsView"
             selection="java.lang.Object"
-            viewerName="Referencing Objects View">
+            viewerName="%viewCommandMapping.viewerName.REFERENCING_OBJECTS_VIEW">
+      </viewCommandMapping>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForTaxonNode"
+            selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
+            viewerName="%viewCommandMapping.viewerName.BULK_EDITOR">
+      </viewCommandMapping>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity"
+            selection="eu.etaxonomy.cdm.model.common.IdentifiableEntity"
+            viewerName="%viewCommandMapping.viewerName.BULK_EDITOR">
       </viewCommandMapping>
    </extension>
 <!-- start set marker -->
index 10658e9d48ab5cb429cb9514e42bf0a9dc34fbb4..ada057cbfc59cfe576e4c029f3b4cf30f8fff3cd 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>4.2.0-SNAPSHOT</version>
+               <version>4.4.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 3243ffbe49299cddaee36b43327ac5139893df83..e2a4d74706e848f8fc7df4d27ced286bfe350ea9 100644 (file)
@@ -25,6 +25,9 @@ import org.eclipse.jface.text.source.IAnnotationModel;
 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;
 
@@ -58,6 +61,21 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
        private ILineDisplayStrategy lineDisplayStrategy;
 
        private final IEditorInput input;
+       private ConversationHolder conversation;
+
+       /**
+        * @return the conversation
+        */
+       public ConversationHolder getConversation() {
+               return conversation;
+       }
+
+       /**
+        * @param conversation the conversation to set
+        */
+       public void setConversation(ConversationHolder conversation) {
+               this.conversation = conversation;
+       }
 
        /**
         * <p>Constructor for AnnotatedLineDocumentProvider.</p>
@@ -66,6 +84,7 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
         */
        public AnnotatedLineDocumentProvider(IEditorInput input){
                this.input = input;
+               this.conversation = ((AbstractBulkEditorInput)input).getConversation();
        }
 
        /** {@inheritDoc} */
@@ -232,11 +251,17 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        // Get new containers from annotation model
                        LineAnnotationModel model = (LineAnnotationModel) getAnnotationModel(element);
                        Iterator iterator = model.getAnnotationIterator();
+                       if (!this.conversation.isBound()){
+                               this.conversation.bind();
+                       }
+                       
                        while (iterator.hasNext()) {
                                Annotation annotation = (Annotation) iterator.next();
                                if (annotation instanceof IEntityContainer<?>) {
                                        IEntityContainer<?> container = (IEntityContainer<?>) annotation;
+                                       
                                        if (container.isMarkedAsNew() || container.isDirty()) {
+                                               
                                                Object entity = persistenceService.save(container.getEntity()); // save
                                                container.setEntity(entity);
                                                container.setDirty(false);
@@ -244,13 +269,23 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                                        }
                                }
                        }
+                       this.conversation.commit(true);
                        for (LineAnnotation annotation : model.getDeletedAnnotations()) {
                                if (annotation.isMarkedAsNew()) {
                                        continue;
                                }
                                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
                                }
@@ -354,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 {
@@ -368,7 +403,9 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        }
 
                        try {
+                               
                                document.replace(offset, length, "");
+                               
                        } catch (BadLocationException e) {
                                MessagingUtils.error(getClass(), "Problems removing annotated line", e);
                        }
@@ -387,4 +424,6 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        updateLineFromAnnotation(annotation);
                }
        }
+       
+       
 }
index e7640f011c211fac76387e65b040e4cc0c0d4575..178c9c64d0e7c028b5794c14bb3d2bc8d87f4963 100644 (file)
@@ -71,7 +71,7 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
     protected void doSetInput(IEditorInput input) throws CoreException {
 
         AnnotatedLineDocumentProvider provider = new AnnotatedLineDocumentProvider(input);
-
+        
         provider.setLineDisplayStrategy(lineDisplayStrategy, input);
         setDocumentProvider(provider);
 
@@ -197,6 +197,8 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
     public LineAnnotation createAnnotatedLine(Object entity) {
 
         IEditorInput input = getEditorInput();
+        this.conversation.close();
+        this.conversation = ((AbstractBulkEditorInput)input).getConversation();
         AnnotatedLineDocumentProvider provider = (AnnotatedLineDocumentProvider) getDocumentProvider();
 
         LineAnnotation annotation = null;
@@ -233,6 +235,7 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
      */
     public void removeAnnotatedLine(LineAnnotation annotation) {
         ((AnnotatedLineDocumentProvider) getDocumentProvider()).removeAnnotatedLine(annotation);
+        
     }
 
     /* (non-Javadoc)
index b57e8b7bc1840b9f5aca90b30eacb9efcc0425ed..d9224d928b46e9deb8774cc30a6579ad3b99c9c6 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 ef4f124b70dada677d4330bf1f5fc6c3980443f8..9f41f4b44f20d862e2d8ecababe7b6870cf20bcd 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 5b7b601e78eae0be27acafd4fa4c1947d50811a9..5bbdb2b3f3ebd96e59f684424dae3b3902de0ea4 100644 (file)
@@ -10,6 +10,8 @@
 
 package eu.etaxonomy.taxeditor.bulkeditor;
 
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.commands.operations.UndoContext;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -48,6 +50,7 @@ import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -70,8 +73,11 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
 
        private boolean isDirty;
 
+    private IUndoContext undoContext;
+  
        public BulkEditor() {
                super(CdmStore.createConversation());
+        undoContext = new UndoContext();
        }
 
        /** {@inheritDoc} */
@@ -110,7 +116,12 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
                if (!(input instanceof AbstractBulkEditorInput)) {
                        throw new PartInitException("Invalid Input: Must be BulkEditorInput");
                }
-
+               else{
+                   AbstractBulkEditorInput<?> bulkEditorInput = (AbstractBulkEditorInput<?>)input;
+                   if(bulkEditorInput.getEntityUuid()!=null){
+                       bulkEditorInput.performSearch(new BulkEditorQuery(bulkEditorInput.getEntityUuid().toString(), null));
+                   }
+               }
                super.init(site, input);
        }
 
@@ -163,7 +174,6 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        @Override
        public void setFocus() {
            conversation.bind();
-               searchBar.setFocus();
 
                // TODO find a better place to put this - this dialog should be shown after initial contents of
                //      Editor are displayed
@@ -172,19 +182,27 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
                        isInitialFocus = false;
                }
                super.setFocus();
+               searchBar.setFocus();
+       }
+
+       /**
+        * @return the searchBar
+        */
+       public BulkEditorSearch getSearchBar() {
+               return searchBar;
        }
 
        private void displayWarningDialog() {
                IPreferenceStore prefs = PreferencesUtil.getPreferenceStore();
-               if (!prefs.getBoolean(PreferencesUtil.HIDE_BULKEDITOR_INFO)) {
+               if (!prefs.getBoolean(IPreferenceKeys.HIDE_BULKEDITOR_INFO)) {
                        String msg = "The Bulk Editor allows you to edit objects used to reference other objects, such as names, references, and authors.\n\n" +
                                                        "Any changes you make to an object in the Bulk Editor will be displayed wherever the object is used.\n\n" +
                                                        "For instance, a reference may be displayed with both a name and a descriptive element. If the reference name is changed here, the display of both the name and the descriptive element will be affected.";
                        MessageDialogWithToggle dialog = MessageDialogWithToggle.openOkCancelConfirm
                                                                                                (getSite().getShell(), "Bulk Editor", msg, "Do not show this message again",
-                                                                                                               false, null, PreferencesUtil.HIDE_BULKEDITOR_INFO);
+                                                                                                               false, null, IPreferenceKeys.HIDE_BULKEDITOR_INFO);
                        if (dialog.getReturnCode() == Window.OK) {
-                               prefs.setValue(PreferencesUtil.HIDE_BULKEDITOR_INFO, dialog.getToggleState());
+                               prefs.setValue(IPreferenceKeys.HIDE_BULKEDITOR_INFO, dialog.getToggleState());
                        }
                }
        }
@@ -236,8 +254,9 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
            isDirty = true;
            firePropertyChange(PROP_DIRTY);
        }
-
-       @Override
+       
+       
+       @Override
        public void doSave(IProgressMonitor progressMonitor) {
            isDirty = false;
 
@@ -264,19 +283,24 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
 
                        // TODO check if dirty, prompt save
                        if (isDirty()) {
-                               boolean proceed = MessageDialog.openQuestion(getEditorSite().getShell(),
-                                               "Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
-                               if (proceed) {
+                               String[] labels = {"Save (and Search)", "Don't save (and Search)","Cancel"};
+                               MessageDialog dialog =new MessageDialog(getEditorSite().getShell(), "Save changes", null, "You have made changes that must be saved before this query can be executed. Would you like to proceed?", MessageDialog.QUESTION,labels, 0);
+                               int result = dialog.open();
+                                               //MessageDialog.openQuestion(getEditorSite().getShell(),
+                                               //"Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
+                               if (result == 0) {
                                        doSave(null);
-                               } else {
+                               } else if (result == 2){
                                        return;
                                }
                        }
-                       conversation.commit();
-                       conversation.clear();
+                       //conversation.clear();
+                       //conversation.commit(true);
 
+                       getEditorInput().dispose();
+                       getEditorInput().bind();
                        getEditorInput().performSearch(query);
-
+                       
                        refresh();
 
                        selectFirstItem();
@@ -316,4 +340,10 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        public boolean canAttachMedia() {
            return getEditorInput() instanceof TaxonEditorInput?true:false;
        }
+
+    public IUndoContext getUndoContext() {
+        return undoContext;
+    }
+
+       
 }
index 613ee50fb72e90d917b811439686212deb5f7181..e1e9867976655894a15185580876965f80a3a950 100644 (file)
@@ -162,16 +162,7 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
        /** {@inheritDoc} */
        @Override
     public String getEmptyCacheMessage(Object entity) {
-               if (entity instanceof Reference) {
-                       return "No reference title cache";
-               }
-               if (entity instanceof TaxonNameBase) {
-                       return "No name title cache";
-               }
-               if (entity instanceof AgentBase) {
-                       return "No title cache";
-               }
-               return "";
+               return entity.toString();
        }
 
        /* (non-Javadoc)
index bbfe04df5fd667756cad809a46a1dec119c85e39..20a4c5de0b37c61dd97605476d325ebdc7a1de99 100644 (file)
@@ -22,8 +22,6 @@ import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
 
 /**
- * <p>BulkEditorPropertyTester class.</p>
- *
  * @author p.ciardelli
  * @created 21.09.2009
  * @version 1.0
@@ -43,16 +41,13 @@ public class BulkEditorPropertyTester extends PropertyTester {
     public static final String IS_PERSON = "isPerson";
     public static final String IS_TEAM = "isTeam";
     public static final String IS_MEDIA_EDITOR = "isMediaEditor";
-       /* (non-Javadoc)
-        * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
-        */
-       /** {@inheritDoc} */
+
+    /** {@inheritDoc} */
        @Override
     public boolean test(Object receiver, String property, Object[] args,
                        Object expectedValue) {
                BulkEditor bulkEditor = null;
 
-
                bulkEditor = (BulkEditor) receiver;
                if (IS_MERGING_ENABLED.equals(property)) {
                        IEditorInput input = bulkEditor.getEditorInput();
@@ -74,16 +69,10 @@ public class BulkEditorPropertyTester extends PropertyTester {
                }
         else if(IS_TAXON_EDITOR.equals(property)){
             return bulkEditor.getEditorInput() instanceof TaxonEditorInput;
-        } else if(IS_MEDIA_EDITOR.equals(property)){
+        }
+        else if(IS_MEDIA_EDITOR.equals(property)){
             return bulkEditor.getEditorInput() instanceof MediaEditorInput;
         }
-
-//             if (("isPublishFlagEditingEnabled").equals(property)) {
-//                     IEditorInput input = bulkEditor.getEditorInput();
-//                     if (input instanceof NameEditorInput) {
-//                             return ((NameEditorInput) input).isPublishFlagEnabled();
-//                     }
-//             }
                return false;
        }
 }
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorSelectionPropertyTester.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorSelectionPropertyTester.java
new file mode 100644 (file)
index 0000000..1f5b701
--- /dev/null
@@ -0,0 +1,31 @@
+package eu.etaxonomy.taxeditor.bulkeditor.command;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInputType;
+
+public class BulkEditorSelectionPropertyTester extends PropertyTester {
+
+    public static final String IS_BULK_EDITOR_SUPPORTED = "isBulkEditorSupported";
+
+       @Override
+       public boolean test(Object receiver, String property, Object[] args,
+                       Object expectedValue) {
+               if(IS_BULK_EDITOR_SUPPORTED.equals(property)){
+                       if(receiver instanceof IStructuredSelection){
+                               IStructuredSelection selection = (IStructuredSelection) receiver;
+                               Object selectedElement = selection.getFirstElement();
+                               if(selectedElement!=null){
+                                   if(selectedElement instanceof UuidAndTitleCache){
+                                       return BulkEditorInputType.getByType(((UuidAndTitleCache) selectedElement).getType())!=null;
+                                   }
+                                       return BulkEditorInputType.getByType(selectedElement.getClass())!=null;
+                               }
+                       }
+               }
+               return false;
+       }
+
+}
index f42174ba757a1968b76a5bed6f369d32a8315885..554f0a4c326416af6abab49389d4db2101b4a00a 100644 (file)
 package eu.etaxonomy.taxeditor.bulkeditor.handler;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 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.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.text.TextSelection;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorInput;
@@ -30,14 +34,15 @@ 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.Group;
 import eu.etaxonomy.cdm.model.common.User;
@@ -52,9 +57,16 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
 import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
+
+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.RemotingCdmHandler;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator.DeleteConfiguratorDialog;
 
@@ -66,14 +78,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();
@@ -89,8 +103,7 @@ public class DeleteHandler extends AbstractHandler {
                        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
 
                        IEntityPersistenceService persistenceService = (IEntityPersistenceService) input;
-
-
+                       
                        for(Object object : structuredSelection.toList()){
 
                                LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
@@ -104,82 +117,247 @@ public class DeleteHandler extends AbstractHandler {
                                        if (object instanceof SpecimenOrObservationBase){
                                                IOccurrenceService service = controller.getOccurrenceService();
                                                if (object != null){
-                                                       result = service.delete(((SpecimenOrObservationBase) object).getUuid());
+                                                       result = service.isDeletable(((SpecimenOrObservationBase) object), null);
                                                        errorMessage = "The specimen or observation ";
+                                                       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(null);
+                                                                               }
+                                                                               
+                                                                       }
+                                                               }
+                                                       }
                                                }
                                        } else if (object instanceof Reference){
                                                IReferenceService service = controller.getReferenceService();
                                                if (object != null){
-                                                       result = service.delete(((Reference) object).getUuid());
+                                                       result = service.isDeletable((Reference)object, null);
                                                        errorMessage = "The reference ";
                                                }
+                                               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(null);
+                                                                       }
+                                                                       
+                                                               }
+                                                       }
+                                               }
 
                                        } else if (object instanceof Group){
-                                               IGroupService service = controller.getGroupService();
-                                               if (object != null){
-                                                       result = service.delete(((Group) object).getUuid());
-                                                       errorMessage = "The group ";
+                                               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(null);
+                                                                       }
+                                                                       
+                                                               }
+                                                       }
                                                }
+                                               
+//                                             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 ";
+                                               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(null);
+                                                                       }
+                                                                       
+                                                               }
+                                                       }
                                                }
+                                               
+//                                             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();
+                                               TaxonNameBase name = HibernateProxyHelper.deproxy(object, TaxonNameBase.class);
+                                               
+                                               
                                                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);
+                                                       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 = service.delete(((TaxonNameBase) object).getUuid(), config);
+                                                       
+                                                       //operation = new DeleteTaxonNameOperation(commandName,((BulkEditor) editor).getUndoContext() , name, config, (BulkEditor)editor);
                                                        errorMessage = "The name ";
+                                                       
+                                                       if (model != null) {
+                                                               Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
+                                                               while (iter.hasNext()) {
+                                                                       Object next = iter.next();
+                                                                       if (next instanceof LineAnnotation) {
+                                                                               result = controller.getNameService().isDeletable(name, config);
+                                                                               if (result.isOk()){
+                                                                                       ((LineAnnotation)next).markAsDeleted(config);
+                                                                               }
+                                                                               
+                                                                       }
+                                                               }
+                                                       }
                                                }
                                        } 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;
+                                               
+                                               // synonym
+                                               if(object instanceof Synonym){
+                                                       Synonym synonym = HibernateProxyHelper.deproxy(object, Synonym.class);
+                                                       SynonymDeletionConfigurator 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;
+                            }
+                                                       //operation = new DeleteTaxonBaseOperation(commandName,((BulkEditor) editor).getUndoContext() , synonym, config, (BulkEditor)editor);
+                                                       if (model != null) {
+                                                               Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
+                                                               while (iter.hasNext()) {
+                                                                       Object next = iter.next();
+                                                                       if (next instanceof LineAnnotation) {
+                                                                               result = controller.getTaxonService().isDeletable(synonym, config);
+                                                                               if (result.isOk()){
+                                                                                       ((LineAnnotation)next).markAsDeleted(config);
+                                                                               }
+                                                                               
+                                                                       }
                                                                }
-
-                                                       }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 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;
+                                                       }
+                                                       TaxonDeletionConfigurator config = new 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;
+                            }
+                            //operation = new DeleteTaxonBaseOperation(commandName, ((BulkEditor) editor).getUndoContext(), taxon, config, (BulkEditor)editor);
+                            if (model != null) {
+                                                               Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
+                                                               while (iter.hasNext()) {
+                                                                       Object next = iter.next();
+                                                                       if (next instanceof LineAnnotation) {
+                                                                               result = controller.getTaxonService().isDeletable(taxon, config);
+                                                                               if (result.isOk()){
+                                                                                       ((LineAnnotation)next).markAsDeleted(config);
+                                                                               }
+                                                                               
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                                       
+                                               
+//                                             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();
+                                               
+                                                 if (model != null) {
+                                                               Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
+                                                               while (iter.hasNext()) {
+                                                                       Object next = iter.next();
+                                                                       if (next instanceof LineAnnotation) {
+                                                                               
+                                                                               result = controller.getAgentService().isDeletable((TeamOrPersonBase) object, null);
+                                                                               if (result.isOk()){
+                                                                                       ((LineAnnotation)next).markAsDeleted(null);
+                                                                               }
+                                                                               
+                                                                       }
+                                                               }
+                                                       }
+                                               //IAgentService service = controller.getAgentService();
                                                //TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
-                                               result = service.delete(((TeamOrPersonBase)object).getUuid());
+                                       //result = service.delete(((TeamOrPersonBase)object).getUuid());
                                                errorMessage = "The team or person ";
                                        } else if (object instanceof Media){
+                                               MediaDeletionConfigurator config = new MediaDeletionConfigurator();
+                                               
+                                               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;
+                        }
                         IMediaService service = controller.getMediaService();
                         //TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
-                        result = service.delete(((Media)object).getUuid(), null);
+                       
                         errorMessage = "The media ";
+                        
+                        if (model != null) {
+                                                       Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
+                                                       while (iter.hasNext()) {
+                                                               Object next = iter.next();
+                                                               if (next instanceof LineAnnotation) {
+                                                                        result = service.isDeletable(((Media)object), config);
+                                                                       if (result.isOk()){
+                                                                               ((LineAnnotation)next).markAsDeleted(null);
+                                                                       }
+                                                                       
+                                                               }
+                                                       }
+                                               }
                     }
 
                                } catch (Exception e){
@@ -199,15 +377,19 @@ public class DeleteHandler extends AbstractHandler {
                                                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>();
                         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. ";
+                                           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 +403,5 @@ public class DeleteHandler extends AbstractHandler {
                return null;
        }
 
+       
 }
index dc4d133e2f6c0676640ea273d391c2081224ce61..9f733f33ea084fdb3a02e46ddd20a2b0603a6e32 100644 (file)
@@ -19,6 +19,7 @@ import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * <p>OpenBulkEditorHandler class.</p>
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForIdentifiableEntity.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForIdentifiableEntity.java
new file mode 100644 (file)
index 0000000..6910f3d
--- /dev/null
@@ -0,0 +1,31 @@
+package eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class OpenBulkEditorForIdentifiableEntity extends DefaultOpenHandlerBase<IdentifiableEntity> {
+
+       @Override
+       protected IdentifiableEntity getEntity(UUID uuid) {
+               return CdmStore.getCommonService().find(IdentifiableEntity.class, uuid);
+       }
+
+       @Override
+       protected void open(ExecutionEvent event, IdentifiableEntity entity) {
+               try {
+                       BulkEditorUtil.openEditor(entity);
+               } catch (PartInitException e) {
+            MessagingUtils.error(this.getClass(), "Bulk Editor could not be opened for "+entity, e);
+               }
+       }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForTaxonNodeHandler.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForTaxonNodeHandler.java
new file mode 100644 (file)
index 0000000..8307781
--- /dev/null
@@ -0,0 +1,31 @@
+package eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class OpenBulkEditorForTaxonNodeHandler extends DefaultOpenHandlerBase<TaxonNode> {
+
+    @Override
+    protected TaxonNode getEntity(UUID uuid) {
+        return CdmStore.getService(ITaxonNodeService.class).load(uuid);
+    }
+
+    @Override
+    protected void open(ExecutionEvent event, TaxonNode entity) {
+        try {
+            BulkEditorUtil.openEditor(entity.getTaxon());
+        } catch (PartInitException e) {
+            MessagingUtils.error(this.getClass(), "Bulk Editor could not be opened for "+entity, e);
+        }
+    }
+
+}
index 00f746d977cb26c97514f565407ab3a4928d0453..d57ea686635b84c2219f18ff87d83e6e1c1873d6 100644 (file)
@@ -10,7 +10,6 @@
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
@@ -21,6 +20,7 @@ import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPersistableElement;
 
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -41,8 +41,6 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>Abstract AbstractBulkEditorInput class.</p>
- *
  * @author p.ciardelli
  * @created 25.06.2009
  * @version 1.0
@@ -56,33 +54,20 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
        private List<T> model;
 
        private IEntityCreator<T> entityCreator;
-
-       private static Class serviceClass;
+       private final ConversationHolder conversation;
 
        public AbstractBulkEditorInput() {
            super(true);
+           this.conversation = CdmStore.createConversation();
        }
 
-       /**
-        * <p>NewInstance</p>
-        *
-        * @param inputType a {@link eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInputTypeValues.BulkEditorInputType} object.
-        * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
-        */
        static public AbstractBulkEditorInput NewInstance(BulkEditorInputType inputType) {
 
                return BulkEditorInputType.getInput(inputType);
        }
 
-       /**
-        * <p>NewInstance</p>
-        *
-        * @param entity a {@link eu.etaxonomy.cdm.model.common.IdentifiableEntity} object.
-        * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
-        */
        public static AbstractBulkEditorInput NewInstance(IdentifiableEntity entity) {
 
-
                BulkEditorInputType inputType = BulkEditorInputType.getByType(entity.getClass());
 
                AbstractBulkEditorInput editorInput = NewInstance(inputType);
@@ -92,83 +77,35 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
                return editorInput;
        }
 
-       /**
-        * <p>listEntities</p>
-        *
-        * @param configurator a {@link eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator} object.
-        * @return a {@link java.util.List} object.
-        */
        protected abstract List<T> listEntities(IIdentifiableEntityServiceConfigurator configurator);
 
-       /**
-        * <p>loadEntity</p>
-        *
-        * @param entityUuid a {@link java.util.UUID} object.
-        * @return a T object.
-        */
-       protected T loadEntity(UUID entityUuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{});
-               return (T) CdmStore.getService(serviceClass).load(entityUuid, propertyPaths);
-       }
+       protected abstract T loadEntity(UUID entityUuid);
 
        private void setEntityUuid(UUID entityUuid){
                this.entityUuid = entityUuid;
        }
 
-       /**
-        * <p>Getter for the field <code>entityUuid</code>.</p>
-        *
-        * @return a {@link java.util.UUID} object.
-        */
        public UUID getEntityUuid() {
                return entityUuid;
        }
 
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#exists()
-        */
-       /**
-        * <p>exists</p>
-        *
-        * @return a boolean.
-        */
        @Override
     public boolean exists() {
                // TODO Auto-generated method stub
                return false;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-        */
-       /**
-        * <p>getImageDescriptor</p>
-        *
-        * @return a {@link org.eclipse.jface.resource.ImageDescriptor} object.
-        */
        @Override
     public ImageDescriptor getImageDescriptor() {
                // TODO Auto-generated method stub
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#getPersistable()
-        */
-       /**
-        * <p>getPersistable</p>
-        *
-        * @return a {@link org.eclipse.ui.IPersistableElement} object.
-        */
        @Override
     public IPersistableElement getPersistable() {
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-        */
        /** {@inheritDoc} */
        @Override
     @SuppressWarnings("unchecked")
@@ -176,11 +113,6 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
                return null;
        }
 
-       /**
-        * <p>Setter for the field <code>query</code>.</p>
-        *
-        * @param bulkEditorQuery a {@link eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery} object.
-        */
        public void performSearch(final BulkEditorQuery bulkEditorQuery) {
 
                List<T> entityList = new ArrayList<T>();
@@ -206,29 +138,14 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
                model = entityList;
        }
 
-       /**
-        * <p>isMergingEnabled</p>
-        *
-        * @return a boolean.
-        */
        public boolean isMergingEnabled() {
                return false;
        }
 
-       /**
-        * <p>isMergingEnabled</p>
-        *
-        * @return a boolean.
-        */
        public boolean isConvertingEnabled() {
                return false;
        }
-       /**
-        * <p>isMarkerTypeEditingEnabled</p>
-        *
-        * @param markerType a {@link eu.etaxonomy.cdm.model.common.MarkerType} object.
-        * @return a boolean.
-        */
+
        public boolean isMarkerTypeEditingEnabled(MarkerType markerType) {
                return false;
        }
@@ -266,9 +183,6 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
                return entityCreator;
        }
 
-       /**
-        * @return
-        */
        protected abstract IEntityCreator<T> createEntityCreator();
 
        /**
@@ -295,10 +209,6 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
                return entity.getClass().getSimpleName();
        }
 
-       /**
-        * @param entity
-        * @return
-        */
        public String getText(T entity) {
                if(entity instanceof IdentifiableEntity){
                        IdentifiableEntity identifiableEntity = (IdentifiableEntity) HibernateProxyHelper.deproxy(entity);
@@ -309,9 +219,6 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
                return "No text. Implement in subclass";
        }
 
-       /**
-        * @return
-        */
        public List<T> getModel() {
                return model;
        }
@@ -326,21 +233,19 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
            }
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
     @Override
     public   List<T> getRootEntities() {
         return getModel();
     }
 
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
-     */
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         // TODO Auto-generated method stub
         return null;
     }
+
+       public ConversationHolder getConversation() {
+               return conversation;
+       }
 }
index f7f65de9f095b112fbc3e781544aba790d752daf..4140a1be4e714166e632fd6ac3cd09255534ab0a 100644 (file)
@@ -9,11 +9,15 @@
 */
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
+import java.util.Arrays;
 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;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
@@ -147,19 +151,14 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
 
        @Override
        public TeamOrPersonBase save(TeamOrPersonBase entity) {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return (TeamOrPersonBase) CdmStore.getService(IAgentService.class).merge(entity, true).getMergedEntity();
-           } else {
-               CdmStore.getService(IAgentService.class).saveOrUpdate(entity) ;
-               return entity;
-           }
+          return (TeamOrPersonBase) CdmStore.getService(IAgentService.class).merge(entity, true).getMergedEntity();
+          
        }
 
        @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)
@@ -171,4 +170,12 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
     }
 
 
+       @Override
+       protected TeamOrPersonBase loadEntity(UUID entityUuid) {
+               List<String> propertyPaths = Arrays.asList(new String[]{});
+               return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), TeamOrPersonBase.class);
+       }
+
+
+
 }
index a509aecbddfa4e436d9563d672c08961f26275f0..bbbc9a27da7c2648a2d91daef5aef0fb22cbb7ea 100644 (file)
@@ -27,7 +27,7 @@ import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
 
 public enum BulkEditorInputType {
@@ -100,7 +100,7 @@ public enum BulkEditorInputType {
                        return GROUP;
                } else if (User.class.isAssignableFrom(clazz)) {
                        return USER;
-               } else if (Taxon.class.isAssignableFrom(clazz)){
+               } else if (TaxonBase.class.isAssignableFrom(clazz)){
                        return TAXON;
                } else if (Media.class.isAssignableFrom(clazz)){
             return MEDIA;
index 0082939986a984d95527749de20bf64d7bfb53ca..9b46b570defdc3a8d81578a44c472bcf73470936 100644 (file)
 
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
+import java.util.Arrays;
 import java.util.List;
+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;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.GroupCreator;
@@ -62,20 +67,16 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
         */
        @Override
        public Group save(Group entity) {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IGroupService.class).merge(entity, true).getMergedEntity();
-           } else {
-               CdmStore.getService(IGroupService.class).saveOrUpdate(entity);
-               return entity;
-           }
+           return CdmStore.getService(IGroupService.class).merge(entity, true).getMergedEntity();
+           
        }
 
        /* (non-Javadoc)
         * @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)
@@ -120,6 +121,12 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
 
     }
 
+       @Override
+       protected Group loadEntity(UUID entityUuid) {
+               List<String> propertyPaths = Arrays.asList(new String[]{});
+               return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), Group.class);
+       }
+
 
 
 }
index 6f3ccb262a399b5797e9cf26170e2b5d539526d7..052e116234c6cbb7b2152085036d99dcaebe25cc 100644 (file)
@@ -9,12 +9,17 @@
 */
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
+import java.util.Arrays;
 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;
@@ -54,17 +59,19 @@ public class MediaEditorInput extends AbstractBulkEditorInput<Media> {
 
     @Override
     public Media save(Media entity) {
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            return CdmStore.getService(IMediaService.class).merge(entity, true).getMergedEntity();
-        } else {
-            CdmStore.getService(IMediaService.class).saveOrUpdate(entity) ;
-            return entity;
-        }
+       return CdmStore.getService(IMediaService.class).merge(entity, true).getMergedEntity();
+       
     }
 
     @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
@@ -91,4 +98,11 @@ public class MediaEditorInput extends AbstractBulkEditorInput<Media> {
 
         return sortProviders;
     }
+    
+       @Override
+       protected Media loadEntity(UUID entityUuid) {
+               List<String> propertyPaths = Arrays.asList(new String[]{});
+               return CdmStore.getService(IMediaService.class).load(entityUuid, propertyPaths);
+       }
+
 }
index 6116162d2857d9b597787d6de27db0edb2ffdbb7..f257149ac49c5536e59601f941cc006190aa4809 100644 (file)
 
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
+import java.util.Arrays;
 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;
@@ -98,7 +102,9 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
        /** {@inheritDoc} */
        @Override
        public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
-               return CdmStore.getSearchManager().findNames(configurator);
+               
+               configurator.setPropertyPaths(getPropertyPaths());
+               return CdmStore.getSearchManager().findNames(configurator, this.getConversation());
        }
 
        /** {@inheritDoc}
@@ -108,22 +114,24 @@ 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) {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(INameService.class).merge(entity, true).getMergedEntity();
-           } else {
-               CdmStore.getService(INameService.class).saveOrUpdate(entity);
-               return entity;
-           }
+               TaxonNameBase mergedName = null;
+               mergedName =  CdmStore.getService(INameService.class).merge(entity, true).getMergedEntity();
+               return mergedName;
+               
        }
 
        /* (non-Javadoc)
@@ -173,5 +181,26 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
 
     }
 
+       @Override
+       protected TaxonNameBase loadEntity(UUID entityUuid) {
+               List<String> propertyPaths = Arrays.asList(new String[]{});
+               return CdmStore.getService(INameService.class).load(entityUuid, getPropertyPaths());
+       }
+
+
+    private List<String> getPropertyPaths(){
+        List<String> nameBasePropertyPaths = Arrays.asList(new String[] {
+        "name.descriptions",
+         "name.typeDesignations",
+         "name.status",
+         "name.nomenclaturalReference.inReference",
+         "name.taxonBases.taxonNodes",
+         "name.relationsFromThisName",
+         "name.relationsToThisName",
+         "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status",
+         "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName"});
+        
+        return nameBasePropertyPaths;
+    }
 
 }
index 893232a917d8eae331cee17b86db4ce23c00599f..af2c3c883cac8925ed21d21a0d415ec8607ae6d9 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 929379d2731220a67cd558a7815b56545c18e923..578105cf48fef7adf81e7c1cce0c8bb7d274dee5 100644 (file)
 
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
+import java.util.Arrays;
 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;
@@ -127,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;
        }
 
@@ -137,12 +140,8 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        /** {@inheritDoc} */
        @Override
     public SpecimenOrObservationBase<IIdentifiableEntityCacheStrategy> save(SpecimenOrObservationBase entity) {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IOccurrenceService.class).merge(entity, true).getMergedEntity();
-           } else {
-               CdmStore.getService(IOccurrenceService.class).save(entity);
-               return entity;
-           }
+           return CdmStore.getService(IOccurrenceService.class).merge(entity, true).getMergedEntity();
+          
        }
 
 
@@ -173,4 +172,11 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
     public void merge() {
 
     }
+
+       @Override
+       protected SpecimenOrObservationBase loadEntity(UUID entityUuid) {
+               List<String> propertyPaths = Arrays.asList(new String[]{});
+               return CdmStore.getService(IOccurrenceService.class).load(entityUuid, propertyPaths);
+       }
+
 }
index 8b8c11360c4442e1c160b9ed43ea630209e3b738..48cf55fbc82f0b42027b0e3ca2cd9722fa90c836 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,19 +133,14 @@ 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} */
        @Override
     public Reference save(Reference entity) {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IReferenceService.class).merge(entity, true).getMergedEntity();
-           } else {
-               CdmStore.getService(IReferenceService.class).saveOrUpdate(entity);
-               return entity;
-           }
+          return CdmStore.getService(IReferenceService.class).merge(entity, true).getMergedEntity();
        }
 
        /* (non-Javadoc)
index aa6dd1537bbae92c19b7a49adc5b35dbb09964eb..4d2a7257cdc53a00fefc590180671e14b13b04c7 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
@@ -71,12 +74,7 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
        }\r
        @Override\r
        public TaxonBase save(TaxonBase entity) {\r
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
-               return CdmStore.getService(ITaxonService.class).merge(entity, true).getMergedEntity();\r
-           } else {\r
-               CdmStore.getService(ITaxonService.class).saveOrUpdate(entity);\r
-               return entity;\r
-           }\r
+           return CdmStore.getService(ITaxonService.class).merge(entity, true).getMergedEntity();\r
        }\r
 \r
 \r
@@ -84,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
@@ -112,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 72dd138a4fc45db2581d631c2517b9b69ec6a1ae..06bd812f7e98ac99755ca05adfac25cf3bcbb233 100644 (file)
 
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
+import java.util.Arrays;
 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;
@@ -62,20 +65,14 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
         */
        @Override
        public User save(User entity) {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IUserService.class).merge(entity, true).getMergedEntity();
-           } else {
-               CdmStore.getService(IUserService.class).saveOrUpdate(entity);
-               return entity;
-           }
-
+           return CdmStore.getService(IUserService.class).merge(entity, true).getMergedEntity();
        }
 
        /* (non-Javadoc)
         * @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;
        }
 
@@ -121,6 +118,14 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
     public void merge() {
 
     }
+    
+
+       @Override
+       protected User loadEntity(UUID entityUuid) {
+               List<String> propertyPaths = Arrays.asList(new String[]{});
+               return CdmStore.getService(IUserService.class).load(entityUuid, propertyPaths);
+       }
+
 
 
 }
index 81ebab53c8c63236ee855d06810806a8a13b884d..c9f014554a3efa6580f0c8d9b5177a4f87ff46ed 100644 (file)
@@ -43,12 +43,8 @@ public class UserCreator  implements IEntityCreator<User>{
        public User createEntity(Object key, String text) {
                try{
                        User user = User.NewInstance(text, text);
-                        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                            CdmStore.getService(IUserService.class).createUser(user);
-                            user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid());
-                        } else {
-                            CdmStore.getService(IUserService.class).createUser(user);
-                        }
+                       CdmStore.getService(IUserService.class).createUser(user);
+                       user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid());
                        return user;
                } catch (AccessDeniedException e){
                        MessagingUtils.messageDialog("Access denied", getClass(), e.getMessage(), e);
index c8a273fa6f3e3db6e394ee4e318f96a703357b82..ff5b0a6dfc3a8ab721487348af9ddeebb4f669ed 100644 (file)
@@ -255,6 +255,9 @@ public class ReferencingObjectsView extends AbstractCdmViewPart {
                 referencedObject = CdmStore.getService(IUserService.class).load(entity, null);
             } else if (Group.class.isAssignableFrom(objectClass)){
                 referencedObject = CdmStore.getService(IGroupService.class).load(entity, null);
+            }
+            else if(CdmBase.class.isAssignableFrom(objectClass)){
+                referencedObject = CdmStore.getCommonService().find(objectClass, entity);
             }
                        //referencedObject =(CdmBase) CdmStore.getService(IIdentifiableEntityService.class).load(referencedObject.getUuid());
                Set<CdmBase> setOfReferencingObjects = null;
@@ -389,4 +392,9 @@ public class ReferencingObjectsView extends AbstractCdmViewPart {
 
        }
 
+       @Override
+       protected String getViewName() {
+               return "Referencing Objects";
+       }
+
 }
index b686fd73494bf348268745493a03c4045608433b..0b0bd589a2f2dfbfb1e449d248e2b641a3928623 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.2.0-SNAPSHOT.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.2.0-SNAPSHOT.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.2.0-SNAPSHOT.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.2.0-SNAPSHOT.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.2.0-SNAPSHOT.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.2.0-SNAPSHOT.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.2.0-SNAPSHOT.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.2.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.1.0-SNAPSHOT/cdmlib-services-4.2.0-SNAPSHOT-sources.jar"/>\r
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.2.0-SNAPSHOT.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 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-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.4.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-ext/4.3.0-SNAPSHOT/cdmlib-ext-4.4.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.4.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-io/4.3.0-SNAPSHOT/cdmlib-io-4.4.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.4.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-model/4.3.0-SNAPSHOT/cdmlib-model-4.4.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.4.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.4.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.4.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.4.0-SNAPSHOT.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.3.0-SNAPSHOT/cdmlib-services-4.4.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.4.0-SNAPSHOT.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 c63f7f2956addb9ae59474ba4abfff3ffbe3f685..59335dd779c8ef55c63930647ae869497b9cdb8a 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.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Eclipse-BundleShape: dir
 Export-Package: com.google.api,
  com.google.api.detect,
@@ -82,6 +82,7 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.io.specimen,
  eu.etaxonomy.cdm.io.specimen.abcd206.in,
  eu.etaxonomy.cdm.io.specimen.excel.in,
+ eu.etaxonomy.cdm.io.specimen.gbif.in,
  eu.etaxonomy.cdm.io.taxonx,
  eu.etaxonomy.cdm.io.tcsxml,
  eu.etaxonomy.cdm.io.tcsxml.in,
@@ -497,15 +498,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.2.0-SNAPSHOT.jar,
- lib/cdmlib-ext-4.2.0-SNAPSHOT.jar,
- lib/cdmlib-io-4.2.0-SNAPSHOT.jar,
- lib/cdmlib-model-4.2.0-SNAPSHOT.jar,
- lib/cdmlib-persistence-4.2.0-SNAPSHOT.jar,
- lib/cdmlib-print-4.2.0-SNAPSHOT.jar,
- lib/cdmlib-remote-4.2.0-SNAPSHOT.jar,
- lib/cdmlib-services-4.2.0-SNAPSHOT.jar,
- lib/cdmlib-test-4.2.0-SNAPSHOT.jar,
+ lib/cdmlib-commons-4.4.0-SNAPSHOT.jar,
+ lib/cdmlib-ext-4.4.0-SNAPSHOT.jar,
+ lib/cdmlib-io-4.4.0-SNAPSHOT.jar,
+ lib/cdmlib-model-4.4.0-SNAPSHOT.jar,
+ lib/cdmlib-persistence-4.4.0-SNAPSHOT.jar,
+ lib/cdmlib-print-4.4.0-SNAPSHOT.jar,
+ lib/cdmlib-remote-4.4.0-SNAPSHOT.jar,
+ lib/cdmlib-services-4.4.0-SNAPSHOT.jar,
+ lib/cdmlib-test-4.4.0-SNAPSHOT.jar,
  lib/cglib-3.2.0.jar,
  lib/cglib-nodep-3.2.0.jar,
  lib/classmate-1.3.1.jar,
@@ -632,7 +633,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,
index b373e4222cbb24a9b14704df56b2ac3c3b8b7b88..eea0ce8c97856a183a596863b6f95efac272ede5 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.2.0-SNAPSHOT.jar,\
-               lib/cdmlib-ext-4.2.0-SNAPSHOT.jar,\
-               lib/cdmlib-io-4.2.0-SNAPSHOT.jar,\
-               lib/cdmlib-model-4.2.0-SNAPSHOT.jar,\
-               lib/cdmlib-persistence-4.2.0-SNAPSHOT.jar,\
-               lib/cdmlib-print-4.2.0-SNAPSHOT.jar,\
-               lib/cdmlib-remote-4.2.0-SNAPSHOT.jar,\
-               lib/cdmlib-services-4.2.0-SNAPSHOT.jar,\
-               lib/cdmlib-test-4.2.0-SNAPSHOT.jar,\
+               lib/cdmlib-commons-4.4.0-SNAPSHOT.jar,\
+               lib/cdmlib-ext-4.4.0-SNAPSHOT.jar,\
+               lib/cdmlib-io-4.4.0-SNAPSHOT.jar,\
+               lib/cdmlib-model-4.4.0-SNAPSHOT.jar,\
+               lib/cdmlib-persistence-4.4.0-SNAPSHOT.jar,\
+               lib/cdmlib-print-4.4.0-SNAPSHOT.jar,\
+               lib/cdmlib-remote-4.4.0-SNAPSHOT.jar,\
+               lib/cdmlib-services-4.4.0-SNAPSHOT.jar,\
+               lib/cdmlib-test-4.4.0-SNAPSHOT.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,\
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
index 08984ab2be532684e4d4a592e07c57ff3ed03fdb..e59963118723389bd7ef0af75d71dc27506ce942 100644 (file)
@@ -4,7 +4,7 @@
   <parent>\r
     <groupId>eu.etaxonomy</groupId>\r
     <artifactId>taxeditor-parent</artifactId>\r
-    <version>4.2.0-SNAPSHOT</version>\r
+    <version>4.4.0-SNAPSHOT</version>\r
   </parent>\r
   <modelVersion>4.0.0</modelVersion>\r
   <artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
       <version>${cdmlib.version}</version>\r
     </dependency>\r
 \r
-    <!-- <dependency> -->\r
-    <!-- <groupId>org.eclipse.jetty</groupId> -->\r
-    <!-- <artifactId>jetty-server</artifactId> -->\r
-    <!-- <version>9.1.3.v20140225</version> -->\r
-    <!-- </dependency> -->\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>org.eclipse.jetty</groupId> -->\r
-    <!-- <artifactId>jetty-util</artifactId> -->\r
-    <!-- <version>9.1.3.v20140225</version> -->\r
-    <!-- </dependency> -->\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>org.eclipse.jetty</groupId> -->\r
-    <!-- <artifactId>jetty-xml</artifactId> -->\r
-    <!-- <version>9.1.3.v20140225</version> -->\r
-    <!-- </dependency> -->\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>org.eclipse.jetty</groupId> -->\r
-    <!-- <artifactId>jetty-servlet</artifactId> -->\r
-    <!-- <version>9.1.3.v20140225</version> -->\r
-    <!-- </dependency> -->\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>org.eclipse.jetty</groupId> -->\r
-    <!-- <artifactId>jetty-webapp</artifactId> -->\r
-    <!-- <version>9.1.3.v20140225</version> -->\r
-    <!-- </dependency> -->\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>org.eclipse.jetty</groupId> -->\r
-    <!-- <artifactId>jetty-security</artifactId> -->\r
-    <!-- <version>9.1.3.v20140225</version> -->\r
-    <!-- </dependency> -->\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>org.eclipse.jetty</groupId> -->\r
-    <!-- <artifactId>jetty-http</artifactId> -->\r
-    <!-- <version>${jetty.version}</version> -->\r
-    <!-- </dependency> -->\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>org.eclipse.jetty</groupId> -->\r
-    <!-- <artifactId>jetty-io</artifactId> -->\r
-    <!-- <version>${jetty.version}</version> -->\r
-    <!-- </dependency> -->\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>javax.servlet</groupId> -->\r
-    <!-- <artifactId>javax.servlet-api</artifactId> -->\r
-    <!-- <version>3.1.0</version> -->\r
-    <!-- </dependency> -->\r
-\r
-    <!-- <dependency> -->\r
-    <!-- <groupId>javax.servlet</groupId> -->\r
-    <!-- <artifactId>jsp-api</artifactId> -->\r
-    <!-- <version>2.0</version> -->\r
-    <!-- </dependency> -->\r
-\r
     <dependency>\r
       <groupId>net.sf.ehcache</groupId>\r
       <artifactId>ehcache-core</artifactId>\r
       <artifactId>hamcrest-core</artifactId>\r
       <version>1.3</version>\r
     </dependency>\r
-    <dependency>\r
-      <groupId>com.mchange</groupId>\r
-      <artifactId>c3p0</artifactId>\r
-      <version>${c3p0.version}</version>\r
-    </dependency>\r
     <dependency>\r
       <groupId>org.jboss.spec.javax.transaction</groupId>\r
       <artifactId>jboss-transaction-api_1.1_spec</artifactId>\r
     </dependency>\r
 \r
     <!-- For Unit Tests Start -->\r
+       <!-- still needed? -->\r
 \r
-    <dependency>\r
-      <groupId>org.unitils</groupId>\r
-      <artifactId>unitils-core</artifactId>\r
-      <version>3.4.2</version>\r
-    </dependency>\r
-    <dependency>\r
-      <groupId>org.unitils</groupId>\r
-      <artifactId>unitils-spring</artifactId>\r
-      <version>3.4.2</version>\r
-    </dependency>\r
-    <dependency>\r
-      <groupId>org.unitils</groupId>\r
-      <artifactId>unitils-database</artifactId>\r
-      <version>3.4.2</version>\r
-    </dependency>\r
     <dependency>\r
       <groupId>commons-dbcp</groupId>\r
       <artifactId>commons-dbcp</artifactId>\r
       <artifactId>commons-pool</artifactId>\r
       <version>1.5.4</version>\r
     </dependency>\r
-    <dependency>\r
-      <groupId>org.unitils</groupId>\r
-      <artifactId>unitils-dbmaintainer</artifactId>\r
-      <version>3.4.2</version>\r
-    </dependency>\r
-    <dependency>\r
-      <groupId>com.h2database</groupId>\r
-      <artifactId>h2</artifactId>\r
-      <version>1.4.181</version>\r
-    </dependency>\r
-    <dependency>\r
-      <groupId>org.unitils</groupId>\r
-      <artifactId>unitils-dbunit</artifactId>\r
-      <version>3.4.2</version>\r
-    </dependency>\r
-    <dependency>\r
-      <groupId>org.dbunit</groupId>\r
-      <artifactId>dbunit</artifactId>\r
-      <version>2.4.9</version>\r
-    </dependency>\r
+\r
\r
     <!-- For Unit Tests End -->\r
 \r
     <!-- For Hibernate Mapping Start -->\r
                <version>5.5.8</version>\r
                <scope>compile</scope>\r
        </dependency>\r
-    \r
 \r
   </dependencies>\r
 </project>\r
index c9f360f44b6669cb364d064bcc174b7fefacb763..2cb31436b9f5f14cb5e81d8d3235b8703ab57d52 100644 (file)
@@ -59,6 +59,7 @@ import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;\r
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;\r
+import eu.etaxonomy.cdm.api.service.IPreferenceService;\r
 import eu.etaxonomy.cdm.api.service.IProgressMonitorService;\r
 import eu.etaxonomy.cdm.api.service.IReferenceService;\r
 import eu.etaxonomy.cdm.api.service.IService;\r
@@ -413,6 +414,11 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu
     public IGroupService getGroupService(){\r
         return (IGroupService) getService(IGroupService.class, "/remoting/group.service", new CdmServiceRequestExecutor());\r
     }\r
+    \r
+    @Override\r
+    public IPreferenceService getPreferenceService(){\r
+        return (IPreferenceService) getService(IPreferenceService.class, "/remoting/preference.service", new CdmServiceRequestExecutor());\r
+    }\r
 \r
 \r
     @Override\r
index c99ce01b646bc73feed2bcbf36485ad9210d103b..8b079fcfaa7467cca279c51dc2f6a42c1277ae71 100644 (file)
@@ -71,8 +71,8 @@ public class CacheLoader {
         } else if (obj instanceof Collection) {
             return (T) load((Collection<T>)obj, recursive, update);
         } else if(obj instanceof Pager) {
-             load(((Pager)obj).getRecords(), recursive, update);
-             return obj;
+               load(((Pager)obj).getRecords(), recursive, update);
+            return obj;
         } else if(obj instanceof MergeResult) {
             return (T) load((MergeResult<CdmBase>)obj, recursive, update);
         }
@@ -153,7 +153,7 @@ public class CacheLoader {
         return map;
     }
 
-    public <T extends Object> Collection<T> load(Collection<T> collection, boolean recursive, boolean update){
+    public <T extends Object> Collection<T> load(Collection<T> collection,  boolean recursive, boolean update){
 
         Collection<T> loadedCollection;
         if(isRecursiveEnabled && recursive) {
index 73195291608f0363f62a0505b6b2903060f90f85..442bc6112b88e24a7899aad191f39eed6001b7e4 100644 (file)
@@ -246,10 +246,7 @@ public class EntityCacherDebugResult {
             return;
         }
 
-        int originalMapSize = map.size();
-
         Iterator<Map.Entry<T,T>> iter = map.entrySet().iterator();
-        int i=0;
         while ( iter.hasNext() ) {
             Map.Entry<T,T> e = iter.next();
             CdmEntityInfo childCei = new CdmEntityInfo(e);
@@ -268,15 +265,22 @@ public class EntityCacherDebugResult {
     private <T extends Object> void debug(Collection<T> collection,
             List<CdmEntityInfo> alreadyVisitedEntities,
             CdmEntityInfo cei) {
-        int length = collection.size();
-        Object[] result = new Object[length];
         Iterator<T> collectionItr = collection.iterator();
 
         while(collectionItr.hasNext()) {
             Object obj = collectionItr.next();
-            CdmEntityInfo childCei = new CdmEntityInfo(ProxyUtils.deproxy(obj));
-            cei.addChild(childCei);
-            debugRecursive(obj, alreadyVisitedEntities, childCei);
+            boolean alreadyVisited = false;
+            for (CdmEntityInfo entityInfo: alreadyVisitedEntities) {
+                if(obj.equals(entityInfo.getObject())){
+                    alreadyVisited = true;
+                    break;
+                }
+            }
+            if(!alreadyVisited){
+                CdmEntityInfo childCei = new CdmEntityInfo(ProxyUtils.deproxy(obj));
+                cei.addChild(childCei);
+                debugRecursive(obj, alreadyVisitedEntities, childCei);
+            }
 
         }
 
@@ -312,7 +316,6 @@ public class EntityCacherDebugResult {
                 // retrieve the actual object corresponding to the field.
                 // this object will be either a CdmBase or a Collection / Map
                 // with CdmBase as the generic type
-                String f = field;
                 CdmEntityInfo childCei = getDebugCdmBaseTypeFieldValue(cdmEntity, field, alreadyVisitedEntities, cei);
                 if(!childCei.isProxy()) {
                     Object object = childCei.getObject();
@@ -356,9 +359,6 @@ public class EntityCacherDebugResult {
             o = ProxyUtils.deproxy(o);
             CdmBase cdmEntityInSubGraph = null;
 
-            boolean isHibernateProxy = false;
-            boolean isPersistentCollection = false;
-
             childCei = new CdmEntityInfo(o);
             cei.addChild(childCei);
             childCei.setField(field);
@@ -419,9 +419,10 @@ public class EntityCacherDebugResult {
             for(CdmEntityInfo cei : ceiSet) {
                 if(cei.getObject() == objectToCompare) {
                     foundIdentical = true;
-                } else if(objectToCompare.equals(cei.getObject())) {
-                    return false;
                 }
+//                } else if(objectToCompare.equals(cei.getObject())) {
+//                    return false;
+//                }
             }
         }
         return foundIdentical;
index 36eb7088ab6798c805cf402bdbc6e929cd45917c..cc25fc29ce70522e049a96e6f4850bbdb9ee2488 100644 (file)
@@ -2,12 +2,13 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Editor Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: OSGI-INF/l10n/plugin
 Export-Package: eu.etaxonomy.taxeditor.editor,
  eu.etaxonomy.taxeditor.editor.handler,
+ eu.etaxonomy.taxeditor.editor.handler.defaultHandler,
  eu.etaxonomy.taxeditor.editor.internal,
  eu.etaxonomy.taxeditor.editor.key.polytomous,
  eu.etaxonomy.taxeditor.editor.name,
index 633e8eb15ed13ce8e54cfb09bf88cd05971eeec1..b069ba2e463d56aec56418bdce884c9572d8c30d 100644 (file)
@@ -16,7 +16,7 @@ SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE=Remove from this Sequence
 SingleReadSequenceContextMenu_REUSE_FOR_SEQUENCE=Reuse for other Sequence
 SingleReadSequenceContextMenu_REUSE_SINGLE_READ_HERE=Reuse SingleRead here
 
-DerivateView_DERIVATIVE_EDITOR=Derivative Editor
+DerivateView_DERIVATIVE_EDITOR=Specimen Editor
 DerivateView_SAVING_HIERARCHY=Saving hierarchy
 DerivateView_UNSAVED_CHANGES=View has unsaved changes
 DerivateView_YOU_NEED_TO_SAVE=You need to save before performing this action
@@ -34,7 +34,7 @@ DerivateViewEditorInput_NO_ROOT=No root element found\!
 MoveDerivateOperation_MOVE_NOT_POSSIBLE=Moving derivatives not possible\!
 MoveDerivateOperation_MOVE_TO_NOT_POSSIBLE=Moving "%s" to "%s" is not possible\!
 
-OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR=Could not open Derivative Editor
+OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR=Could not open Specimen Editor
 OpenDerivateEditorForTaxonHandler_FAILED_TO_OPEN=Failed to open Editor
 OpenDerivateEditorForTaxonHandler_HIERARCHY_CORRUPTED=The derivative hierarchy is corrupted\!
 OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND=No Derivatives found
@@ -42,3 +42,12 @@ 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?
+
+DescriptiveViewPart_COLLAPSE_ALL=Collapse All
+DescriptiveViewPart_EXPAND_ALL=Expand All
+DescriptiveViewPart_FACTUAL_DATA=Factual Data
+DescriptiveViewPart_SHOW_ALL_DATA=Show all factual data
+
+ConceptGraphView_VIEWER_NAME=Concept Graph
+ConceptViewPart_VIEWER_NAME=Concept Relations
+UsesViewPart_VIEWER_NAME=Uses
index 0f73001ea280423fc6ee2a5b4717325996bbdfae..f252b7d844d652d870d52961f6fd835764068079 100644 (file)
@@ -16,7 +16,7 @@ SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE=Von Sequenz entfernen
 SingleReadSequenceContextMenu_REUSE_FOR_SEQUENCE=Für andere Sequenz verwenden
 SingleReadSequenceContextMenu_REUSE_SINGLE_READ_HERE=SingleRead hier verwenden
 
-DerivateView_DERIVATIVE_EDITOR=Derivat-Editor
+DerivateView_DERIVATIVE_EDITOR=Specimen-Editor
 DerivateView_SAVING_HIERARCHY=Speichere Hierarchie
 DerivateView_UNSAVED_CHANGES=Ungepeicherte Ã„nderungen
 DerivateView_YOU_NEED_TO_SAVE=Sie müssen speichern, um diese Aktion auszuführen
@@ -34,7 +34,7 @@ DerivateViewEditorInput_NO_ROOT=Kein Root-Element gefunden\!
 MoveDerivateOperation_MOVE_NOT_POSSIBLE=Verschieben von Derivaten nicht möglich\!
 MoveDerivateOperation_MOVE_TO_NOT_POSSIBLE=Verschieben von "%s" nach "%s" nicht möglich\!
 
-OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR=Konnte Derivat-Editor nicht Ã¶ffnen
+OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR=Konnte Specimen-Editor nicht Ã¶ffnen
 OpenDerivateEditorForTaxonHandler_FAILED_TO_OPEN=Öffnen des Editors fehlgeschlagen
 OpenDerivateEditorForTaxonHandler_HIERARCHY_CORRUPTED=Die Derivathierarchie ist korrumpiert\!
 OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND=Keine Derivate gefunden
@@ -42,3 +42,12 @@ 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_REALLY_DELETE_TAXON=Wollen Sie wirklich das ausgewählte Taxon löschen?
+
+DescriptiveViewPart_COLLAPSE_ALL=Alles einklappen
+DescriptiveViewPart_EXPAND_ALL=Alles ausklappen
+DescriptiveViewPart_FACTUAL_DATA=Faktendaten
+DescriptiveViewPart_SHOW_ALL_DATA=Zeige alle Faktendaten
+
+ConceptGraphView_VIEWER_NAME=Konzeptgraph
+ConceptViewPart_VIEWER_NAME=Konzeptrelationen
+UsesViewPart_VIEWER_NAME=Nutzung
index 8483db30b4dc6a2a6df02b75509ee7067bbb9912..14420cb28163f51b7a7e2fae548a0549a910adc4 100644 (file)
@@ -9,7 +9,7 @@ editor.name.1 = Key
 editor.name.2 = Polytomous Key Graph Editor\r
 editor.name.3 = Polytomous Key List Editor\r
 editor.name.4 = Cdm Authority Editor\r
-editor.name.5 = Derivative Editor\r
+editor.name.5 = Specimen Editor\r
 view.name = Factual Data\r
 view.name.0 = Uses\r
 view.name.1 = Media\r
@@ -111,12 +111,12 @@ command.name.32 = Create Concept Relation
 command.name.33 = Open Related Concept\r
 category.name.7 = -- Group\r
 command.name.34 = Edit CDM Authorities\r
-command.name.35 = Open Derivative Editor\r
+command.name.35 = Open Specimen Editor\r
 scheme.description = The default key binding scheme for the Taxonomic Editor\r
 scheme.name = Taxonomic Editor Default Key Bindings\r
 editor.name.6 = Specimen Import Editor\r
 editor.name.7 = Gbif Import Editor\r
-editor.name.8 = Checklist Editor\r
+editor.name.8 = Distribution Editor\r
 view.name.4 = Specimen Import\r
 view.name.5 = GBIF Specimen Import\r
 command.label.46 = Name\r
@@ -126,7 +126,7 @@ command.label.49 = Misapplication
 command.label.50 = Use Existing Image\r
 command.name.36 = Create Misapplication\r
 command.name.37 = Use Existing Image\r
-command.name.38 = Open Checklist Editor\r
+command.name.38 = Open Distribution Editor\r
 command.name.39 = New Datasource\r
 wizard.name = Specimen Search/Import\r
 wizard.description = Queries data provider for specimens with specified parameters.\nNote: Query results are currently limited to 100.\r
@@ -153,6 +153,9 @@ command.name.43 = Create Field Unit
 command.name.44 = Deep Delete\r
 command.name.46 = Move Synonym (Homotypical Group) to another Accepted Taxon\r
 command.label.56 = Move Synonym (Homotypical Group) to another Accepted Taxon\r
+command.name.57 =  Set as Basionym of Homotypical Group\r
+command.label.57 = Set as Basionym of Homotypical Group\r
+\r
 markerContentGenerator.name = Validation Problems Marker Generator\r
 command.name.45 = Delete\r
 command.name.47 = Delete\r
@@ -163,8 +166,8 @@ command.name.49 = delete
 command.name.50 = delete\r
 command.name.51 = delete
 \r
-editor.name.DERIVATIVE_EDITOR = Derivative Editor\r
-command.label.DERIVATIVE_EDITOR = Derivative Editor\r
+editor.name.DERIVATIVE_EDITOR = Specimen Editor\r
+command.label.DERIVATIVE_EDITOR = Specimen Editor\r
 command.label.LINK_WITH_TAXON_SELECTION = Link with taxon selection\r
 command.label.UNLINK_FROM_TAXON_SELECTION = Unlink from taxon selection\r
 command.label.REUSE_SINGLE_READ_HERE = Reuse single read here\r
@@ -172,9 +175,13 @@ command.label.REUSE_SINGLE_READ_FOR_OTHER_SEQUENCE = Reuse for other sequence
 command.label.REMOVE_SINGLE_READ_FROM_THIS_SEQUENCE = Remove from this sequence\r
 command.label.LINK_WITH_TAXON_SELECTIO = Link with Taxon Selection\r
 command.name.OPEN_NAME_EDITOR_FOR_TAXON_NODE = Open Taxon Editor for taxonnode\r
-command.name.OPEN_DERIVATIVE_EDITOR = Open Derivative Editor\r
+command.name.OPEN_DERIVATIVE_EDITOR = Open Specimen Editor\r
 command.name.LINK_WITH_TAXON_SELECTION = Link with taxon selection\r
 command.name.COPY_SINGLE_READ_TO_CLIPBOARD = Copy SingleRead to clipboard\r
 command.name.REUSE_SINGLE_READ = Reuse SingleRead\r
 command.name.REMOVE_SINGLE_READ = Remove SingleRead from sequence\r
-command.name.TOGGLE_LINK_WITH_TAXON_SELECTION = Toggle link with taxon selection
\ No newline at end of file
+command.name.TOGGLE_LINK_WITH_TAXON_SELECTION = Toggle link with taxon selection\r
+\r
+viewCommandMapping.viewerName.NAME_EDITOR = Name Editor\r
+viewCommandMapping.viewerName.SPECIMEN_EDITOR = Specimen Editor\r
+viewCommandMapping.viewerName.CHECKLIST_EDITOR = Distribution Editor
\ No newline at end of file
index f5e3a1ab81e66dad7899164a223a266bf274c2db..4ea61bdd675431ab0eed5d375314bcdf15f6f88f 100644 (file)
@@ -26,7 +26,7 @@ command.label.5 = Medien
 command.label.6 = Konzeptrelationen
 command.label.7 = Konzeptgraph
 command.label.8 = \u00d6ffne Parent
-menu.label = Neue
+menu.label = Neu
 command.label.9 = Heterotypisches Synonym
 command.label.10 = Homotypisches Synonym
 command.label.11 = Synonym in Homotypischer Gruppe
@@ -68,6 +68,7 @@ menu.label.3 = Neue
 command.label.43 = \u00d6ffne verbundenes Konzept
 command.label.44 = L\u00f6schen
 command.label.45 = Bearbeite Rechte
+command.label.57 = Setze als Basionym der homotypischen Gruppe
 extension.name = Namensbefehle
 category.name.0 = -- Namenseditor
 command.name = \u00d6ffne Elter
@@ -116,7 +117,7 @@ scheme.description = Die Standard Tastenkombinationsschema f\u00fcr den Taxonomi
 scheme.name = Taxonomic Editor Standard Tastenkombinationen
 editor.name.6 = Specimen Import Editor
 editor.name.7 = GBIF Import Editor
-editor.name.8 = Checklist Editor
+editor.name.8 = Verbreitungs-Editor
 view.name.4 = Specimen Import
 view.name.5 = GBIF Specimen Import
 command.label.46 = Name
@@ -126,7 +127,7 @@ command.label.49 = Misapplication
 command.label.50 = Benutze vorhandenes Bild
 command.name.36 = Erstelle Misapplication
 command.name.37 = Benutze vorhandenes Bild
-command.name.38 = \u00d6ffne Checklist Editor
+command.name.38 = \u00d6ffne Verbreitungs-Editor
 command.name.39 = Neue Datenquelle
 wizard.name = Specimen Suche/Import
 wizard.description = Sendet eine Anfrage mit den eingegebenen Parametern an den Datenprovider.\nHinweis: Die Anzahl der Anfrageergebnisse sind auf 100 begrenzt.
@@ -151,8 +152,8 @@ command.name.41 = Nur Individuals Associations anzeigen
 command.name.42 = \u00d6ffne Taxon Editor
 command.name.43 = Neue Field Unit
 command.name.44 = L\u00f6schen (mit Kindern)
-command.name.46 = Verschiebe Synonym(Homotypische Gruppe) zu neuem Akzeptierten Taxon
-command.label.56 = Verschiebe Synonym(Homotypische Gruppe) zu neuem Akzeptierten Taxon
+command.name.46 = Verschiebe Synonym (homotypische Gruppe) zu neuem akzeptiertem Taxon
+command.label.56 = Verschiebe Synonym (homotypische Gruppe) zu neuem akzeptiertem Taxon
 markerContentGenerator.name = Validation Problems Marker Generator
 command.name.45 = L\u00f6schen
 command.name.47 = L\u00f6schen
@@ -162,13 +163,14 @@ command.name.48 = L\u00f6schen
 command.name.49 = L\u00f6schen
 command.name.50 = L\u00f6schen
 command.name.51 = L\u00f6schen
+command.name.57 = Setze als Basionym der homotypischen Gruppe
 
 editor.name.DERIVATIVE_EDITOR = Specimen-Editor
 command.label.DERIVATIVE_EDITOR = Specimen-Editor
 command.label.LINK_WITH_TAXON_SELECTION = Verknüpfe mit Taxonauswahl
 command.label.UNLINK_FROM_TAXON_SELECTION = Verknüpfung mit Taxonauswahl aufheben
 command.label.REUSE_SINGLE_READ_HERE = Single-Read hier wiederverwenden
-command.label.REUSE_SINGLE_READ_FOR_OTHER_SEQUENCE = Für ander Sequenz wiederverwenden
+command.label.REUSE_SINGLE_READ_FOR_OTHER_SEQUENCE = Für andere Sequenz wiederverwenden
 command.label.REMOVE_SINGLE_READ_FROM_THIS_SEQUENCE = Von dieser Sequenz entfernen
 command.label.LINK_WITH_TAXON_SELECTIO = Verknüpfe mit Taxonauswahl
 command.name.OPEN_NAME_EDITOR_FOR_TAXON_NODE = Ã–ffne Namenseditor für Taxonknoten
@@ -177,4 +179,8 @@ command.name.LINK_WITH_TAXON_SELECTION = Verkn
 command.name.COPY_SINGLE_READ_TO_CLIPBOARD = Kopiere Single-Read in die Zwischenablage
 command.name.REUSE_SINGLE_READ = Single-Read wiederverwenden
 command.name.REMOVE_SINGLE_READ = Entferne Single-Read von Sequenz
-command.name.TOGGLE_LINK_WITH_TAXON_SELECTION = De-/Aktiviere Verknüpfung mit Taxonauswahl
\ No newline at end of file
+command.name.TOGGLE_LINK_WITH_TAXON_SELECTION = De-/Aktiviere Verknüpfung mit Taxonauswahl
+
+viewCommandMapping.viewerName.NAME_EDITOR = Namenseditor
+viewCommandMapping.viewerName.SPECIMEN_EDITOR = Specimen-Editor
+viewCommandMapping.viewerName.CHECKLIST_EDITOR = Verbreitungs-Editor
\ No newline at end of file
index a9032e06645e8019de7cd235b69d6d2be370457e..d44bd77183832366df05898333172c42d3cb6315 100644 (file)
                      definitionId="isSynonym">
                </reference>
             </visibleWhen>
+         </command>
+          <command
+               commandId="eu.etaxonomy.taxeditor.editor.name.setAsBasionym"
+               label="%command.label.57"
+               style="push">
+            <visibleWhen>
+              <reference
+                     definitionId="isSynonymInHomotypicalGroupWithMoreSynonyms">
+               </reference>
+           </visibleWhen>
          </command>
          <command
                   commandId="eu.etaxonomy.taxeditor.editor.name.moveSynonymToAnotherAcceptedTaxon"
                style="push">
             <parameter
                   name="org.eclipse.ui.views.showView.viewId"
-                  value="eu.etaxonomy.taxeditor.editor.forms.detailsView">
+                  value="eu.etaxonomy.taxeditor.view.detail">
             </parameter>
          </command>
          <separator
             </with>
          </activeWhen>
       </handler>
-      <handler
-            class="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
-            commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler">
-      </handler>
       <handler
             class="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
             commandId="org.eclipse.ui.edit.delete">
             </with>
          </activeWhen>
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
+            commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler">
+         <activeWhen>
+            <and>
+               <reference
+                     definitionId="isChecklistEditorEnabled">
+               </reference>
+               <or>
+                  <reference
+                        definitionId="isTaxonNode">
+                  </reference>
+                  <reference
+                        definitionId="isClassification">
+                  </reference>
+               </or>
+            </and>
+         </activeWhen>
+      </handler>
    </extension>
    <extension
          name="%extension.name"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.SwapSynonymAndAcceptedHandler"
             id="eu.etaxonomy.taxeditor.editor.name.swapSynonymAndAccepted"
             name="%command.name.6">
+      </command>
+       <command
+            categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
+            defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.SetBasionymHandler"
+            id="eu.etaxonomy.taxeditor.editor.name.setAsBasionym"
+            name="%command.name.57">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             name="%command.name.34">
       </command>
        <command
-             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
              id="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
              name="%command.name.38">
+          <commandParameter
+                id="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler.uuid"
+                name="taxonNodeUuid"
+                optional="true"
+                typeId="eu.etaxonomy.taxeditor.uuidParameterType">
+          </commandParameter>
        </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.new.category"
             name="%command.name.41">
       </command>
       <command
-            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonHandler"
             id="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxon"
             name="%command.name.42">
          <commandParameter
             id="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
             name="%command.name.TOGGLE_LINK_WITH_TAXON_SELECTION">
       </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenSpecimenEditorForTypeSpecimenHandler"
+            id="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
+            name="Open specimen editor for type specimen">
+      </command>
         
    </extension>
    <extension
                   property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isNotHomotypicSynonymOfAcceptedTaxon">
             </test>
          </with>
+      </definition>
+       <definition
+            id="isSynonymInHomotypicalGroupWithMoreSynonyms">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isSynonymInHomotypicalGroupWithMoreSynonyms">
+            </test>
+         </with>
       </definition>
       <definition
             id="isSynonym">
             </test>
          </with>
       </definition>
-      <definition
-            id="isGroupEditor">
-         <with
-               variable="activeEditor">
-            <test
-                  property="taxeditor-bulkeditor.propertyTester.isGroupEditor">
-            </test>
-         </with>
-      </definition>
       <definition
             id="isIndividualsAssociation">
          <with
             </test>
          </with>
       </definition>
+      <definition
+            id="isOrphanedTaxon">
+         <with
+               variable="selection">
+            <test
+                  forcePluginActivation="true"
+                  property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isOrphaned">
+            </test>
+         </with>
+      </definition>
    </extension>
    <extension
          point="org.eclipse.core.expressions.propertyTesters">
             class="eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester"
             id="eu.etaxonomy.taxeditor.editor.name.propertyTester"
             namespace="eu.etaxonomy.taxeditor.editor.name.propertyTester"
-            properties="isAcceptedTaxon,isSynonym,isMisapplication,isTaxonBase,hasEmptyNames,isAcceptedAndHasNoHomotypicSynonyms,isNotHomotypicSynonymOfAcceptedTaxon"
+            properties="isAcceptedTaxon,isSynonym,isMisapplication,isTaxonBase,hasEmptyNames,isAcceptedAndHasNoHomotypicSynonyms,isNotHomotypicSynonymOfAcceptedTaxon,isSynonymInHomotypicalGroupWithMoreSynonyms,isOrphaned"
             type="org.eclipse.jface.viewers.IStructuredSelection">
       </propertyTester>
       <propertyTester
             properties="isMedia,isDescription,isDescriptionElement,isDeletable,isFeatureNodeContainer,isImageGallery,isTaxonEditor,isBulkEditor,isDerivateEditor, isIndividualsAssociation"
             type="org.eclipse.jface.viewers.TreeSelection">
       </propertyTester>
-      <propertyTester
-            class="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorPropertyTester"
-            id="taxeditor-bulkeditor.PropertyTester"
-            namespace="taxeditor-bulkeditor.propertyTester"
-            properties="isGroupEditor"
-            type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">
-      </propertyTester>
       <propertyTester
             class="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
             id="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxonNode"
             selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
-            viewerName="Name Editor">
+            viewerName="%viewCommandMapping.viewerName.NAME_EDITOR">
       </viewCommandMapping>
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxon"
             selection="eu.etaxonomy.cdm.model.taxon.TaxonBase"
-            viewerName="Name Editor">
+            viewerName="%viewCommandMapping.viewerName.NAME_EDITOR">
       </viewCommandMapping>
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor"
             selection="eu.etaxonomy.cdm.model.description.IndividualsAssociation"
-            viewerName="Derivative Editor">
+            viewerName="%viewCommandMapping.viewerName.SPECIMEN_EDITOR">
       </viewCommandMapping>
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor"
             selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
-            viewerName="Derivative Editor">
+            viewerName="%viewCommandMapping.viewerName.SPECIMEN_EDITOR">
+      </viewCommandMapping>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
+            selection="eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode"
+            viewerName="%viewCommandMapping.viewerName.CHECKLIST_EDITOR">
+      </viewCommandMapping>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
+            selection="eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation"
+            viewerName="Specimen Editor">
       </viewCommandMapping>
     </extension>
 </plugin>
index 0ad2cab8240b35cf4ca1c3a2bf17602c3ef3768b..ff30b2ddb4117f1c4ec978b30a6e1c11f0159b65 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
   
   <modelVersion>4.0.0</modelVersion>
index 3f893ddf3a6f32e0b60f2b853013734d5ca7b882..522bd59e370f8a163ee79fe5495353e9d1c4fa67 100644 (file)
@@ -190,7 +190,7 @@ public class EditorUtil extends AbstractUtility {
         }
                TaxonEditorInput input = TaxonEditorInput
                                .NewInstanceFromTaxonBase(taxonBaseUuid);
-               if(input!=null){
+               if(input!=null && input.getTaxonNode()!=null){
                    open(input);
                }
        }
index 790f2326554851d63eb2d1f515ecc02dfd2a6e9f..eab20bc3d2490183b44582f06ff028273d09808e 100644 (file)
@@ -18,7 +18,9 @@ import org.eclipse.osgi.util.NLS;
  */
 public class Messages extends NLS {
     private static final String BUNDLE_NAME = "OSGI-INF/l10n/messages"; //$NON-NLS-1$
-    public static String CreateDerivateContextMenu_ADD;
+    public static String ConceptGraphView_VIEWER_NAME;
+       public static String ConceptViewPart_VIEWER_NAME;
+       public static String CreateDerivateContextMenu_ADD;
     public static String CreateDerivateContextMenu_DNA_SAMPLE;
     public static String CreateDerivateContextMenu_MEDIA;
     public static String CreateDerivateContextMenu_MEDIA_EXISTING;
@@ -44,7 +46,11 @@ public class Messages extends NLS {
     public static String DerivateView_YOU_NEED_TO_SAVE;
     public static String DerivateViewEditorInput_FAIL_INIT;
     public static String DerivateViewEditorInput_NO_ROOT;
-    public static String MoveDerivateOperation_MOVE_NOT_POSSIBLE;
+    public static String DescriptiveViewPart_COLLAPSE_ALL;
+       public static String DescriptiveViewPart_EXPAND_ALL;
+       public static String DescriptiveViewPart_FACTUAL_DATA;
+       public static String DescriptiveViewPart_SHOW_ALL_DATA;
+       public static String MoveDerivateOperation_MOVE_NOT_POSSIBLE;
     public static String MoveDerivateOperation_MOVE_TO_NOT_POSSIBLE;
     public static String OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR;
     public static String OpenDerivateEditorForTaxonHandler_FAILED_TO_OPEN;
@@ -53,6 +59,7 @@ public class Messages extends NLS {
     public static String SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE;
     public static String SingleReadSequenceContextMenu_REUSE_FOR_SEQUENCE;
     public static String SingleReadSequenceContextMenu_REUSE_SINGLE_READ_HERE;
+       public static String UsesViewPart_VIEWER_NAME;
     static {
         // initialize resource bundle
         NLS.initializeMessages(BUNDLE_NAME, Messages.class);
index 4d23e9495c08a18b8804d805b35db68455be657a..6887838ddd4b127ed75a2d088b99913fd4aacbbd 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 d127c3f317347b866f89fcb6f23b84ce44643c29..98481d45899bd15cccfc78bdce04592fdf508221 100644 (file)
@@ -338,8 +338,8 @@ public class TaxonEditorInput  extends CdmEntitySessionInput implements IEditorI
     public boolean equals(Object obj) {
         if (TaxonEditorInput.class.equals(obj.getClass())
                 && getTaxon() != null
-                && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())){
-            if(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
+                && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())) {
+            if (((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
                 setInitiallySelectedTaxonBase(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase());
             }
             return true;
@@ -454,9 +454,8 @@ public class TaxonEditorInput  extends CdmEntitySessionInput implements IEditorI
      */
     @Override
     public void merge() {
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
-        }
+       CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
+
     }
 
     @Override
index fa78b41d88044db94249d9b55fe250b10df73211..f4979367750683a514ae5263b75b6940999b7d34 100644 (file)
@@ -157,8 +157,7 @@ public class CdmAuthorityEditorInput extends CdmEntitySessionInput implements IE
      */
     @Override
     public void merge() {
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            group = CdmStore.getService(IGroupService.class).merge(group, true).getMergedEntity();
-        }
+        group = CdmStore.getService(IGroupService.class).merge(group, true).getMergedEntity();
+       
     }
 }
index cc2bbf04772df20c8212f1eb3fe2287dca68d3ad..44dadd8e9b9e8122486c3c291330d2be0c10677b 100644 (file)
@@ -1,65 +1,65 @@
 package eu.etaxonomy.taxeditor.editor.handler;
 
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
+import java.util.UUID;
+
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
 
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
-public class OpenChecklistEditorHandler extends AbstractHandler {
+public class OpenChecklistEditorHandler extends DefaultOpenHandlerBase<ITaxonTreeNode> {
 
-    private static final Logger logger = Logger.getLogger(OpenChecklistEditorHandler.class);
+       @Override
+       protected ITaxonTreeNode getEntity(UUID uuid) {
+               ITaxonTreeNode taxonTreeNode = CdmStore.getService(ITaxonNodeService.class).load(uuid);
+               if(taxonTreeNode==null){
+                       taxonTreeNode = CdmStore.getService(IClassificationService.class).load(uuid);
+               }
+               return taxonTreeNode;
+       }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
-     * ExecutionEvent)
-     */
-    @Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-        boolean isChecklistEditorActivated = PreferencesUtil.getPreferenceStore().getBoolean(
-                IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
-        if (isChecklistEditorActivated) {
-            ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
-            if (currentSelection instanceof IStructuredSelection) {
-                Object selectedElement = ((IStructuredSelection) currentSelection).getFirstElement();
-                if (selectedElement instanceof Classification) {
-                    ChecklistEditorInput input = new ChecklistEditorInput(((Classification) selectedElement));
-                    try {
-                        EditorUtil.open(input);
-                    } catch (PartInitException e) {
-                       MessagingUtils.error(OpenChecklistEditorHandler.class, "Could not open ChecklistView", e);
-                    } catch (NullPointerException npe) {
-                       MessagingUtils.messageDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
-                                "Could not open ChecklistView. The hierarchy is corrupted!", npe);
-                    }
-                } else if (selectedElement instanceof TaxonNode) {
-                    ChecklistEditorInput input = new ChecklistEditorInput(((TaxonNode) selectedElement));
-                    try {
-                        EditorUtil.open(input);
-                    } catch (PartInitException e) {
-                       MessagingUtils.error(OpenChecklistEditorHandler.class, "Could not open ChecklistView", e);
-                    } catch (NullPointerException npe) {
-                       MessagingUtils.messageDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
-                                "Could not open ChecklistView. The hierarchy is corrupted!", npe);
-                    }
-                }
-            }
-        }
-        return null;
-    }
+       @Override
+       protected void open(ExecutionEvent event, ITaxonTreeNode entity) {
+               if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE)) {
+                       if (StringUtils.isBlank(PreferencesUtil.getPreferenceStore().getString(IPreferenceKeys.DISTRIBUTION_AREA_OCCURENCE_STATUS) )){
+                               MessagingUtils.informationDialog("No Areas to display", "Please choose the areas you want to display. "
+                                               + "For this go to the preferences, choose the Checklist Editor and choose the areas in the Distribution Selection Wizard.");
+                               this.dispose();
+                               return;
+                       }
+                       if (entity instanceof Classification) {
+                               ChecklistEditorInput input = new ChecklistEditorInput(((Classification) entity));
+                               try {
+                                       EditorUtil.open(input);
+                               } catch (PartInitException e) {
+                                       MessagingUtils.error(OpenChecklistEditorHandler.class, "Could not open Distribution Editor", e);
+                               } catch (NullPointerException npe) {
+                                       MessagingUtils.messageDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
+                                                       "Could not open Distribution Editor. The hierarchy is corrupted!", npe);
+                               }
+                       } else if (entity instanceof TaxonNode) {
+                               ChecklistEditorInput input = new ChecklistEditorInput((TaxonNode) entity);
+                               try {
+                                       EditorUtil.open(input);
+                               } catch (PartInitException e) {
+                                       MessagingUtils.error(OpenChecklistEditorHandler.class, "Could not open Distribution Editor", e);
+                               } catch (NullPointerException npe) {
+                                       MessagingUtils.messageDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
+                                                       "Could not open Distribution Editor. The hierarchy is corrupted!", npe);
+                               }
+                       }
+               }               
+       }
 }
index f8e3350a48f83acd44238c49237e91cc0a0c5dd8..73d4598c136727523479f0fbfb38a326f517f29f 100644 (file)
@@ -29,23 +29,21 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  */
 public class OpenParentHandler extends AbstractHandler implements IHandler {
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
        /** {@inheritDoc} */
        public Object execute(ExecutionEvent event) throws ExecutionException {
-               Taxon parent = EditorUtil.getActiveMultiPageTaxonEditor().getTaxon().getTaxonomicParent();
-               
-               if(parent != null){
-                       try {
-                               EditorUtil.openTaxonNode(parent.getUuid());
-                       } catch (PartInitException e) {
-                               throw new RuntimeException("Error opening parent taxon", e);
-                       } catch (Exception e) {
-                               MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
-                       }
-               }
-               
-               return null;
+               throw new RuntimeException("Open parent not supported anymore");
+//             Taxon parent = EditorUtil.getActiveMultiPageTaxonEditor().getTaxon().getTaxonomicParent();
+//             
+//             if(parent != null){
+//                     try {
+//                             EditorUtil.openTaxonNode(parent.getUuid());
+//                     } catch (PartInitException e) {
+//                             throw new RuntimeException("Error opening parent taxon", e);
+//                     } catch (Exception e) {
+//                             MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
+//                     }
+//             }
+//             
+//             return null;
        }
 }
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenSpecimenEditorForTypeSpecimenHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenSpecimenEditorForTypeSpecimenHandler.java
new file mode 100644 (file)
index 0000000..3cbc0a4
--- /dev/null
@@ -0,0 +1,32 @@
+package eu.etaxonomy.taxeditor.editor.handler.defaultHandler;
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+
+public class DefaultOpenSpecimenEditorForTypeSpecimenHandler extends
+               DefaultOpenHandlerBase<SpecimenTypeDesignation> {
+
+       @Override
+       protected SpecimenTypeDesignation getEntity(UUID uuid) {
+               return CdmStore.getCommonService().find(SpecimenTypeDesignation.class, uuid);
+       }
+
+       @Override
+       protected void open(ExecutionEvent event, SpecimenTypeDesignation entity) {
+        try {
+            EditorUtil.open(new DerivateViewEditorInput(entity.getUuid()));
+        } catch (PartInitException e) {
+            MessagingUtils.error(DefaultOpenSpecimenEditorForTypeSpecimenHandler.class, "Derivative Editor could not be opened", e);
+        }              
+       }
+
+}
@@ -12,7 +12,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
-public class DefaultOpenTaxonEditorForTaxonHandler extends DefaultOpenHandlerBase<TaxonBase> {
+public class DefaultOpenTaxonEditorForTaxonBaseHandler extends DefaultOpenHandlerBase<TaxonBase> {
 
     @Override
     protected TaxonBase getEntity(UUID uuid) {
@@ -24,7 +24,7 @@ public class DefaultOpenTaxonEditorForTaxonHandler extends DefaultOpenHandlerBas
         try {
             EditorUtil.openTaxonBase(entity.getUuid());
         } catch (PartInitException e) {
-            MessagingUtils.error(DefaultOpenTaxonEditorForTaxonHandler.class, "Could not open taxon editor for taxon/synonym "+entity, e);
+            MessagingUtils.error(DefaultOpenTaxonEditorForTaxonBaseHandler.class, "Could not open taxon editor for taxon/synonym "+entity, e);
         }
     }
 
index 7a190f4323be88cf4668390e437fc48080a72867..e75a1262272b753c8679e86ea875f44b25ab2f58 100644 (file)
@@ -91,9 +91,8 @@ public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<
      */
     @Override
     public void merge() {
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            key = CdmStore.getService(IPolytomousKeyService.class).merge(key,true).getMergedEntity();
-        }
+       key = CdmStore.getService(IPolytomousKeyService.class).merge(key,true).getMergedEntity();
+      
     }
 
     @Override
@@ -26,7 +26,7 @@ import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship;
  * @created Mar 30, 2011
  * @version 1.0
  */
-class PolytomousKeyContentProvider implements IGraphContentProvider {
+class PolytomousKeyGraphContentProvider implements IGraphContentProvider {
 
        private List<PolytomousKeyRelationship> relations;
 
index 03a4b1aac0b0359f0e4a8411ce642b274b361eec..61544abb7ad1b16e1a280888c9f81d13d1bf464d 100644 (file)
@@ -47,6 +47,6 @@ public class PolytomousKeyGraphEditor extends
 
        @Override
        protected IContentProvider getContentProvider() {
-               return new PolytomousKeyContentProvider();
+               return new PolytomousKeyGraphContentProvider();
        }
 }
index 69883cbf0edee151d2d92a361545b0dd26a165cc..308f925ed485221dc1b61c95b7176470f8b62129 100644 (file)
@@ -58,6 +58,8 @@ public class PolytomousKeyListEditor extends EditorPart implements
                IPolytomousKeyEditorPage {
 
        private class LinkListener extends MouseAdapter {
+
+
                /*
                 * (non-Javadoc)
                 *
@@ -68,7 +70,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
                @Override
                public void mouseUp(MouseEvent event) {
 
-                   if(event.button == 1 && event.count == 2) {
+                       if(event.button == 1 && event.count == 2) {
                        Table table = (Table) event.widget;
                        // Determine where the mouse was clicked
                        Point point = new Point(event.x, event.y);
@@ -79,9 +81,14 @@ public class PolytomousKeyListEditor extends EditorPart implements
                            return;
                        }
 
-                       PolytomousKeyNode node = (PolytomousKeyNode) getTableItem(
-                        table, point).getData();
-
+                      TableItem item = getTableItem(
+                        table, point);
+                      PolytomousKeyNode node ;
+                      if (item != null){
+                        node =(PolytomousKeyNode) item.getData();
+                      } else{
+                          return;
+                      }
                        if (selectedColumn == 4) {
                            PolytomousKeyNode linkData = getItemLinkData(node);
                            if (linkData != null) {
@@ -99,8 +106,11 @@ public class PolytomousKeyListEditor extends EditorPart implements
                            }
                        }
                    }
+
+
                }
 
+
                private int getSelectedColumn(Table table, Point point) {
                        TableItem item = getTableItem(table, point);
                        if (item != null) {
index 2806b80be20024832f40c6bbb8e363dcbde24a01..d9be7cb02a5c374ec53e69fbe3d05b685691e77d 100644 (file)
@@ -1123,21 +1123,10 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> implements
                                AbstractGroupedContainer.this.handleSplitText(text);
                        }
 
-                       @Override
-                       public void keyPressed(KeyEvent e) {
-                               // TODO Auto-generated method stub
-                               
-                       }
-
-                       @Override
-                       public void keyReleased(KeyEvent e) {
-                               // TODO Auto-generated method stub
-                               
-                       }
                };
 
                getNameViewer().getTextWidget().addVerifyListener(lineBreakListener);
-               getNameViewer().getTextWidget().addKeyListener(lineBreakListener);
+               
        }
 
        abstract class LabelEllipsisListener extends ControlAdapter {
index 8ef88c0b16bafc6beaec110eb18c08e253a7a6ad..adf17288ec2224cf21489c843e7c50bb264b02cb 100644 (file)
@@ -44,7 +44,9 @@ import org.eclipse.swt.events.VerifyListener;
  * @created 19.05.2008
  * @version 1.0
  */
-public abstract class LineBreakListener implements VerifyListener, KeyListener {
+
+public abstract class LineBreakListener implements VerifyListener{
+
 
        private static String LINE_BREAK = System.getProperty("line.separator");
        
index 5d5f449d254145e6c856a80a7e762fa58df015c8..aa01487827bbd3ddd0f6842b0eaede766b34f505 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 {
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/GroupBasionymContributionItem.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/GroupBasionymContributionItem.java
deleted file mode 100644 (file)
index 0f42bf5..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.CommandContributionItemParameter;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.labels.ILabelImageStrategy;
-import eu.etaxonomy.taxeditor.labels.LabelImageProvider;
-
-/**
- * <p>GroupBasionymContributionItem class.</p>
- *
- * @author p.ciardelli
- * @version $Id: $
- */
-public class GroupBasionymContributionItem extends CompoundContributionItem {
-       @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(GroupBasionymContributionItem.class);
-
-       /**
-        * <p>Constructor for GroupBasionymContributionItem.</p>
-        */
-       public GroupBasionymContributionItem() {}
-
-       /**
-        * <p>Constructor for GroupBasionymContributionItem.</p>
-        *
-        * @param id a {@link java.lang.String} object.
-        */
-       public GroupBasionymContributionItem(String id) {
-               super(id);
-       }
-       
-
-       /** {@inheritDoc} */
-       @Override
-       protected IContributionItem[] getContributionItems() {
-               
-               IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-               
-               ISelectionService selectionService = window.getSelectionService();
-               
-               ISelection selection = selectionService.getSelection();
-               
-               if(selection instanceof IStructuredSelection){
-                       Object selectedObject = ((IStructuredSelection) selection).getFirstElement();
-                       
-                       if(selectedObject != null && selectedObject instanceof TaxonBase){
-                               
-                               TaxonNameBase name = (TaxonNameBase) HibernateProxyHelper.deproxy(((TaxonBase) selectedObject).getName());
-                               
-                               if(name != null && name.getHomotypicalGroup().getTypifiedNames().size() > 1){
-                               
-                                       CommandContributionItemParameter parameter = 
-                                               new CommandContributionItemParameter(
-                                                               window, null, getCommand(name), SWT.NONE);
-                                       
-                                       parameter.label = getLabel(name);               
-                                                       
-                                       return new IContributionItem[] {
-                                                       new CommandContributionItem(parameter)
-                                       };
-                               }
-                               
-                       }
-               }
-               
-               return new IContributionItem[]{};
-       }
-
-       /**
-        * @param name
-        * @return
-        */
-       private String getCommand(TaxonNameBase name) {
-               if(name.isGroupsBasionym()){
-                       return "eu.etaxonomy.taxeditor.editor.name.removeBasionym" ;
-               }
-               return "eu.etaxonomy.taxeditor.editor.name.setBasionym";
-       }
-
-       /**
-        * @param name
-        * @return
-        */
-       private String getLabel(TaxonNameBase name) {
-               ILabelImageStrategy strategy = LabelImageProvider.getLabelStrategy(name);
-               LabelImageProvider labelProvider = new LabelImageProvider(strategy);
-               return (name.isGroupsBasionym() ? "Remove" : "Set")
-                       + " as " + labelProvider.getNameRelationTypeDescription(NameRelationshipType.BASIONYM()) + " for Homotypic Group";
-       }
-}
index 85693469820c39d88c4993f5a16f9ef0d5ada961..3afdefcdf095ab2d96af303da513e893809c78cd 100644 (file)
 
 package eu.etaxonomy.taxeditor.editor.name.handler;
 
+import java.util.Set;
+
+import org.eclipse.core.expressions.PropertyTester;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * <p>NameEditorMenuPropertyTester class.</p>
@@ -26,7 +32,7 @@ import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
  * @created Jun 22, 2010
  * @version 1.0
  */
-public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.PropertyTester {
+public class NameEditorMenuPropertyTester extends PropertyTester {
 
        private static final String ACCEPTED = "isAcceptedTaxon";
        private static final String SYNONYM = "isSynonym";
@@ -36,7 +42,8 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P
        private static final String EMPTY_NAMES = "hasEmptyNames";
        private static final String ACCEPTED_AND_NO_HOMOTYPIC_SYNONYMS = "isAcceptedAndHasNoHomotypicSynonyms";
        private static final String NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED = "isNotHomotypicSynonymOfAcceptedTaxon";
-
+       private static final String SYNONYM_WITH_HOMOTYPIC_SYNONYMS = "isSynonymInHomotypicalGroupWithMoreSynonyms";
+       private static final String IS_ORPHANED = "isOrphaned";
 
        /**
         * <p>Constructor for NameEditorMenuPropertyTester.</p>
@@ -57,6 +64,11 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P
                        IStructuredSelection selection = (IStructuredSelection) receiver;
 
                        Object selectedElement = selection.getFirstElement();
+                       if(selectedElement instanceof UuidAndTitleCache){
+                           UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache<?>)selectedElement;
+                           CdmBase cdmBase = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
+                           selectedElement = cdmBase;
+                       }
 
                        if(ACCEPTED.equals(property)){
                                return isAccepted(selectedElement);
@@ -78,9 +90,16 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P
                        }
                        else if(ACCEPTED_AND_NO_HOMOTYPIC_SYNONYMS.equals(property)){
                                return isAcceptedAndHasNoHomotypicSynonyms(selectedElement);
-                       }else if (NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED.equals(property)){
+                       }
+                       else if (NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED.equals(property)){
                                return isNotHomotypicSynonymOfAcceptedTaxon(selectedElement);
                        }
+                       else if (SYNONYM_WITH_HOMOTYPIC_SYNONYMS.equals(property)){
+                               return isSynonymInHomotypicalGroupWithMoreSynonyms(selectedElement);
+                       }
+                       else if (IS_ORPHANED.equals(property)){
+                           return isOrphaned(selectedElement);
+                       }
 
                }
 
@@ -96,6 +115,15 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P
                return false;
        }
 
+       private boolean isSynonymInHomotypicalGroupWithMoreSynonyms(Object selectedElement) {
+               if (isSynonym(selectedElement)){
+                       Synonym synonym = (Synonym) selectedElement;
+                       return synonym.getHomotypicGroup().getTypifiedNames().size()>1;
+               }
+               return false;
+       }
+
+
        private boolean isNotHomotypicSynonymOfAcceptedTaxon(Object selectedElement) {
                if (isSynonym(selectedElement)){
                        Synonym synonym = (Synonym) selectedElement;
@@ -143,4 +171,19 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P
        private boolean isAccepted(Object selectedElement) {
                return (selectedElement instanceof Taxon  && ! ((Taxon) selectedElement).isMisapplication()) ? true : false;
        }
+
+       private boolean isOrphaned(Object selectedElement) {
+           if(selectedElement instanceof Taxon){
+               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 false;
+       }
 }
index cdecde04a0e8e248afbcace4e134729bc470c3e0..0d5cee3e09c5db800d7e100aa26f3acc51a9df5c 100644 (file)
@@ -12,7 +12,6 @@ package eu.etaxonomy.taxeditor.editor.view.checklist;
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -58,7 +57,6 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -75,10 +73,9 @@ import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -90,8 +87,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 30.04.2014
  * @version 1.0
  */
-public class ChecklistEditor extends EditorPart implements ISelectionListener, IPartContentHasFactualData,
-        IConversationEnabled, IContextListener, IPartContentHasDetails, IDirtyMarkable, ICdmEntitySessionEnabled {
+public class ChecklistEditor extends EditorPart implements ISelectionListener, IPartContentHasFactualData, IConversationEnabled,
+        IContextListener, IPartContentHasDetails, IDirtyMarkable{//, ICdmEntitySessionEnabled {
 
     private static final Logger logger = Logger.getLogger(ChecklistEditor.class);
     /**
@@ -99,6 +96,9 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
      */
     private static final String CHECKLIST_EDITOR_MEMENTO_KEY = "checklistEditor";
 
+
+
+
     private class ChecklistJob extends Job {
 
         private List<TaxonNode> taxonNodes;
@@ -110,6 +110,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
             super(title);
             this.taxonNodes = listTaxonNodes;
 
+
         }
 
         /*
@@ -185,7 +186,9 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
 
     private Label statusLabel;
 
-    private final ICdmEntitySession cdmEntitySession;
+   // private final ICdmEntitySession cdmEntitySession;
+
+    private ChecklistLabelProvider labelProvider;
 
     private SortedSet<DefinedTermBase> terms = null;
        private ToolItem toolItem;
@@ -212,7 +215,8 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
      * </p>
      */
     public ChecklistEditor() {
-        cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+        //cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+
     }
 
     /** {@inheritDoc} */
@@ -222,10 +226,17 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
         taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
         selectionService = getSite().getWorkbenchWindow().getSelectionService();
         selectionService.addSelectionListener(this);
+        viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
+        labelProvider = new ChecklistLabelProvider(this.viewer);
+        
+        terms = labelProvider.getNamedAreas();
+        if (terms == null){
+                       MessagingUtils.informationDialog("No Areas to display", "Please choose the areas you want to display. "
+                                       + "Therefore go to the preferences, choose the Checklist Editor and choose the areas in the Distribution Selection Wizard.");
+                       this.dispose();
+                       return;
+               }
         filter = new ChecklistEditorFilter();
-        ChecklistLabelProvider labelProvider = new ChecklistLabelProvider();
-        terms = (SortedSet<DefinedTermBase>) labelProvider.getTermsOrderedByLabels(labelProvider.getNamedAreas(),
-                CdmStore.getDefaultLanguage());
         createTopComposite(parent);
         loadDataInput();
     }
@@ -241,7 +252,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
 
         final Text searchText = createSearchBar(parent);
         createToolbar(parent);
-        viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
+
         getSite().setSelectionProvider(viewer);
 
         final ModifyListener modifyListener = new ChecklistModifyListener(viewer, filter, searchText);
@@ -254,7 +265,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
         createTable();
 
         viewer.setContentProvider(new ChecklistContentProvider());
-        viewer.setLabelProvider(new ChecklistLabelProvider(viewer));
+        viewer.setLabelProvider(this.labelProvider);
         comparator = new ChecklistEditorComparator();
         viewer.setComparator(comparator);
 
@@ -300,6 +311,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
 
        private void createToolbarItems() {
                dropListener = new ChecklistDropdownSelectionListener(toolItem, this, terms);
+               
         for (DefinedTermBase<DefinedTermBase> term : terms) {
             if(term!=null){
                 dropListener.add(term);
@@ -321,9 +333,16 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
     private void createTable() {
         Table table = viewer.getTable();//new Table(parent, viewer.getTable().getStyle());
         List<String> titles = new ArrayList<String>();
-        Collections.addAll(titles, "Taxon", "Author", "Rank");
         List<Integer> bounds = new ArrayList<Integer>();
-        Collections.addAll(bounds, 300, 200, 200);
+        if (PreferencesUtil.isShowRankInChecklistEditor()){
+            Collections.addAll(titles, "Taxon",  "Rank");
+            Collections.addAll(bounds, 300, 200);
+        } else{
+            Collections.addAll(titles, "Taxon");
+            Collections.addAll(bounds, 300);
+        }
+
+
         Map<Integer, Boolean> restoreValuesForColumnWidth = restoreValuesForColumnWidth(titles, bounds);
         createInitalDistributionColumns(table, titles, bounds, restoreValuesForColumnWidth);
         table.setSortDirection(SWT.DOWN);
@@ -342,8 +361,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
      * @param restoreValuesForColumnWidth
      */
        private void createInitalDistributionColumns(Table table,
-                       List<String> titles, List<Integer> bounds,
-                       Map<Integer, Boolean> restoreValuesForColumnWidth) {
+                       List<String> titles, List<Integer> bounds, Map<Integer, Boolean> restoreValuesForColumnWidth) {
                for (int columnIndex = 0; columnIndex < titles.size(); columnIndex++) {
             TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
             column.getColumn().setText(titles.get(columnIndex));
@@ -351,19 +369,19 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
             column.getColumn().setResizable(true);
             column.getColumn().setMoveable(true);
             column.getColumn().addSelectionListener(getSelectionAdapter(column.getColumn(), columnIndex));
-            if (columnIndex == 1) {
+            if (columnIndex == 0) {
                 table.setSortColumn(column.getColumn());
             }
-            if (columnIndex == 2) {
+            if (columnIndex == 1 && PreferencesUtil.isShowRankInChecklistEditor()) {
                /** uncommented it for now because no rank editing is wanted **/
 //                column.setEditingSupport(new RankEditingSupport(viewer, this));
             }
-            if (columnIndex >= 3) {
+            if ((columnIndex == 1 && !PreferencesUtil.isShowRankInChecklistEditor()) || columnIndex >= 2 ) {
                 //read PrefrenceStore to setWidth according to last saved state
                 if(restoreValuesForColumnWidth.get(columnIndex)){
-                    column.getColumn().setWidth(100);
+                    column.getColumn().setWidth(50);
                 }else{
-                    column.getColumn().setWidth(0);
+                    column.getColumn().setWidth(50);
                 }
                 column.setEditingSupport(new DistributionEditingSupport(viewer, this, columnIndex));
             }
@@ -383,11 +401,24 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
                        List<Integer> bounds) {
                Map<Integer, Boolean> restoreColumnWidth = new HashMap<Integer, Boolean>();
                if (terms != null) {
-            int columnIndex = 4;
+                   int columnIndex;
+                   if (PreferencesUtil.isShowRankInChecklistEditor()){
+                       columnIndex = 2;
+                   } else{
+                       columnIndex = 1;
+                   }
             for (DefinedTermBase<DefinedTermBase> term : terms) {
                 if(term != null){
                     restoreColumnWidth.put(columnIndex, PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString()));
-                    titles.add(term.getTitleCache());
+                    if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+                        if (term.getIdInVocabulary() != null){
+                            titles.add(term.getIdInVocabulary());
+                        } else{
+                            titles.add(term.getTitleCache());
+                        }
+                    }else{
+                        titles.add(term.getTitleCache());
+                    }
                     bounds.add(200);
                     columnIndex++;
                 }
@@ -427,7 +458,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
         TaxonNode taxonNode = checklistEditorInput.getTaxonNode();
         if (classification != null && taxonNode == null) {
             countNodes = taxonNodeService.countAllNodesForClassification(classification);
-            statusLabel.setText("Anzahl der Elemente: " + (countNodes != null ? countNodes : "uknown"));
+            statusLabel.setText("Anzahl der Elemente: " + (countNodes != null ? countNodes : "unknown"));
             // This should not kill the view nor the editor if something goes
             // wrong
             // TODO: don't load the whole taxonNode Object but rather a small
@@ -446,14 +477,20 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
     /** {@inheritDoc} */
     @Override
     public void dispose() {
-        cdmEntitySession.dispose();
-        super.dispose();
+       this.checklistEditorInput.dispose();
+       super.dispose();
+        
+        conversation.unregisterForDataStoreChanges(this);
+        conversation.unbind();
+       
+        //conversation.close();
+               conversation = null;
     }
 
     /** {@inheritDoc} */
     @Override
     public void setFocus() {
-        cdmEntitySession.bind();
+
         viewer.getControl().setFocus();
     }
 
@@ -505,9 +542,13 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
        Table table = viewer.getTable();
        table.setRedraw(false);
        SortedSet<DefinedTermBase> oldTerms = terms;
-       ChecklistLabelProvider labelProvider = new ChecklistLabelProvider();
-       terms = (SortedSet<DefinedTermBase>) labelProvider.getTermsOrderedByLabels(labelProvider.getNamedAreas(), CdmStore.getDefaultLanguage());
-       SortedSet<DefinedTermBase> newTerms = terms;
+
+//     if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+//
+//     } else{
+//         terms = (SortedSet<DefinedTermBase>) labelProvider.getTermsOrderedByLabels(labelProvider.getNamedAreas(), CdmStore.getDefaultLanguage());
+//     }
+       SortedSet<DefinedTermBase> newTerms = labelProvider.getNamedAreas();
        toolItem.removeSelectionListener(dropListener);
        hideDistributionColumns(oldTerms);
        createToolbarItems();
@@ -517,7 +558,7 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
                addTableViewerColumn(term.getTitleCache(), 200, count);
                acitivateNewColumnInDropDownMenu(term);
        }
-        viewer.setLabelProvider(new ChecklistLabelProvider(viewer));
+        viewer.setLabelProvider(labelProvider);
         getService().schedule(new ChecklistJob("loading Taxa", selectedTaxonNodes), Job.LONG);
         table.setRedraw(true);
        viewer.refresh();
@@ -585,8 +626,12 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
     public void doSave(IProgressMonitor monitor) {
         try {
             monitor.beginTask("Saving Editor", 1);
-            getConversationHolder().bind();
-            getConversationHolder().commit(true);
+            if (!conversation.isBound()) {
+                conversation.bind();
+            }
+            CdmStore.getService(ITaxonNodeService.class).merge(selectedTaxonNodes, true);
+            //this.checklistEditorInput.merge();
+            conversation.commit(true);
             setDirty(false);
             monitor.worked(1);
         } finally {
@@ -606,10 +651,12 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
         if (input instanceof ChecklistEditorInput) {
             checklistEditorInput = (ChecklistEditorInput) input;
             setPartName(getPartName() + ": " + checklistEditorInput.getName());
-            conversation = ((ChecklistEditorInput) input).getConversationHolder();
+            conversation = checklistEditorInput.getConversation();
+            conversation.registerForDataStoreChanges(this);
         }
         simpleSelectionProvider = new SimpleSelectionProvider();
         getSite().setSelectionProvider(simpleSelectionProvider);
+
     }
 
     @Override
@@ -627,29 +674,9 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
     public void selectionChanged(IWorkbenchPart part, ISelection selection) {
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update
-     * (eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-     */
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
 
-    }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
-     * ()
-     */
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
+
 
     /*
      * (non-Javadoc)
@@ -725,8 +752,8 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
     private static final List<String> NODE_INIT_STRATEGY = Arrays.asList(new String[] { "descriptions",
             "descriptions.*", "description.state", "feature", "feature.*", "childNodes", "childNodes.taxon",
             "childNodes.taxon.name", "taxonNodes", "taxonNodes.*", "taxonNodes.taxon.*", "taxon.*",
-            "taxon.descriptions", "taxon.sec", "taxon.name.*", "taxon.synonymRelations", "terms", "name.*",
-            "name.rank.representations", "name.status.type.representations", "sources.$", "stateData.$" });
+            "taxon.descriptions", "taxon.sec", "taxon.name.*", "terms", "name.*",
+            "name.rank.representations", "name.status.type.representations", "stateData.$" });
 
     /*
      * (non-Javadoc)
@@ -770,27 +797,50 @@ public class ChecklistEditor extends EditorPart implements ISelectionListener, I
     /* (non-Javadoc)
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
      */
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        // TODO Auto-generated method stub
-        return null;
+
+
+//    /* (non-Javadoc)
+//     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+//     */
+//    @Override
+//    public <T extends CdmBase> Collection<T> getRootEntities() {
+//        // TODO Auto-generated method stub
+//        return null;
+//    }
+//
+//    /* (non-Javadoc)
+//     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+//     */
+//    @Override
+//    public Map<Object, List<String>> getPropertyPathsMap() {
+//        // TODO Auto-generated method stub
+//        return null;
+//    }
+
+    /**
+     * @return the labelProvider
+     */
+    public ChecklistLabelProvider getLabelProvider() {
+        return labelProvider;
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+     * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
      */
     @Override
-    public <T extends CdmBase> Collection<T> getRootEntities() {
+    public void update(CdmDataChangeMap arg0) {
         // TODO Auto-generated method stub
-        return null;
+
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+     * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
      */
     @Override
-    public Map<Object, List<String>> getPropertyPathsMap() {
-        // TODO Auto-generated method stub
-        return null;
+    public ConversationHolder getConversationHolder() {
+
+        return conversation;
     }
+    
+    
 }
index 0bc2b2459dfd6f697630ad491ddb05211e048333..4eefc824a67b4b8898627a5067c668fc3b2e2a83 100644 (file)
@@ -9,6 +9,9 @@
 */
 package eu.etaxonomy.taxeditor.editor.view.checklist;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.UUID;
 
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -18,8 +21,12 @@ import org.eclipse.ui.IPersistable;
 import org.eclipse.ui.IPersistableElement;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -28,16 +35,18 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 25.04.2014
  *
  */
-public class ChecklistEditorInput implements IEditorInput, IPersistable {
+public class ChecklistEditorInput extends CdmEntitySessionInput implements IEditorInput, IPersistable {
 
     /**
      * The selected classification
      */
     private TaxonNode taxonNode = null;
 
+    private final List<TaxonBase> taxa = new ArrayList<TaxonBase>();
+
     private Classification classification = null;
 
-    private final ConversationHolder conversationHolder;
+    private final ConversationHolder conversation;
 
 
     /**
@@ -46,10 +55,28 @@ public class ChecklistEditorInput implements IEditorInput, IPersistable {
      * @param taxonNode
      */
     public ChecklistEditorInput(TaxonNode taxonNode){
-        super();
-        this.conversationHolder = CdmStore.createConversation();
-        this.taxonNode = CdmStore.getCurrentApplicationConfiguration().getTaxonNodeService().load(taxonNode.getUuid());
+        super(false);
+        this.conversation = CdmStore.createConversation();
+        this.taxonNode =CdmStore.getService(ITaxonNodeService.class).load(taxonNode.getUuid(), getTaxonNodePropertyPaths());
+       // getChildTaxa(taxonNode);
         classification = taxonNode.getClassification();
+        initSession();
+    }
+    
+
+    /**
+     * @param taxonNode2
+     */
+    private void getChildTaxa(TaxonNode taxonNode2) {
+       taxonNode2.removeNullValueFromChildren();
+       if (taxonNode2.hasChildNodes()){
+           for (TaxonNode node: taxonNode2.getChildNodes()){
+               taxa.add(node.getTaxon());
+               getChildTaxa(node);
+           }
+       }
+
+
     }
 
     /**
@@ -57,8 +84,8 @@ public class ChecklistEditorInput implements IEditorInput, IPersistable {
      * @param classificationUuid
      */
     public ChecklistEditorInput(Classification classification) {
-        super();
-        this.conversationHolder = CdmStore.createConversation();
+        super(true);
+        this.conversation = CdmStore.createConversation();
         this.classification = CdmStore.getCurrentApplicationConfiguration().getClassificationService().load(classification.getUuid());
 
     }
@@ -133,12 +160,12 @@ public class ChecklistEditorInput implements IEditorInput, IPersistable {
        return classification;
     }
 
-    /**
-     * @return the conversationHolder
-     */
-    public ConversationHolder getConversationHolder() {
-        return conversationHolder;
-    }
+//    /**
+//     * @return the conversationHolder
+//     */
+//    public ConversationHolder getConversationHolder() {
+//        return conversationHolder;
+//    }
 
 
 
@@ -194,4 +221,82 @@ public class ChecklistEditorInput implements IEditorInput, IPersistable {
         UUID uuid = classification.getUuid();
     }
 
+    @Override
+    public void merge() {
+        for (TaxonBase taxon:taxa){
+            CdmStore.getService(ITaxonService.class).merge(taxon, true);
+        }
+
+    //    CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+     */
+    @Override
+    public List<TaxonNode> getRootEntities() {
+        return Arrays.asList(taxonNode);
+    }
+
+    /**
+     * @return the conversation
+     */
+    public ConversationHolder getConversation() {
+        return conversation;
+    }
+    
+    private List<String> getTaxonNodePropertyPaths() {
+        List<String> taxonNodePropertyPaths = new ArrayList<String>();
+        for(String propertyPath : getTaxonBasePropertyPaths()) {
+            taxonNodePropertyPaths.add("taxon." + propertyPath);
+        }
+        return taxonNodePropertyPaths;
+    }
+
+    private List<String> getTaxonBasePropertyPaths() {
+        List<String> taxonBasePropertyPaths = Arrays.asList(new String[] {
+                "sec",
+                "createdBy",
+                "updatedBy",
+                "annotations",
+                "markers",
+                "credits",
+                "extensions",
+                "rights",
+                "sources",
+                "descriptions",
+                "relationsToThisTaxon",
+                "relationsFromThisTaxon",
+                "taxonNodes",
+                "descriptions.descriptionElements.feature",
+                "descriptions.descriptionElements.area",
+                "descriptions.descriptionElements.status",
+                "descriptions.markers",
+                "name.descriptions",
+                "name.typeDesignations",
+                "name.status",
+                "name.nomenclaturalReference.inReference",
+                "name.taxonBases.taxonNodes",
+                "name.relationsFromThisName",
+                "name.relationsToThisName",
+                "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status",
+                "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName",
+                "synonymRelations.synonym.name.status.type",
+                "synonymRelations.synonym.name.relationsToThisName.fromName",
+                "synonymRelations.synonym.name.nomenclaturalReference.inReference.authorship",
+                "synonymRelations.synonym.name.nomenclaturalReference.authorship",
+                "synonymRelations.synonym.name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations"
+        });
+
+        return taxonBasePropertyPaths;
+    }
+    
+//    @Override
+//    public void dispose(){
+//     conversation.unbind();
+//     conversation.close();
+//     getCdmEntitySession().dispose();
+//     super.dispose();
+//    }
+
 }
index 0ae5336b38e01875faa6eaa9678eb600bfc49587..014ff4fb7f231fcb20ed9b9d86b53527c2735a26 100644 (file)
@@ -12,7 +12,9 @@ package eu.etaxonomy.taxeditor.editor.view.checklist;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
 import java.util.UUID;
@@ -26,15 +28,18 @@ import org.eclipse.swt.widgets.TableColumn;
 
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.TermIdInVocabularyComparator;
 import eu.etaxonomy.cdm.model.common.TermLanguageComparator;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -48,7 +53,7 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
 
     public static final String DEFAULT_ENTRY = "";
     private IDescriptionService descriptionService;
-    private final List<DefinedTermBase<?>> namedAreas;
+    private final SortedSet<DefinedTermBase> namedAreas;
     TableViewer viewer = null;
 
     /**
@@ -87,23 +92,24 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
     /** {@inheritDoc} */
        @Override
     public String getColumnText(Object element, int columnIndex) {
-        descriptionService = CdmStore.getService(IDescriptionService.class);
+       // descriptionService = CdmStore.getService(IDescriptionService.class);
         Taxon taxon = (Taxon) element;
         //TODO load areas by this list
 
-        List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null, null, null, null, DESC_INIT_STRATEGY);;
-        NonViralName<?> nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
+       // List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null, null, null, null, DESC_INIT_STRATEGY);;
+        Set<TaxonDescription> listTaxonDescriptions = taxon.getDescriptions();
+        NonViralName<?> nonViralName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
 
         switch (columnIndex) {
         case 0:
             String taxonName = null;
-            taxonName = (nonVirlaName != null) ? nonVirlaName.getNameCache() : null;
+            taxonName = (nonViralName != null) ? nonViralName.getNameCache() : null;
             return (taxonName != null) ? taxonName : DEFAULT_ENTRY;
 
-        case 1:
-            String authorship = null;
-            authorship = (nonVirlaName != null) ? nonVirlaName.getAuthorshipCache() : null;
-            return (authorship != null) ? authorship : DEFAULT_ENTRY;
//       case 1:
+//            String authorship = null;
+//            authorship = (nonViralName != null) ? nonViralName.getAuthorshipCache() : null;
+//            return (authorship != null) ? authorship : DEFAULT_ENTRY;
 //        case 2:
 //            String ref = null;
 //            if (taxon.getName() != null) {
@@ -112,26 +118,48 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
 //                ref = (nomenclaturalReference != null) ? nomenclaturalReference.getAbbrevTitleCache() : null;
 //            }
 //            return (ref != null) ? ref : DEFAULT_ENTRY;
-        case 2:
-            String rank = null;
-            if (taxon.getName().getRank() != null) {
-                rank = taxon.getName().getRank().toString();
+        case 1:
+            if (PreferencesUtil.isShowRankInChecklistEditor()){
+                String rank = null;
+
+                if (taxon.getName().getRank() != null) {
+                    rank = taxon.getName().getRank().toString();
+                }
+                return (rank != null) ? rank : DEFAULT_ENTRY;
             }
-            return (rank != null) ? rank : DEFAULT_ENTRY;
         }
 
-        if(columnIndex >2){
+        if(columnIndex >2 || (!PreferencesUtil.isShowRankInChecklistEditor() && columnIndex > 1)){
 
             for (TaxonDescription td : listTaxonDescriptions) {
                 for (DescriptionElementBase deb : td.getElements()) {
                     if (deb instanceof Distribution) {
-                        Distribution distribution = (Distribution) deb;
-                        String area = distribution.toString();
+                        Distribution distribution = HibernateProxyHelper.deproxy(deb, Distribution.class);
+                        String area = null;
+                        if (distribution.getArea() != null ){
+                            if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+                                if (distribution.getArea().getIdInVocabulary() != null){
+                                    area = distribution.getArea().getIdInVocabulary();
+                                } else{
+                                    area = distribution.getArea().getTitleCache();
+                                }
+                            }else{
+                                area = distribution.getArea().getTitleCache();
+                            }
+                        }else{
+                            continue;
+                        }
+
                         if(viewer != null){
                                TableColumn column = viewer.getTable().getColumn(columnIndex);
                                if (area.equalsIgnoreCase(column.getText())) {
-                                       return (distribution.getStatus().getTitleCache() != null)?distribution.getStatus().getTitleCache():DEFAULT_ENTRY;
-                               }
+                                   if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+                                       return (distribution.getStatus().getIdInVocabulary() != null)?distribution.getStatus().getIdInVocabulary():CdmUtils.Nz(distribution.getStatus().getTitleCache());
+                                   }else{
+                                       return (distribution.getStatus().getTitleCache() != null)?distribution.getStatus().getTitleCache():DEFAULT_ENTRY;
+                                   }
+                            }
+
                         }
                     }
                 }
@@ -145,25 +173,33 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
             "descriptions.*", "description.state" });
 
 
-    private List<DefinedTermBase<?>> loadNamedAreas() {
+    private SortedSet<DefinedTermBase> loadNamedAreas() {
         IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
         String values = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
+
         if (values != null && values != "") {
             String[] split = values.split(",");
             List<String> listValue = Arrays.asList(split);
-            ArrayList<DefinedTermBase<?>> termlist = new ArrayList<DefinedTermBase<?>>();
+            List<DefinedTermBase> termlist = new ArrayList<DefinedTermBase>();
+            Set<UUID> uuidList = new HashSet<UUID>();
+            UUID uuid;
             for(String s : listValue){
-                UUID uuid = UUID.fromString(s);
-                ITermService service = CdmStore.getService(ITermService.class);
-                DefinedTermBase definedTermBase = service.load(uuid);
-                termlist.add(definedTermBase);
+                uuid = UUID.fromString(s);
+                uuidList.add(uuid);
+
+            }
+            ITermService service = CdmStore.getService(ITermService.class);
+            termlist = service.find(uuidList);
+            if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+                return getTermsOrderedByIdInVocabulary(termlist);
+            } else {
+                return getTermsOrderedByLabels(termlist, CdmStore.getDefaultLanguage());
             }
-            return termlist;
         }
         return null;
     }
 
-    public SortedSet<?> getTermsOrderedByLabels(List<DefinedTermBase<?>> listTerm,Language language){
+    public SortedSet<DefinedTermBase> getTermsOrderedByLabels(List<DefinedTermBase> listTerm,Language language){
         TermLanguageComparator comp = new TermLanguageComparator();
         comp.setCompareLanguage(language);
         SortedSet result = new TreeSet(comp);
@@ -176,7 +212,22 @@ public class ChecklistLabelProvider extends LabelProvider implements ITableLabel
     /**
      * @return the namedAreas
      */
-    public List<DefinedTermBase<?>> getNamedAreas() {
+    public SortedSet<DefinedTermBase> getNamedAreas() {
         return namedAreas;
     }
+
+    /**
+     * @param namedAreas
+     * @param defaultLanguage
+     * @return
+     */
+    public SortedSet<DefinedTermBase> getTermsOrderedByIdInVocabulary(List<DefinedTermBase> namedAreas) {
+        TermIdInVocabularyComparator comp = new TermIdInVocabularyComparator();
+
+        SortedSet result = new TreeSet(comp);
+        if(namedAreas != null){
+            result.addAll(namedAreas);
+        }
+        return result;
+    }
 }
index 4f0f7f5f2e7f1bc20f15ab4c5308c8db0cbc63bb..2274d9b3fe5af0643968c65b2e28ed9d9a7c8fa2 100644 (file)
@@ -26,7 +26,7 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
-import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistLabelProvider;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 public final class DistributionEditingSupport extends EditingSupport {
@@ -71,7 +71,15 @@ public final class DistributionEditingSupport extends EditingSupport {
             Taxon taxon = (Taxon) element;
             Distribution distributionForColumn = getDistributionForColumn(taxon);
             if (distributionForColumn != null) {
-                distributionForColumn.getStatus().getTitleCache();
+                if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+                    if (distributionForColumn.getStatus().getIdInVocabulary() != null){
+                        return distributionForColumn.getStatus().getIdInVocabulary();
+                    } else{
+                        distributionForColumn.getStatus().getTitleCache();
+                    }
+                } else{
+                    return distributionForColumn.getStatus().getTitleCache();
+                }
             }
             // return PresenceAbsenceTerms
         }
@@ -91,9 +99,9 @@ public final class DistributionEditingSupport extends EditingSupport {
                 createDistributionForColumn(taxon, occurenceStatus);
             }
             // viewer.update(distribution, null);
-            viewer.update(element, null);
-            viewer.refresh();
-            editor.setDirty(true);
+//            viewer.update(element, null);
+//            viewer.refresh();
+//            editor.setDirty(true);
             editor.changed(element);
             viewer.refresh();
         }
@@ -108,15 +116,24 @@ public final class DistributionEditingSupport extends EditingSupport {
      * @return
      */
     private Distribution getDistributionForColumn(Taxon taxon) {
-        List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null,
-                null, null, null, DESC_INIT_STRATEGY);
+//        List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null,
+//                null, null, null, DESC_INIT_STRATEGY);
+        Set<TaxonDescription> listTaxonDescriptions = taxon.getDescriptions();
         TableColumn column = viewer.getTable().getColumn(columnIndex);
         for (TaxonDescription td : listTaxonDescriptions) {
             for (DescriptionElementBase deb : td.getElements()) {
                 if (deb instanceof Distribution) {
                     Distribution distribution = (Distribution) deb;
-                    if (column.getText().equalsIgnoreCase(distribution.getArea().getTitleCache())) {
-                        return distribution;
+                    if (distribution.getArea() != null){
+                        if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+                            if (column.getText().equalsIgnoreCase(distribution.getArea().getIdInVocabulary())) {
+                                return distribution;
+                            }
+                        }else{
+                            if (column.getText().equalsIgnoreCase(distribution.getArea().getTitleCache())) {
+                                return distribution;
+                            }
+                        }
                     }
                 }
             }
@@ -127,18 +144,22 @@ public final class DistributionEditingSupport extends EditingSupport {
     private void createDistributionForColumn(Taxon taxon, PresenceAbsenceTerm occurenceStatus) {
         TableColumn column = viewer.getTable().getColumn(columnIndex);
 
-        ChecklistLabelProvider labelProvider = new ChecklistLabelProvider();
-        List<DefinedTermBase<?>> namedAreas = labelProvider.getNamedAreas();
-        SortedSet<DefinedTermBase<?>> terms = (SortedSet<DefinedTermBase<?>>) labelProvider.getTermsOrderedByLabels(
-                namedAreas, CdmStore.getDefaultLanguage());
+        SortedSet<DefinedTermBase> namedAreas = this.editor.getLabelProvider().getNamedAreas();
+
 
-        if (terms != null) {
-            for (DefinedTermBase term : terms) {
-                if (column.getText().equalsIgnoreCase(term.getTitleCache())) {
+        if (namedAreas != null) {
+            for (DefinedTermBase term : namedAreas) {
+                boolean sameArea = true;
+                if (!PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
+                    sameArea = column.getText().equalsIgnoreCase(term.getTitleCache());
+                } else{
+                    sameArea = column.getText().equalsIgnoreCase(term.getIdInVocabulary());
+                }
+                if (sameArea) {
                     NamedArea area = (NamedArea) term;
                     Distribution distribution = Distribution.NewInstance(area, occurenceStatus);
                     Set<TaxonDescription> descriptions = taxon.getDescriptions();
-                    if (descriptions != null) {
+                    if (!descriptions.isEmpty()) {
                         for (TaxonDescription desc : descriptions) {
                             // add to first taxon description
                             desc.addElement(distribution);
@@ -147,6 +168,7 @@ public final class DistributionEditingSupport extends EditingSupport {
                     } else {// there are no TaxonDescription yet.
                         TaxonDescription td = TaxonDescription.NewInstance(taxon);
                         td.addElement(distribution);
+                        break;
                     }
                 }
             }
index bcbc27f693b411aec3b99ea3e7efe851d420a988..fc1587c850e43c55cc6f4e688d32e840fb774a8f 100644 (file)
@@ -15,9 +15,9 @@ public class ChecklistEditorFilter extends ViewerFilter {
     public void setSearchText(String s) {
         // Search must be a substring of the existing value
         if(s.contains("*")){
-            s=s.replace("*", "");
+            s=s.replace("*", ".*");
         }
-        this.searchString = "(?i).*" + s + ".*";
+        this.searchString = ".*" + s + ".*";
     }
 
     @Override
@@ -34,17 +34,17 @@ public class ChecklistEditorFilter extends ViewerFilter {
             return true;
         }
         //Author
-        if (nonVirlaName.getAuthorshipCache() != null && nonVirlaName.getAuthorshipCache().matches(searchString)) {
-            return true;
-        }
-        //Reference
-        if(reference != null && reference.getAbbrevTitleCache().matches(searchString)){
-            return true;
-        }
-        //Rank
-        if (rank != null && rank.matches(searchString)) {
-            return true;
-        }
+//        if (nonVirlaName.getAuthorshipCache() != null && nonVirlaName.getAuthorshipCache().matches(searchString)) {
+//            return true;
+//        }
+//        //Reference
+//        if(reference != null && reference.getAbbrevTitleCache().matches(searchString)){
+//            return true;
+//        }
+//        //Rank
+//        if (rank != null && rank.matches(searchString)) {
+//            return true;
+//        }
         return false;
     }
 
index 2acbc4a017e7970f7bac4baa789fb8b9ff54ab64..2e116e3ef39cf73cf9e47d4abe2ce2989234c751 100644 (file)
@@ -10,8 +10,8 @@
 
 package eu.etaxonomy.taxeditor.editor.view.concept;
 
-import java.util.HashSet;
-import java.util.Set;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.Viewer;
@@ -28,42 +28,34 @@ import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
  */
 public class ConceptContentProvider implements IStructuredContentProvider {
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-        */
        @Override
        public void dispose() {
-               // TODO Auto-generated method stub
                
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-        */
        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-               // TODO Auto-generated method stub
-               
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-        */
        @Override
        public Object[] getElements(Object inputElement) {
+               Taxon taxon = null;
                if(inputElement instanceof TaxonEditorInput){
-                       Taxon taxon = ((TaxonEditorInput) inputElement).getTaxon();
-                       
-                       Set<TaxonRelationship> filteredTaxonRelations = new HashSet<TaxonRelationship>();
+                       taxon = ((TaxonEditorInput) inputElement).getTaxon();
+               }
+               else if(inputElement instanceof Taxon){
+                       taxon = (Taxon) inputElement;
+               }
+               if(taxon!=null){
+                       Map<TaxonRelationship, Taxon> taxonToTaxonRelationsMap = new HashMap<>();
                        
                        for (TaxonRelationship relationship : taxon.getTaxonRelations()) {
                                if (! relationship.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR()) ||
                                                 relationship.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
-                                       filteredTaxonRelations.add(relationship);
+                                       taxonToTaxonRelationsMap.put(relationship, taxon);
                                }
                        }
-                       
-                       return filteredTaxonRelations.toArray();
+                       return taxonToTaxonRelationsMap.entrySet().toArray();
                }
                return new Object[0];
        }
index 6fb3d9c37e701b097d1aa05ecdf3cb318b758cba..157defcca34ca8a9c1d1f229f51e714ab2117dff 100644 (file)
 
 package eu.etaxonomy.taxeditor.editor.view.concept;
 
+import java.util.Map.Entry;
+
 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.swt.graphics.Image;
 
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.Representation;
-import eu.etaxonomy.cdm.model.reference.IReference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
@@ -34,24 +30,18 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class ConceptLabelProvider extends LabelProvider implements IStyledLabelProvider {
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
-        */
        @Override
        public Image getImage(Object element) {
-               if(element instanceof TaxonRelationship){
-                       return getTaxonRelationshipImage((TaxonRelationship) element);
+               if(element instanceof Entry){
+                       return getTaxonRelationshipImage((TaxonRelationship) ((Entry<TaxonRelationship, Taxon>) element).getKey());
                }
                return super.getImage(element);
        }
        
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
-        */
        @Override
        public String getText(Object element) {
-               if(element instanceof TaxonRelationship){
-                       return formatRelationship((TaxonRelationship) element);
+               if(element instanceof Entry){
+                       return formatRelationship((Entry<TaxonRelationship, Taxon>) element);
                }
                
                return "";
@@ -59,23 +49,20 @@ public class ConceptLabelProvider extends LabelProvider implements IStyledLabelP
        
        /**
         * Creates a string that holds a representation of the {@link TaxonRelationship} in relation to
-        * the accepted taxon of the currently active {@link MultiPageTaxonEditor}.
+        * the currently selected and accepted taxon.
         * 
         * @param relationship
         * @return a formatted String representation of the relationship
         */
-       private String formatRelationship(TaxonRelationship relationship){
-               Taxon sourceTaxon = EditorUtil.getActiveMultiPageTaxonEditor().getTaxon();
-               TaxonRelationshipTypeInverseContainer container = TaxonRelationshipTypeInverseContainer.CreateFromSource(sourceTaxon, relationship);
-               Taxon relatedTaxon = TaxonRelationshipTypeInverseContainer.RelatedTaxon(sourceTaxon, relationship);
+       private String formatRelationship(Entry<TaxonRelationship, Taxon> entry){
+               Taxon sourceTaxon = entry.getValue();
+               TaxonRelationshipTypeInverseContainer container = TaxonRelationshipTypeInverseContainer.CreateFromSource(sourceTaxon, entry.getKey());
+               Taxon relatedTaxon = TaxonRelationshipTypeInverseContainer.RelatedTaxon(sourceTaxon, entry.getKey());
                String string = String.format("%s %s", container.getAbbreviatedLabel(), relatedTaxon);
                
                return string;
        }
        
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
-        */
        @Override
        public StyledString getStyledText(Object element) {
                return  new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
index 898301e69bd4f991adc81bf827d504f0bb7848c1..3dd020bb3b1edd54c9d06a9a5501b1020817ce14 100644 (file)
 
 package eu.etaxonomy.taxeditor.editor.view.concept;
 
+import java.util.Map.Entry;
+
 import org.eclipse.jface.action.GroupMarker;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ListViewer;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.Viewer;
@@ -25,51 +28,80 @@ import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPart;
 
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.editor.Messages;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.model.LineSelection;
 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
+import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
+import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
 
 /**
  * @author n.hoffmann
  * @created Jan 24, 2011
  * @version 1.0
  */
-public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData{
+public class ConceptViewPart extends AbstractCdmEditorViewPart 
+implements IPartContentHasDetails, IPartContentHasSupplementalData{
 
-       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept";
+       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept"; //$NON-NLS-1$
 
-       private ListViewer viewer;
+       private ConceptRelationViewer viewer;
 
        @Override
        protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
+               if(part == this){
+                   return;
+               }
                if(AbstractUtility.getActiveEditor() == null){
                        showEmptyPage();
                        return;
                }
-
-               if(part instanceof BulkEditor){
-                       showEmptyPage();
+               
+        if (part instanceof DetailsViewPart || part instanceof SupplementalDataViewPart) {
+            // do not show empty page as these views are also used to edit the
+            // description selected in this view
+            return;
+        }
+        else if(part instanceof BulkEditor && selection instanceof LineSelection){
+                       if(((LineSelection) selection).getFirstElement() instanceof Taxon){
+                               showViewer(part, (LineSelection) selection);
+                       }
+                       else{
+                               showEmptyPage();
+                       }
                        return;
                }
-
-               if(part instanceof AbstractGraphKeyEditor){
+               else if(part instanceof AbstractGraphKeyEditor){
                        showEmptyPage();
                        return;
                }
-
-               if(part instanceof MultiPageTaxonEditor){
+               else if(part instanceof MultiPageTaxonEditor){
                        if(! part.equals(this.part)){
                                IEditorInput input = ((IEditorPart) part).getEditorInput();
                                showViewer(part, new StructuredSelection(input));
                        }
-                       showViewer();
+               }
+               else {
+                   showEmptyPage();
                }
 
        }
+       
+       @Override
+       protected String createPartTitle(Object selectedObject) {
+               if(selectedObject instanceof TaxonEditorInput){
+                       return super.createPartTitle(((TaxonEditorInput) selectedObject).getTaxon());
+               }
+               return super.createPartTitle(selectedObject);
+       }
 
        @Override
        public boolean onComplete() {
@@ -83,7 +115,7 @@ public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartC
 
        @Override
        public void createViewer(Composite parent) {
-               viewer = new ListViewer(parent);
+               viewer = new ConceptRelationViewer(parent);
 
                viewer.setContentProvider(new ConceptContentProvider());
                viewer.setLabelProvider(new ConceptLabelProvider());
@@ -114,4 +146,34 @@ public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartC
                super.changed(object);
        }
 
+       private class ConceptRelationViewer extends ListViewer {
+
+               public ConceptRelationViewer(Composite parent) {
+                       super(parent);
+               } 
+               
+               @Override
+               public ISelection getSelection() {
+                       ISelection selection = super.getSelection();
+                       if(selection instanceof IStructuredSelection && !selection.isEmpty()){
+                               Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+                               TaxonRelationship taxonRelationship = ((Entry<TaxonRelationship, Taxon>)firstElement).getKey();
+                               return new StructuredSelection(taxonRelationship);
+                               
+                       }
+                       return selection;
+               }
+               
+               @Override
+               public void setSelection(ISelection selection) {
+                       super.setSelection(selection);
+               }
+
+       }
+
+       @Override
+       protected String getViewName() {
+               return Messages.ConceptViewPart_VIEWER_NAME;
+       }
+
 }
index 01ca52b887b002e49c861b3d5e9bc1b9bba5b3e9..2866751df28103eeac8d160e390017bf1fad85b4 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
 
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.Messages;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
 
@@ -28,7 +29,7 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
  */
 public class ConceptGraphView extends AbstractCdmEditorViewPart {
 
-       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept.graph";
+       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept.graph"; //$NON-NLS-1$
 
        private GraphViewer viewer;
        private LayoutAlgorithm layoutAlgoritm;
@@ -123,5 +124,10 @@ public class ConceptGraphView extends AbstractCdmEditorViewPart {
                return layoutAlgoritm;
        }
 
+       @Override
+       protected String getViewName() {
+               return Messages.ConceptGraphView_VIEWER_NAME;
+       }
+
 
 }
index d850131f91bf2080072cc03dfe833a459dd35a16..44c0e58c0daa374c678cd2840b0ddc5ba186e234 100644 (file)
@@ -1,9 +1,9 @@
 // $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.
 */
@@ -14,16 +14,20 @@ 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.IUndoContext;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.handlers.HandlerUtil;
 
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -33,52 +37,61 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonBaseSelectionDialog;
 
 /**
- * <p>CreateConceptRelationHandler class.</p>
- *
  * @author n.hoffmann
  * @created 16.04.2009
  * @version 1.0
  */
 public class CreateConceptRelationHandler extends AbstractHandler {
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
+
        /** {@inheritDoc} */
        @Override
        public Object execute(ExecutionEvent event) throws ExecutionException {
-               TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-                               Page.NAME);
-               
-               Taxon taxonToBeFiltered = editor.getTaxon();
-               
-               /* we need to get the activePart before calling TaxonBaseSelectionDialog.selectTaxon(), otherwise the 
+           IUndoContext undoContext = null;
+           ConversationHolder conversationHolder = null;
+           Taxon taxon = null;
+               IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+               if(activeEditor instanceof MultiPageTaxonEditor){
+                   MultiPageTaxonEditor taxonEditor = (MultiPageTaxonEditor)activeEditor;
+                   taxon = taxonEditor.getTaxon();
+                   conversationHolder = taxonEditor.getConversationHolder();
+                   undoContext = taxonEditor.getUndoContext();
+               }
+               else if(activeEditor instanceof BulkEditor){
+                   BulkEditor bulkEditor = (BulkEditor)activeEditor;
+            ISelection selection = bulkEditor.getSelectionProvider().getSelection();
+                   taxon = (Taxon) ((IStructuredSelection)selection).getFirstElement();
+                   conversationHolder = bulkEditor.getConversationHolder();
+                   undoContext = bulkEditor.getUndoContext();
+               }
+
+
+               /* we need to get the activePart before calling TaxonBaseSelectionDialog.selectTaxon(), otherwise the
                 * the variable of the parent applicationContext in event are overwritten during this method call
                 * this is Linux specific bugfix see: #2685 ([LINUX] Editing concept relationships does not work under linux)
                 */
                IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
 
-               Taxon relatedConcept = TaxonBaseSelectionDialog.selectTaxon(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), taxonToBeFiltered);
-                                       
-               
+               Taxon relatedConcept = TaxonBaseSelectionDialog.selectTaxon(HandlerUtil.getActiveShell(event), conversationHolder, taxon);
+
+
                if(relatedConcept == null){
                        return Status.CANCEL_STATUS;
                }
                TaxonRelationshipType type = (TaxonRelationshipType) ((Event)event.getTrigger()).data;
                boolean isInverse = type.getInverseLabel().isEmpty()?false:true;
                TaxonRelationshipTypeInverseContainer typeInverseContainer =new TaxonRelationshipTypeInverseContainer(type, isInverse) ;
-               
+
 
                IPostOperationEnabled postOperationEnabled = (activePart instanceof IPostOperationEnabled) ? (IPostOperationEnabled) activePart : null;
-               
+
                try {
-                       AbstractPostOperation operation = new CreateConceptRelationOperation(event.getCommand().getName(), 
-                                       editor.getUndoContext(), editor.getTaxon(), relatedConcept, typeInverseContainer, postOperationEnabled);
+                       AbstractPostOperation operation = new CreateConceptRelationOperation(event.getCommand().getName(),
+                                       undoContext, taxon, relatedConcept, typeInverseContainer, postOperationEnabled);
                        AbstractUtility.executeOperation(operation);
                } catch (NotDefinedException e) {
                        MessagingUtils.warn(getClass(), "Command name not set");
                }
-               
+
                return null;
        }
 }
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 bd0723b..0000000
+++ /dev/null
@@ -1,852 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.IAgentService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.agent.Address;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
-import eu.etaxonomy.cdm.model.agent.Institution;
-import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;
-import eu.etaxonomy.cdm.model.agent.Person;
-import eu.etaxonomy.cdm.model.agent.Team;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-import eu.etaxonomy.cdm.strategy.merge.MergeException;
-
-/**
- * @author pplitzner
- * @date 27.09.2013
- *
- */
-public class TransientAgentService implements IAgentService {
-
-    private final IAgentService defaultService;
-
-    /**
-     * @param defaultAgentService
-     */
-    public TransientAgentService(IAgentService defaultAgentService) {
-        this.defaultService = defaultAgentService;
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<AgentBase>> pageAuditEvents(AgentBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(AgentBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param code
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#searchInstitutionByCode(java.lang.String)
-     */
-    @Override
-    public List<Institution> searchInstitutionByCode(String code) {
-        return defaultService.searchInstitutionByCode(code);
-    }
-
-    /**
-     * @param person
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#getInstitutionalMemberships(eu.etaxonomy.cdm.model.agent.Person, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public Pager<InstitutionalMembership> getInstitutionalMemberships(Person person, Integer pageSize, Integer pageNumber) {
-        return defaultService.getInstitutionalMemberships(person, pageSize, pageNumber);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
-     */
-    @Override
-    public void lock(AgentBase t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
-     */
-    @Override
-    public void refresh(AgentBase t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     * @param team
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#getMembers(eu.etaxonomy.cdm.model.agent.Team, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public Pager<Person> getMembers(Team team, Integer pageSize, Integer pageNumber) {
-        return defaultService.getMembers(team, pageSize, pageNumber);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<AgentBase> getNextAuditEvent(AgentBase t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(AgentBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends AgentBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<AgentBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param agent
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#getAddresses(eu.etaxonomy.cdm.model.agent.AgentBase, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public Pager<Address> getAddresses(AgentBase agent, Integer pageSize, Integer pageNumber) {
-        return defaultService.getAddresses(agent, pageSize, pageNumber);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<AgentBase> getPreviousAuditEvent(AgentBase t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends AgentBase> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<AgentBase> search(Class<? extends AgentBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<AgentBase>> pageAuditEvents(Class<? extends AgentBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public AgentBase find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(AgentBase persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends AgentBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public AgentBase replace(AgentBase x, AgentBase y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<AgentBase> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(AgentBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public AgentBase find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#getPersonUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<Person>> getPersonUuidAndTitleCache() {
-        return defaultService.getPersonUuidAndTitleCache();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#getTeamUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<Team>> getTeamUuidAndTitleCache() {
-        return defaultService.getTeamUuidAndTitleCache();
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public AgentBase find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(AgentBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends AgentBase> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#getTeamUuidAndNomenclaturalTitle()
-     */
-    @Override
-    public List<UuidAndTitleCache<Team>> getTeamUuidAndNomenclaturalTitle() {
-        return defaultService.getTeamUuidAndNomenclaturalTitle();
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<AgentBase> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#getInstitutionUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<Institution>> getInstitutionUuidAndTitleCache() {
-        return defaultService.getInstitutionUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<AgentBase>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends AgentBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<AgentBase> findByTitle(Class<? extends AgentBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends AgentBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<AgentBase> findByTitle(IIdentifiableEntityServiceConfigurator<AgentBase> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends AgentBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public AgentBase load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public AgentBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<AgentBase> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public AgentBase merge(AgentBase transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<AgentBase> listByTitle(Class<? extends AgentBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends AgentBase>  Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(AgentBase persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<AgentBase> listByReferenceTitle(Class<? extends AgentBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<AgentBase> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param newInstances
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, AgentBase> save(Collection<AgentBase> newInstances) {
-        return null;
-    }
-
-    /**
-     * @param newInstance
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public AgentBase save(AgentBase newInstance) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(AgentBase transientObject) {
-        return null;
-    }
-
-    /**
-     * @param transientObjects
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, AgentBase> saveOrUpdate(Collection<AgentBase> transientObjects) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(AgentBase transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<AgentBase> list(AgentBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
-    @Override
-    public int deduplicate(Class<? extends AgentBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
-    @Override
-    public Pager<AgentBase> findTitleCache(Class<? extends AgentBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-       @Override
-       public DeleteResult isDeletable(AgentBase object,
-                       DeleteConfiguratorBase config) {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public AgentBase findWithoutFlush(UUID uuid) {
-               return defaultService.findWithoutFlush(uuid);
-       };
-
-       @Override
-       public <S extends AgentBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-               return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-       }
-
-       @Override
-       public UpdateResult convertPerson2Team(Person arg0) throws MergeException,
-                       IllegalArgumentException {
-               return defaultService.convertPerson2Team(arg0);
-       }
-
-       @Override
-       public UpdateResult convertTeam2Person(Team arg0) throws MergeException,
-                       IllegalArgumentException {
-               return defaultService.convertTeam2Person(arg0);
-       }
-
-
-       @Override
-       public DeleteResult delete(UUID arg0) {
-               return defaultService.delete(arg0);
-       }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
-     */
-    @Override
-    public DeleteResult delete(Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
-     */
-    @Override
-    public List<AgentBase> merge(List<AgentBase> arg0) {
-       return defaultService.merge(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List, boolean)
-     */
-    @Override
-    public List<MergeResult<AgentBase>> merge(List<AgentBase> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase, boolean)
-     */
-    @Override
-    public MergeResult<AgentBase> merge(AgentBase arg0, boolean arg1) {
-       return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#loadWithUpdate(java.util.UUID)
-     */
-    @Override
-    public AgentBase loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#convertPerson2Team(java.util.UUID)
-     */
-    @Override
-    public UpdateResult convertPerson2Team(UUID arg0) throws MergeException, IllegalArgumentException {
-        return defaultService.convertPerson2Team(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IAgentService#convertTeam2Person(java.util.UUID)
-     */
-    @Override
-    public UpdateResult convertTeam2Person(UUID arg0) throws MergeException {
-        return defaultService.convertTeam2Person(arg0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<AgentBase> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<UuidAndTitleCache<AgentBase>> getUuidAndAbbrevTitleCache() {
-        return defaultService.getUuidAndAbbrevTitleCache();
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCdmRepository.java
deleted file mode 100644 (file)
index f3d1772..0000000
+++ /dev/null
@@ -1,445 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.util.Collection;
-
-import org.springframework.security.authentication.ProviderManager;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.TransactionStatus;
-
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.service.IAgentService;
-import eu.etaxonomy.cdm.api.service.IAnnotationService;
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.api.service.ICollectionService;
-import eu.etaxonomy.cdm.api.service.ICommonService;
-import eu.etaxonomy.cdm.api.service.IDatabaseService;
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
-import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;
-import eu.etaxonomy.cdm.api.service.IEntityValidationService;
-import eu.etaxonomy.cdm.api.service.IEventBaseService;
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
-import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
-import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;
-import eu.etaxonomy.cdm.api.service.IGroupService;
-import eu.etaxonomy.cdm.api.service.IIdentificationKeyService;
-import eu.etaxonomy.cdm.api.service.ILocationService;
-import eu.etaxonomy.cdm.api.service.IMediaService;
-import eu.etaxonomy.cdm.api.service.IMetadataService;
-import eu.etaxonomy.cdm.api.service.INameService;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
-import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
-import eu.etaxonomy.cdm.api.service.IReferenceService;
-import eu.etaxonomy.cdm.api.service.IService;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.api.service.IUserService;
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
-import eu.etaxonomy.cdm.api.service.IWorkingSetService;
-import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
-import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
-import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
-
-/**
- * @author pplitzner
- * @date 26.09.2013
- *
- */
-public class TransientCdmRepository implements ICdmApplicationConfiguration {
-
-    private final ICdmApplicationConfiguration defaultApplicationConfiguration;
-    private TransientOccurenceService occurenceService;
-
-    public Collection<SpecimenOrObservationBase<?>> getUnits(){
-        return occurenceService.getUnits();
-    }
-
-    /**
-     * @param defaultApplicationConfiguration
-     */
-    public TransientCdmRepository(ICdmApplicationConfiguration defaultApplicationConfiguration) {
-        this.defaultApplicationConfiguration = defaultApplicationConfiguration;
-        this.occurenceService = (TransientOccurenceService) getOccurrenceService();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#NewConversation()
-     */
-    @Override
-    public ConversationHolder NewConversation() {
-        return defaultApplicationConfiguration.NewConversation();
-    }
-
-    /**
-     * @param arg0
-     * @param arg1
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#authenticate(java.lang.String, java.lang.String)
-     */
-    @Override
-    public void authenticate(String arg0, String arg1) {
-        defaultApplicationConfiguration.authenticate(arg0, arg1);
-    }
-
-    /**
-     * @param arg0
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#commitTransaction(org.springframework.transaction.TransactionStatus)
-     */
-    @Override
-    public void commitTransaction(TransactionStatus arg0) {
-        defaultApplicationConfiguration.commitTransaction(arg0);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getAgentService()
-     */
-    @Override
-    public IAgentService getAgentService() {
-        return new TransientAgentService(defaultApplicationConfiguration.getAgentService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getAuthenticationManager()
-     */
-    @Override
-    public ProviderManager getAuthenticationManager() {
-        return defaultApplicationConfiguration.getAuthenticationManager();
-    }
-
-    /**
-     * @param arg0
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getBean(java.lang.String)
-     */
-    @Override
-    public Object getBean(String arg0) {
-        return defaultApplicationConfiguration.getBean(arg0);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getClassificationService()
-     */
-    @Override
-    public IClassificationService getClassificationService() {
-        return new TransientClassificationService(defaultApplicationConfiguration.getClassificationService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getCollectionService()
-     */
-    @Override
-    public ICollectionService getCollectionService() {
-        return new TransientCollectionService(defaultApplicationConfiguration.getCollectionService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getCommonService()
-     */
-    @Override
-    public ICommonService getCommonService() {
-        return defaultApplicationConfiguration.getCommonService();
-//        return new TransientCommonService(defaultApplicationConfiguration.getCommonService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getDatabaseService()
-     */
-    @Override
-    public IDatabaseService getDatabaseService() {
-        return defaultApplicationConfiguration.getDatabaseService();
-//        return new TransientDatabaseService(defaultApplicationConfiguration.getDatabaseService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getDescriptionService()
-     */
-    @Override
-    public IDescriptionService getDescriptionService() {
-        return new TransientDescriptionService(defaultApplicationConfiguration.getDescriptionService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getFeatureNodeService()
-     */
-    @Override
-    public IFeatureNodeService getFeatureNodeService() {
-        return defaultApplicationConfiguration.getFeatureNodeService();
-//        return new TransientFeatureNodeService(defaultApplicationConfiguration.getFeatureNodeService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getFeatureTreeService()
-     */
-    @Override
-    public IFeatureTreeService getFeatureTreeService() {
-        return defaultApplicationConfiguration.getFeatureTreeService();
-//        return new TransientFeatureTreeService(defaultApplicationConfiguration.getFeatureTreeService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getGrantedAuthorityService()
-     */
-    @Override
-    public IGrantedAuthorityService getGrantedAuthorityService() {
-        return defaultApplicationConfiguration.getGrantedAuthorityService();
-//        return new TransientGrantedAuthorityService(defaultApplicationConfiguration.getGrantedAuthorityService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getGroupService()
-     */
-    @Override
-    public IGroupService getGroupService() {
-        return defaultApplicationConfiguration.getGroupService();
-//        return new TransientGroupService(defaultApplicationConfiguration.getGroupService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getIdentificationKeyService()
-     */
-    @Override
-    public IIdentificationKeyService getIdentificationKeyService() {
-        return defaultApplicationConfiguration.getIdentificationKeyService();
-//        return new TransientIdentificationService(defaultApplicationConfiguration.getIdentificationKeyService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getLocationService()
-     */
-    @Override
-    public ILocationService getLocationService() {
-        return defaultApplicationConfiguration.getLocationService();
-//        return new TransientLocationService(defaultApplicationConfiguration.getLocationService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getMainService()
-     */
-    @Override
-    public IService<CdmBase> getMainService() {
-        return defaultApplicationConfiguration.getMainService();
-//        return new TransientMainService(defaultApplicationConfiguration.getMainService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getMediaService()
-     */
-    @Override
-    public IMediaService getMediaService() {
-        return defaultApplicationConfiguration.getMediaService();
-//        return new TransientMediaService(defaultApplicationConfiguration.getMediaService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getNameService()
-     */
-    @Override
-    public INameService getNameService() {
-        return new TransientNameService(defaultApplicationConfiguration.getNameService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getOccurrenceService()
-     */
-    @Override
-    public IOccurrenceService getOccurrenceService() {
-        if(occurenceService==null){
-            occurenceService = new TransientOccurenceService(defaultApplicationConfiguration.getOccurrenceService());
-        }
-        return occurenceService;
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getPermissionEvaluator()
-     */
-    @Override
-    public ICdmPermissionEvaluator getPermissionEvaluator() {
-        return defaultApplicationConfiguration.getPermissionEvaluator();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getPolytomousKeyNodeService()
-     */
-    @Override
-    public IPolytomousKeyNodeService getPolytomousKeyNodeService() {
-        return defaultApplicationConfiguration.getPolytomousKeyNodeService();
-//        return new TransientPolytomousKeyNodeService(defaultApplicationConfiguration.getPolytomousKeyNodeService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getPolytomousKeyService()
-     */
-    @Override
-    public IPolytomousKeyService getPolytomousKeyService() {
-        return defaultApplicationConfiguration.getPolytomousKeyService();
-//        return new TransientPolytomousKeyService(defaultApplicationConfiguration.getPolytomousKeyService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getReferenceService()
-     */
-    @Override
-    public IReferenceService getReferenceService() {
-        return new TransientReferenceService(defaultApplicationConfiguration.getReferenceService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getTaxonNodeService()
-     */
-    @Override
-    public ITaxonNodeService getTaxonNodeService() {
-        return defaultApplicationConfiguration.getTaxonNodeService();
-//        return new TransientTaxonNodeService(defaultApplicationConfiguration.getTaxonNodeService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getTaxonService()
-     */
-    @Override
-    public ITaxonService getTaxonService() {
-        return new TransientTaxonService(defaultApplicationConfiguration.getTaxonService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getTermService()
-     */
-    @Override
-    public ITermService getTermService() {
-        return new TransientTermService(defaultApplicationConfiguration.getTermService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getTransactionManager()
-     */
-    @Override
-    public PlatformTransactionManager getTransactionManager() {
-        return defaultApplicationConfiguration.getTransactionManager();
-    }
-
-    @Override
-    public IUserService getUserService() {
-        return defaultApplicationConfiguration.getUserService();
-//        return new TransientUserService(defaultApplicationConfiguration.getUserService());
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getVocabularyService()
-     */
-    @Override
-    public IVocabularyService getVocabularyService() {
-        return defaultApplicationConfiguration.getVocabularyService();
-//        return new TransientVocabularyService(defaultApplicationConfiguration.getVocabularyService());
-    }
-
-    @Override
-    public IWorkingSetService getWorkingSetService() {
-        return defaultApplicationConfiguration.getWorkingSetService();
-//        return new TransientWorkingSetService(defaultApplicationConfiguration.getWorkingSetService());
-    }
-
-    @Override
-    public TransactionStatus startTransaction() {
-        return defaultApplicationConfiguration.startTransaction();
-    }
-
-
-    @Override
-    public TransactionStatus startTransaction(Boolean arg0) {
-        return defaultApplicationConfiguration.startTransaction(arg0);
-    }
-
-    @Override
-    public IPrimerService getPrimerService() {
-        return defaultApplicationConfiguration.getPrimerService();
-    }
-
-    @Override
-    public IAmplificationService getAmplificationService() {
-        return defaultApplicationConfiguration.getAmplificationService();
-    }
-
-    @Override
-    public ISequenceService getSequenceService() {
-        return defaultApplicationConfiguration.getSequenceService();
-    }
-
-    @Override
-    public IEventBaseService getEventBaseService() {
-        return defaultApplicationConfiguration.getEventBaseService();
-    }
-
-       @Override
-       public IEntityConstraintViolationService getEntityConstraintViolationService() {
-               return defaultApplicationConfiguration.getEntityConstraintViolationService();
-       }
-
-       @Override
-       public IEntityValidationService getEntityValidationService() {
-               return defaultApplicationConfiguration.getEntityValidationService();
-       }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getAnnotationService()
-     */
-    @Override
-    public IAnnotationService getAnnotationService() {
-        return defaultApplicationConfiguration.getAnnotationService();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public IProgressMonitorService getProgressMonitorService() {
-        return defaultApplicationConfiguration.getProgressMonitorService();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public IMetadataService getMetadataService() {
-        return defaultApplicationConfiguration.getMetadataService();
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientClassificationService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientClassificationService.java
deleted file mode 100644 (file)
index 9a8a1b8..0000000
+++ /dev/null
@@ -1,995 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.api.service.config.CreateHierarchyForClassificationConfigurator;
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.media.MediaRepresentation;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.name.Rank;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-
-/**
- * @author pplitzner
- * @date 27.09.2013
- *
- */
-public class TransientClassificationService implements IClassificationService {
-
-    private final IClassificationService defaultService;
-
-    /**
-     * @param defaultClassificationService
-     */
-    public TransientClassificationService(IClassificationService defaultClassificationService) {
-        this.defaultService = defaultClassificationService;
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<Classification>> pageAuditEvents(Classification t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(Classification annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#getTaxonNodeByUuid(java.util.UUID)
-     */
-    @Override
-    public TaxonNode getTaxonNodeByUuid(UUID uuid) {
-        return defaultService.getTaxonNodeByUuid(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#getTreeNodeByUuid(java.util.UUID)
-     */
-    @Override
-    public ITaxonTreeNode getTreeNodeByUuid(UUID uuid) {
-        return defaultService.getTreeNodeByUuid(uuid);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#listClassifications(java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Classification> listClassifications(Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listClassifications(limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
-     */
-    @Override
-    public void lock(Classification t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
-     */
-    @Override
-    public void refresh(Classification t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param classificationUuid
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#loadTaxonNodeByTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.UUID, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public TaxonNode loadTaxonNodeByTaxon(Taxon taxon, UUID classificationUuid, List<String> propertyPaths) {
-        return defaultService.loadTaxonNodeByTaxon(taxon, classificationUuid, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<Classification> getNextAuditEvent(Classification t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(Classification annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends Classification> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<Classification> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param taxonNode
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#loadTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public TaxonNode loadTaxonNode(TaxonNode taxonNode, List<String> propertyPaths) {
-        return defaultService.loadTaxonNode(taxonNode, propertyPaths);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<Classification> getPreviousAuditEvent(Classification t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends Classification> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<Classification>> pageAuditEvents(Class<? extends Classification> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public Classification find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(Classification persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends Classification> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public Classification replace(Classification x, Classification y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<Classification> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(Classification t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param classification
-     * @param rank
-     * @param pageSize
-     * @param pageIndex
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#listRankSpecificRootNodes(eu.etaxonomy.cdm.model.taxon.Classification, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<TaxonNode> listRankSpecificRootNodes(Classification classification, Rank rank, Integer pageSize, Integer pageIndex, List<String> propertyPaths) {
-        return defaultService.listRankSpecificRootNodes(classification, rank, pageSize, pageIndex, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public Classification find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public Classification find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(Classification t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends Classification> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<Classification> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @param classification
-     * @param rank
-     * @param pageSize
-     * @param pageIndex
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#pageRankSpecificRootNodes(eu.etaxonomy.cdm.model.taxon.Classification, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<TaxonNode> pageRankSpecificRootNodes(Classification classification, Rank rank, Integer pageSize, Integer pageIndex, List<String> propertyPaths) {
-        return defaultService.pageRankSpecificRootNodes(classification, rank, pageSize, pageIndex, propertyPaths);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<Classification>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends Classification> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Classification> findByTitle(Class<? extends Classification> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxonNode
-     * @param baseRank
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#loadTreeBranch(eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.model.name.Rank, java.util.List)
-     */
-    @Override
-    public List<TaxonNode> loadTreeBranch(TaxonNode taxonNode, Rank baseRank, List<String> propertyPaths) {
-        return defaultService.loadTreeBranch(taxonNode, baseRank, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends Classification> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param classification
-     * @param baseRank
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#loadTreeBranchToTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, eu.etaxonomy.cdm.model.name.Rank, java.util.List)
-     */
-    @Override
-    public List<TaxonNode> loadTreeBranchToTaxon(Taxon taxon, Classification classification, Rank baseRank, List<String> propertyPaths) {
-        return defaultService.loadTreeBranchToTaxon(taxon, classification, baseRank, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<Classification> findByTitle(IIdentifiableEntityServiceConfigurator<Classification> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends Classification> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public Classification load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public Classification load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<Classification> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public Classification merge(Classification transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Classification> listByTitle(Class<? extends Classification> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends Classification> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxonNode
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#loadChildNodesOfTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public List<TaxonNode> loadChildNodesOfTaxonNode(TaxonNode taxonNode, List<String> propertyPaths) {
-        return defaultService.loadChildNodesOfTaxonNode(taxonNode, propertyPaths);
-    }
-
-    /**
-     * @param classification
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(eu.etaxonomy.cdm.model.taxon.Classification)
-     */
-    @Override
-    public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(Classification classification, List<UUID> excludeTaxa) {
-        return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification, excludeTaxa);
-    }
-
-    /**
-     * @param taxon
-     * @param taxTree
-     * @param propertyPaths
-     * @param size
-     * @param height
-     * @param widthOrDuration
-     * @param mimeTypes
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#getAllMediaForChildNodes(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List, int, int, int, java.lang.String[])
-     */
-    @Deprecated
-    @Override
-    public Map<UUID, List<MediaRepresentation>> getAllMediaForChildNodes(Taxon taxon, Classification taxTree, List<String> propertyPaths, int size, int height, int widthOrDuration, String[] mimeTypes) {
-        return defaultService.getAllMediaForChildNodes(taxon, taxTree, propertyPaths, size, height, widthOrDuration, mimeTypes);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(Classification persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Classification> listByReferenceTitle(Class<? extends Classification> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxonNode
-     * @param propertyPaths
-     * @param size
-     * @param height
-     * @param widthOrDuration
-     * @param mimeTypes
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#getAllMediaForChildNodes(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List, int, int, int, java.lang.String[])
-     */
-    @Override
-    public Map<UUID, List<MediaRepresentation>> getAllMediaForChildNodes(TaxonNode taxonNode, List<String> propertyPaths, int size, int height, int widthOrDuration, String[] mimeTypes) {
-        return defaultService.getAllMediaForChildNodes(taxonNode, propertyPaths, size, height, widthOrDuration, mimeTypes);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<Classification> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param newInstances
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, Classification> save(Collection<Classification> newInstances) {
-        return null;
-    }
-
-    /**
-     * @param taxonNode
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#removeTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode)
-     */
-    @Deprecated
-    @Override
-    public UUID removeTaxonNode(TaxonNode taxonNode) {
-        return defaultService.removeTaxonNode(taxonNode);
-    }
-
-    /**
-     * @param taxonNode
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#saveTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode)
-     */
-    @Deprecated
-    @Override
-    public UUID saveTaxonNode(TaxonNode taxonNode) {
-        return null;
-    }
-
-    /**
-     * @param newInstance
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public Classification save(Classification newInstance) {
-        return null;
-    }
-
-    /**
-     * @param taxonNodeCollection
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#saveTaxonNodeAll(java.util.Collection)
-     */
-    @Deprecated
-    @Override
-    public Map<UUID, TaxonNode> saveTaxonNodeAll(Collection<TaxonNode> taxonNodeCollection) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(Classification transientObject) {
-        return null;
-    }
-
-    /**
-     * @param treeNode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#removeTreeNode(eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode)
-     */
-    @Override
-    public UUID removeTreeNode(ITaxonTreeNode treeNode) {
-        return defaultService.removeTreeNode(treeNode);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Classification> search(Class<? extends Classification> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param treeNode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#saveTreeNode(eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode)
-     */
-    @Override
-    public UUID saveTreeNode(ITaxonTreeNode treeNode) {
-        return null;
-    }
-
-    /**
-     * @param transientObjects
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, Classification> saveOrUpdate(Collection<Classification> transientObjects) {
-        return null;
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#getAllNodes()
-     */
-    @Override
-    public List<TaxonNode> getAllNodes() {
-        return defaultService.getAllNodes();
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(Classification transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Classification> list(Classification example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
-    @Override
-    public int deduplicate(Class<? extends Classification> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
-    @Override
-    public Pager<Classification> findTitleCache(Class<? extends Classification> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IClassificationService#listChildNodesOfTaxon(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<TaxonNode> listChildNodesOfTaxon(UUID taxonUuid, UUID classificationUuid, Integer pageSize,
-            Integer pageIndex, List<String> propertyPaths) {
-        return defaultService.listChildNodesOfTaxon(taxonUuid, classificationUuid, pageSize, pageIndex, propertyPaths);
-    }
-
-       @Override
-       public DeleteResult isDeletable(Classification object,
-                       DeleteConfiguratorBase config) {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public Classification findWithoutFlush(UUID uuid) {
-               return defaultService.findWithoutFlush(uuid);
-       }
-
-
-       @Override
-       public <S extends Classification>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-               return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-       }
-
-    @Override
-    public UpdateResult createHierarchyInClassification(Classification arg1, CreateHierarchyForClassificationConfigurator arg2) {
-       return defaultService.createHierarchyInClassification(arg1, arg2);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
-     */
-    @Override
-    public DeleteResult delete(UUID arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
-     */
-    @Override
-    public DeleteResult delete(Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
-     */
-    @Override
-    public List<Classification> merge(List<Classification> arg0) {
-        return defaultService.merge(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List, boolean)
-     */
-    @Override
-    public List<MergeResult<Classification>> merge(List<Classification> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase, boolean)
-     */
-    @Override
-    public MergeResult<Classification> merge(Classification arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#loadWithUpdate(java.util.UUID)
-     */
-    @Override
-    public Classification loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-
-       @Override
-       public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
-                       UUID classificationUuid, List<UUID> excludeTaxa) {
-
-               return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classificationUuid, excludeTaxa);
-       }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<Classification> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCollectionService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCollectionService.java
deleted file mode 100644 (file)
index 0068099..0000000
+++ /dev/null
@@ -1,763 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2014 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.view.dataimport.transientServices;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.ICollectionService;
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.occurrence.Collection;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-
-/**
- * @author pplitzner
- * @date Sep 8, 2014
- *
- */
-public class TransientCollectionService implements ICollectionService {
-
-    private final ICollectionService defaultService;
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public Collection save(Collection newInstance) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, Collection> save(java.util.Collection<Collection> newInstances) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(Collection transientObject) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, Collection> saveOrUpdate(java.util.Collection<Collection> transientObjects) {
-        return null;
-    }
-
-    /**
-     * @param defaultService
-     */
-    public TransientCollectionService(ICollectionService defaultService) {
-        this.defaultService = defaultService;
-    }
-
-    /**
-     * @param clazz
-     * @param query
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ICollectionService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Collection> search(Class<? extends Collection> clazz, String query, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, query, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(Collection annotatedObj, MarkerType status, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<Collection>> pageAuditEvents(Collection t, Integer pageSize, Integer pageNumber,
-            AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param t
-     * @param lockOptions
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockOptions)
-     */
-    @Override
-    public void lock(Collection t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param t
-     * @param lockOptions
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockOptions, java.util.List)
-     */
-    @Override
-    public void refresh(Collection t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param code
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ICollectionService#searchByCode(java.lang.String)
-     */
-    @Override
-    public List<Collection> searchByCode(String code) {
-        return defaultService.searchByCode(code);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<Collection> getNextAuditEvent(Collection t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends Collection> clazz, Integer stepSize,
-            IIdentifiableEntityCacheStrategy<Collection> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(Collection annotatableEntity, Boolean technical, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<Collection> getPreviousAuditEvent(Collection t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends Collection> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public Collection find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<Collection>> pageAuditEvents(Class<? extends Collection> clazz, AuditEvent from,
-            AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort,
-            List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(Collection persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends Collection> clazz, Boolean technical, Integer pageSize,
-            Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public Collection replace(Collection x, Collection y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(Collection t, Integer pageSize, Integer pageNumber,
-            List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<Collection> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public Collection find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(Collection t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param object
-     * @param config
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#isDeletable(eu.etaxonomy.cdm.model.common.VersionableEntity, eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase)
-     */
-    @Override
-    public DeleteResult isDeletable(Collection object, DeleteConfiguratorBase config) {
-        return defaultService.isDeletable(object, config);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends Collection> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findWithoutFlush(java.util.UUID)
-     */
-    @Override
-    public Collection findWithoutFlush(UUID uuid) {
-        return defaultService.findWithoutFlush(uuid);
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<Collection>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Collection> findByTitle(Class<? extends Collection> clazz, String queryString, MatchMode matchmode,
-            List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
-            List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints,
-                propertyPaths);
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public Collection find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<Collection> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<Collection> findByTitle(IIdentifiableEntityServiceConfigurator<Collection> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends Collection> clazz, Integer limit, Integer start, List<Grouping> groups,
-            List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends Collection> clazz, String queryString, MatchMode matchmode,
-            List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<Collection> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends Collection> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints,
-            List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Collection> listByTitle(Class<? extends Collection> clazz, String queryString, MatchMode matchmode,
-            List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
-            List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints,
-                propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public Collection load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Collection> listByReferenceTitle(Class<? extends Collection> clazz, String queryString,
-            MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber,
-            List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber,
-                orderHints, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public Collection load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public Collection merge(Collection transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends Collection> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber,
-            List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(Collection persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<Collection> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
-    @Override
-    public int deduplicate(Class<? extends Collection> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
-    @Override
-    public Pager<Collection> findTitleCache(Class<? extends Collection> clazz, String queryString, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(Collection transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Collection> list(Collection example, Set<String> includeProperties, Integer limit, Integer start,
-            List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-       @Override
-       public <S extends Collection>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-               return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-       }
-
-
-       @Override
-       public DeleteResult delete(UUID arg0) {
-               return defaultService.delete(arg0);
-       }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
-     */
-    @Override
-    public DeleteResult delete(java.util.Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
-     */
-    @Override
-    public List<Collection> merge(List<Collection> arg0) {
-        return defaultService.merge(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List, boolean)
-     */
-    @Override
-    public List<MergeResult<Collection>> merge(List<Collection> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase, boolean)
-     */
-    @Override
-    public MergeResult<Collection> merge(Collection arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#loadWithUpdate(java.util.UUID)
-     */
-    @Override
-    public Collection loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<Collection> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java
deleted file mode 100644 (file)
index ee1e09b..0000000
+++ /dev/null
@@ -1,1243 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.DistributionTree;
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.TermVocabulary;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
-import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
-import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-
-/**
- * @author pplitzner
- * @date 27.09.2013
- *
- */
-public class TransientDescriptionService implements IDescriptionService {
-
-    private final IDescriptionService defaultService;
-
-    /**
-     * @param defaultDescriptionService
-     */
-    public TransientDescriptionService(IDescriptionService defaultDescriptionService) {
-        this.defaultService = defaultDescriptionService;
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<DescriptionBase>> pageAuditEvents(DescriptionBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(DescriptionBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
-     */
-    @Override
-    public void lock(DescriptionBase t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
-     */
-    @Override
-    public void refresh(DescriptionBase t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<DescriptionBase> getNextAuditEvent(DescriptionBase t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getDefaultFeatureVocabulary()
-     */
-    @Deprecated
-    @Override
-    public TermVocabulary<Feature> getDefaultFeatureVocabulary() {
-        return defaultService.getDefaultFeatureVocabulary();
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(DescriptionBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getFeatureVocabulary(java.util.UUID)
-     */
-    @Deprecated
-    @Override
-    public TermVocabulary<Feature> getFeatureVocabulary(UUID uuid) {
-        return defaultService.getFeatureVocabulary(uuid);
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends DescriptionBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<DescriptionBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<DescriptionBase> getPreviousAuditEvent(DescriptionBase t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getDescriptionElementByUuid(java.util.UUID)
-     */
-    @Override
-    public DescriptionElementBase getDescriptionElementByUuid(UUID uuid) {
-        return defaultService.getDescriptionElementByUuid(uuid);
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends DescriptionBase> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#loadDescriptionElement(java.util.UUID, java.util.List)
-     */
-    @Override
-    public DescriptionElementBase loadDescriptionElement(UUID uuid, List<String> propertyPaths) {
-        return defaultService.loadDescriptionElement(uuid, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<DescriptionBase>> pageAuditEvents(Class<? extends DescriptionBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public DescriptionBase find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(DescriptionBase persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends DescriptionBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public DescriptionBase replace(DescriptionBase x, DescriptionBase y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param descriptionElement
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#saveDescriptionElement(eu.etaxonomy.cdm.model.description.DescriptionElementBase)
-     */
-    @Override
-    public UUID saveDescriptionElement(DescriptionElementBase descriptionElement) {
-        return null;
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<DescriptionBase> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param descriptionElements
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#saveDescriptionElement(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, DescriptionElementBase> saveDescriptionElement(Collection<DescriptionElementBase> descriptionElements) {
-        return null;
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(DescriptionBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param descriptionElement
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#deleteDescriptionElement(eu.etaxonomy.cdm.model.description.DescriptionElementBase)
-     */
-    @Override
-    public UUID deleteDescriptionElement(DescriptionElementBase descriptionElement) {
-        return defaultService.deleteDescriptionElement(descriptionElement);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public DescriptionBase find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @param type
-     * @param hasMedia
-     * @param hasText
-     * @param feature
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#page(java.lang.Class, java.lang.Boolean, java.lang.Boolean, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<DescriptionBase> page(Class<? extends DescriptionBase> type, Boolean hasMedia, Boolean hasText, Set<Feature> feature, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, hasMedia, hasText, feature, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public DescriptionBase find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(DescriptionBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends DescriptionBase> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<DescriptionBase> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<DescriptionBase>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends DescriptionBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param hasImages
-     * @param hasText
-     * @param feature
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#count(java.lang.Class, java.lang.Boolean, java.lang.Boolean, java.util.Set)
-     */
-    @Override
-    public int count(Class<? extends DescriptionBase> type, Boolean hasImages, Boolean hasText, Set<Feature> feature) {
-        return defaultService.count(type, hasImages, hasText, feature);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<DescriptionBase> findByTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends DescriptionBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param description
-     * @param features
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getDescriptionElements(eu.etaxonomy.cdm.model.description.DescriptionBase, java.util.Set, java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public <T extends DescriptionElementBase> Pager<T> getDescriptionElements(DescriptionBase description, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<DescriptionBase> findByTitle(IIdentifiableEntityServiceConfigurator<DescriptionBase> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public DescriptionBase load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public DescriptionBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<DescriptionBase> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DescriptionBase merge(DescriptionBase transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param description
-     * @param descriptionType
-     * @param features
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageDescriptionElements(eu.etaxonomy.cdm.model.description.DescriptionBase, java.lang.Class, java.util.Set, java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public <T extends DescriptionElementBase> Pager<T> pageDescriptionElements(DescriptionBase description, Class<? extends DescriptionBase> descriptionType, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.pageDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<DescriptionBase> listByTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends DescriptionBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(DescriptionBase persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<DescriptionBase> listByReferenceTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param description
-     * @param features
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#listDescriptionElements(eu.etaxonomy.cdm.model.description.DescriptionBase, java.util.Set, java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public <T extends DescriptionElementBase> List<T> listDescriptionElements(DescriptionBase description, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.listDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<DescriptionBase> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param newInstances
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, DescriptionBase> save(Collection<DescriptionBase> newInstances) {
-        return null;
-    }
-
-    /**
-     * @param newInstance
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DescriptionBase save(DescriptionBase newInstance) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(DescriptionBase transientObject) {
-        return null;
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<DescriptionBase> search(Class<? extends DescriptionBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param transientObjects
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, DescriptionBase> saveOrUpdate(Collection<DescriptionBase> transientObjects) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(DescriptionBase transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param description
-     * @param descriptionType
-     * @param features
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#listDescriptionElements(eu.etaxonomy.cdm.model.description.DescriptionBase, java.lang.Class, java.util.Set, java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public <T extends DescriptionElementBase> List<T> listDescriptionElements(DescriptionBase description, Class<? extends DescriptionBase> descriptionType, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.listDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<DescriptionBase> list(DescriptionBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
-    @Override
-    public int deduplicate(Class<? extends DescriptionBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getDescriptionElementAnnotations(eu.etaxonomy.cdm.model.description.DescriptionElementBase, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getDescriptionElementAnnotations(DescriptionElementBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getDescriptionElementAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
-    @Override
-    public Pager<DescriptionBase> findTitleCache(Class<? extends DescriptionBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-    /**
-     * @param taxon
-     * @param scopes
-     * @param geographicalScope
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageTaxonDescriptions(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<TaxonDescription> pageTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.pageTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param scopes
-     * @param geographicalScope
-     * @param markerTypes
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageTaxonDescriptions(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.util.Set, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<TaxonDescription> pageTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.pageTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param scopes
-     * @param geographicalScope
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#listTaxonDescriptions(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<TaxonDescription> listTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.listTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param scopes
-     * @param geographicalScope
-     * @param markerTypes
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#listTaxonDescriptions(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.util.Set, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<TaxonDescription> listTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.listTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param taxonUuid
-     * @param limitToGalleries
-     * @param markerTypes
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#listTaxonDescriptionMedia(java.util.UUID, boolean, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Media> listTaxonDescriptionMedia(UUID taxonUuid, boolean limitToGalleries, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.listTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param taxonUuid
-     * @param limitToGalleries
-     * @param markerTypes
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#countTaxonDescriptionMedia(java.util.UUID, boolean, java.util.Set)
-     */
-    @Override
-    public int countTaxonDescriptionMedia(UUID taxonUuid, boolean limitToGalleries, Set<MarkerType> markerTypes) {
-        return defaultService.countTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes);
-    }
-
-    /**
-     * @param name
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getTaxonNameDescriptions(eu.etaxonomy.cdm.model.name.TaxonNameBase, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<TaxonNameDescription> getTaxonNameDescriptions(TaxonNameBase name, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getTaxonNameDescriptions(name, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param namedAreas
-     * @param presence
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#searchDescriptionByDistribution(java.util.Set, eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTerm presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.searchDescriptionByDistribution(namedAreas, presence, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#searchElements(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<DescriptionElementBase> searchElements(Class<? extends DescriptionElementBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.searchElements(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param descriptionElement
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getMedia(eu.etaxonomy.cdm.model.description.DescriptionElementBase, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Media> getMedia(DescriptionElementBase descriptionElement, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getMedia(descriptionElement, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param features
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getDescriptionElementsForTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public <T extends DescriptionElementBase> List<T> getDescriptionElementsForTaxon(Taxon taxon, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param features
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#listDescriptionElementsForTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public <T extends DescriptionElementBase> List<T> listDescriptionElementsForTaxon(Taxon taxon, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.listDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param features
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageDescriptionElementsForTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public <T extends DescriptionElementBase> Pager<T> pageDescriptionElementsForTaxon(Taxon taxon, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.pageDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param featureTree
-     * @param description
-     * @param preferredLanguages
-     * @param separator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#generateNaturalLanguageDescription(eu.etaxonomy.cdm.model.description.FeatureTree, eu.etaxonomy.cdm.model.description.TaxonDescription, java.util.List, java.lang.String)
-     */
-    @Override
-    public String generateNaturalLanguageDescription(FeatureTree featureTree, TaxonDescription description, List<Language> preferredLanguages, String separator) {
-        return defaultService.generateNaturalLanguageDescription(featureTree, description, preferredLanguages, separator);
-    }
-
-    /**
-     * @param description
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#hasStructuredData(eu.etaxonomy.cdm.model.description.DescriptionBase)
-     */
-    @Deprecated
-    @Override
-    public boolean hasStructuredData(DescriptionBase<?> description) {
-        return defaultService.hasStructuredData(description);
-    }
-
-    /**
-     * @param descriptionElements
-     * @param targetDescription
-     * @param isPaste
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveDescriptionElementsToDescription(java.util.Collection, eu.etaxonomy.cdm.model.description.DescriptionBase, boolean)
-     */
-    @Override
-    public UpdateResult moveDescriptionElementsToDescription(Collection<DescriptionElementBase> descriptionElements, DescriptionBase targetDescription, boolean isPaste) {
-        return defaultService.moveDescriptionElementsToDescription(descriptionElements, targetDescription, isPaste);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#getOrderedDistributions(java.util.Set, boolean, boolean, java.util.Set, java.util.Set, java.util.List)
-     */
-    @Override
-    public DistributionTree getOrderedDistributions(Set<TaxonDescription> taxonDescriptions, boolean subAreaPreference, boolean statusOrderPreference, Set<MarkerType> hideMarkedAreas, Set<NamedAreaLevel> omitLevels, List<String> propertyPaths) {
-        return defaultService.getOrderedDistributions(taxonDescriptions, subAreaPreference, statusOrderPreference, hideMarkedAreas, omitLevels, propertyPaths);
-    }
-
-       @Override
-       public DeleteResult isDeletable(DescriptionBase object,
-                       DeleteConfiguratorBase config) {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public DescriptionBase findWithoutFlush(UUID uuid) {
-               return defaultService.findWithoutFlush(uuid);
-       }
-
-       @Override
-       public <S extends DescriptionBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-               return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-       }
-
-       @Override
-       public DeleteResult deleteDescription(DescriptionBase description) {
-               return defaultService.deleteDescription(description);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageNamedAreasInUse(boolean, java.lang.Integer, java.lang.Integer)
-        */
-       @Override
-       public Pager<TermDto> pageNamedAreasInUse(boolean includeAllParents, Integer pageSize, Integer pageNumber) {
-           return defaultService.pageNamedAreasInUse(includeAllParents, pageSize, pageNumber);
-       }
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
-     */
-    @Override
-    public DeleteResult delete(UUID uuid) {
-        return defaultService.deleteDescription(uuid);
-    }
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#deleteDescription(java.util.UUID)
-     */
-    @Override
-    public DeleteResult deleteDescription(UUID uuid) {
-        return defaultService.delete(uuid);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#deleteDescriptionElement(java.util.UUID)
-     */
-    @Override
-    public UUID deleteDescriptionElement(UUID uuid) {
-        return defaultService.deleteDescriptionElement(uuid);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveTaxonDescriptions(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Taxon)
-     */
-    @Override
-    public UpdateResult moveTaxonDescriptions(Taxon sourceTaxon, Taxon targetTaxon) {
-        return defaultService.moveTaxonDescriptions(sourceTaxon, targetTaxon);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveTaxonDescriptions(java.util.UUID, java.util.UUID)
-     */
-    @Override
-    public UpdateResult moveTaxonDescriptions(UUID sourceTaxonUuid, UUID targetTaxonUuid) {
-        return defaultService.moveTaxonDescriptions(sourceTaxonUuid, targetTaxonUuid);
-
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
-     */
-    @Override
-    public DeleteResult delete(Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
-     */
-    @Override
-    public List<DescriptionBase> merge(List<DescriptionBase> arg0) {
-        return defaultService.merge(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveDescriptionElementsToDescription(java.util.Set, java.util.UUID, boolean)
-     */
-    @Override
-    public UpdateResult moveDescriptionElementsToDescription(Set<UUID> arg0, UUID arg1, boolean arg2) {
-        return defaultService.moveDescriptionElementsToDescription(arg0, arg1, arg2);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveDescriptionElementsToDescription(java.util.Set, java.util.UUID, java.lang.String, boolean)
-     */
-    @Override
-    public UpdateResult moveDescriptionElementsToDescription(Set<UUID> arg0, UUID arg1, String arg2, boolean arg3) {
-        return defaultService.moveDescriptionElementsToDescription(arg0, arg1, arg2, arg3);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List, boolean)
-     */
-    @Override
-    public List<MergeResult<DescriptionBase>> merge(List<DescriptionBase> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase, boolean)
-     */
-    @Override
-    public MergeResult<DescriptionBase> merge(DescriptionBase arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#loadWithUpdate(java.util.UUID)
-     */
-    @Override
-    public DescriptionBase loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#moveTaxonDescription(java.util.UUID, java.util.UUID)
-     */
-    @Override
-    public UpdateResult moveTaxonDescription(UUID arg0, UUID arg1) {
-
-        return defaultService.moveTaxonDescriptions(arg0, arg1);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<DescriptionBase> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java
deleted file mode 100644 (file)
index 9a85236..0000000
+++ /dev/null
@@ -1,1239 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.queryparser.classic.ParseException;
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.INameService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-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.api.service.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.api.service.search.DocumentSearchResult;
-import eu.etaxonomy.cdm.api.service.search.SearchResult;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
-import eu.etaxonomy.cdm.model.common.RelationshipBase;
-import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.HybridRelationship;
-import eu.etaxonomy.cdm.model.name.HybridRelationshipType;
-import eu.etaxonomy.cdm.model.name.NameRelationship;
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;
-import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
-import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.name.Rank;
-import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.TaggedText;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-
-/**
- * @author pplitzner
- * @date 27.09.2013
- *
- */
-public class TransientNameService implements INameService {
-
-    private final INameService defaultService;
-
-    /**
-     *
-     */
-    public TransientNameService(INameService defaultNameService) {
-        this.defaultService = defaultNameService;
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<TaxonNameBase>> pageAuditEvents(TaxonNameBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(TaxonNameBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
-     */
-    @Override
-    public void lock(TaxonNameBase t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
-     */
-    @Override
-    public void refresh(TaxonNameBase t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<TaxonNameBase> getNextAuditEvent(TaxonNameBase t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(TaxonNameBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends TaxonNameBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<TaxonNameBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<TaxonNameBase> getPreviousAuditEvent(TaxonNameBase t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends TaxonNameBase> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @param name
-     * @param config
-     * @return
-     * @throws ReferencedObjectUndeletableException
-     * @see eu.etaxonomy.cdm.api.service.INameService#delete(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator)
-     */
-    @Override
-    public DeleteResult delete(UUID nameUuid, NameDeletionConfigurator config)  {
-        return defaultService.delete(nameUuid, config);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<TaxonNameBase>> pageAuditEvents(Class<? extends TaxonNameBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public TaxonNameBase find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(TaxonNameBase persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends TaxonNameBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-    /**
-     * @param name
-     * @param typeDesignation
-     * @see eu.etaxonomy.cdm.api.service.INameService#deleteTypeDesignation(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.name.TypeDesignationBase)
-     */
-    @Override
-    public DeleteResult deleteTypeDesignation(TaxonNameBase name, TypeDesignationBase typeDesignation) {
-        return defaultService.deleteTypeDesignation(name, typeDesignation);
-    }
-
-    @Override
-    public DeleteResult deleteTypeDesignation(UUID arg0, UUID arg1) {
-        return defaultService.deleteTypeDesignation(arg0, arg1);
-    }
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public TaxonNameBase replace(TaxonNameBase x, TaxonNameBase y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<TaxonNameBase> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(TaxonNameBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param typeDesignationCollection
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#saveTypeDesignationAll(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, TypeDesignationBase> saveTypeDesignationAll(Collection<TypeDesignationBase> typeDesignationCollection) {
-        return null;
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public TaxonNameBase find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @param referencedEntityCollection
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#saveReferencedEntitiesAll(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, ReferencedEntityBase> saveReferencedEntitiesAll(Collection<ReferencedEntityBase> referencedEntityCollection) {
-        return null;
-    }
-
-    /**
-     * @param homotypicalGroups
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#saveAllHomotypicalGroups(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, HomotypicalGroup> saveAllHomotypicalGroups(Collection<HomotypicalGroup> homotypicalGroups) {
-        return null;
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public TaxonNameBase find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(TaxonNameBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends TaxonNameBase> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getAllNomenclaturalStatus(int, int)
-     */
-    @Override
-    public List<NomenclaturalStatus> getAllNomenclaturalStatus(int limit, int start) {
-        return defaultService.getAllNomenclaturalStatus(limit, start);
-    }
-
-    /**
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getAllTypeDesignations(int, int)
-     */
-    @Override
-    public List<TypeDesignationBase> getAllTypeDesignations(int limit, int start) {
-        return defaultService.getAllTypeDesignations(limit, start);
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<TaxonNameBase> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @param name
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getNamesByName(java.lang.String)
-     */
-    @Override
-    public List<TaxonNameBase> getNamesByName(String name) {
-        return defaultService.getNamesByName(name);
-    }
-
-    /**
-     * @param nameCache
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getNamesByNameCache(java.lang.String)
-     */
-    @Override
-    public List<NonViralName> getNamesByNameCache(String nameCache) {
-        return defaultService.getNamesByNameCache(nameCache);
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<TaxonNameBase>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends TaxonNameBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param titleCache
-     * @param matchMode
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#findNamesByTitleCache(java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public List<NonViralName> findNamesByTitleCache(String titleCache, MatchMode matchMode, List<String> propertyPaths) {
-        return defaultService.findNamesByTitleCache(titleCache, matchMode, propertyPaths);
-    }
-
-    /**
-     * @param nameCache
-     * @param matchMode
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#findNamesByNameCache(java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public List<NonViralName> findNamesByNameCache(String nameCache, MatchMode matchMode, List<String> propertyPaths) {
-        return defaultService.findNamesByNameCache(nameCache, matchMode, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonNameBase> findByTitle(Class<? extends TaxonNameBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#findNameByUuid(java.util.UUID, java.util.List)
-     */
-    @Override
-    public NonViralName findNameByUuid(UUID uuid, List<String> propertyPaths) {
-        return defaultService.findNameByUuid(uuid, propertyPaths);
-    }
-
-    /**
-     * @param name
-     * @param sessionObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getNamesByName(java.lang.String, eu.etaxonomy.cdm.model.common.CdmBase)
-     */
-    @Override
-    public List getNamesByName(String name, CdmBase sessionObject) {
-        return defaultService.getNamesByName(name, sessionObject);
-    }
-
-    /**
-     * @param name
-     * @param accuracy
-     * @param languages
-     * @param highlightFragments
-     * @param propertyPaths
-     * @param maxNoOfResults
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @see eu.etaxonomy.cdm.api.service.INameService#findByNameFuzzySearch(java.lang.String, float, java.util.List, boolean, java.util.List, int)
-     */
-    @Override
-    public List<SearchResult<TaxonNameBase>> findByNameFuzzySearch(String name, float accuracy, List<Language> languages, boolean highlightFragments, List<String> propertyPaths, int maxNoOfResults) throws CorruptIndexException, IOException, ParseException {
-        return defaultService.findByNameFuzzySearch(name, accuracy, languages, highlightFragments, propertyPaths, maxNoOfResults);
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends TaxonNameBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<TaxonNameBase> findByTitle(IIdentifiableEntityServiceConfigurator<TaxonNameBase> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends TaxonNameBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public TaxonNameBase load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param name
-     * @param accuracy
-     * @param languages
-     * @param highlightFragments
-     * @param maxNoOfResults
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @see eu.etaxonomy.cdm.api.service.INameService#findByNameFuzzySearch(java.lang.String, float, java.util.List, boolean, int)
-     */
-    @Override
-    public List<DocumentSearchResult> findByNameFuzzySearch(String name, float accuracy, List<Language> languages, boolean highlightFragments, int maxNoOfResults) throws CorruptIndexException, IOException, ParseException {
-        return defaultService.findByNameFuzzySearch(name, accuracy, languages, highlightFragments, maxNoOfResults);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public TaxonNameBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<TaxonNameBase> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public TaxonNameBase merge(TaxonNameBase transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<TaxonNameBase> listByTitle(Class<? extends TaxonNameBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends TaxonNameBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param name
-     * @param accuracy
-     * @param languages
-     * @param highlightFragments
-     * @param maxNoOfResults
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @see eu.etaxonomy.cdm.api.service.INameService#findByFuzzyNameCacheSearch(java.lang.String, float, java.util.List, boolean, int)
-     */
-    @Override
-    public List<DocumentSearchResult> findByFuzzyNameCacheSearch(String name, float accuracy, List<Language> languages, boolean highlightFragments, int maxNoOfResults) throws CorruptIndexException, IOException, ParseException {
-        return defaultService.findByFuzzyNameCacheSearch(name, accuracy, languages, highlightFragments, maxNoOfResults);
-    }
-
-    /**
-     * @param name
-     * @param wildcard
-     * @param languages
-     * @param highlightFragments
-     * @param maxNoOfResults
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @see eu.etaxonomy.cdm.api.service.INameService#findByNameExactSearch(java.lang.String, boolean, java.util.List, boolean, int)
-     */
-    @Override
-    public List<DocumentSearchResult> findByNameExactSearch(String name, boolean wildcard, List<Language> languages, boolean highlightFragments, int maxNoOfResults) throws CorruptIndexException, IOException, ParseException {
-        return defaultService.findByNameExactSearch(name, wildcard, languages, highlightFragments, maxNoOfResults);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(TaxonNameBase persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<TaxonNameBase> listByReferenceTitle(Class<? extends TaxonNameBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<TaxonNameBase> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param newInstances
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, TaxonNameBase> save(Collection<TaxonNameBase> newInstances) {
-        return null;
-    }
-
-    /**
-     * @param newInstance
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public TaxonNameBase save(TaxonNameBase newInstance) {
-        return null;
-    }
-
-    /**
-     * @param title
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#findNamesByTitle(java.lang.String)
-     */
-    @Override
-    public List findNamesByTitle(String title) {
-        return defaultService.findNamesByTitle(title);
-    }
-
-    /**
-     * @param title
-     * @param sessionObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#findNamesByTitle(java.lang.String, eu.etaxonomy.cdm.model.common.CdmBase)
-     */
-    @Override
-    public List findNamesByTitle(String title, CdmBase sessionObject) {
-        return defaultService.findNamesByTitle(title, sessionObject);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(TaxonNameBase transientObject) {
-        return null;
-    }
-
-    /**
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getAllHomotypicalGroups(int, int)
-     */
-    @Override
-    public List<HomotypicalGroup> getAllHomotypicalGroups(int limit, int start) {
-        return defaultService.getAllHomotypicalGroups(limit, start);
-    }
-
-    /**
-     * @param limit
-     * @param start
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.INameService#getAllRelationships(int, int)
-     */
-    @Deprecated
-    @Override
-    public List<RelationshipBase> getAllRelationships(int limit, int start) {
-        return defaultService.getAllRelationships(limit, start);
-    }
-
-    /**
-     * @param transientObjects
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, TaxonNameBase> saveOrUpdate(Collection<TaxonNameBase> transientObjects) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(TaxonNameBase transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<TaxonNameBase> list(TaxonNameBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
-    @Override
-    public int deduplicate(Class<? extends TaxonNameBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    /**
-     * @param name
-     * @param direction
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#listNameRelationships(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.common.RelationshipBase.Direction, eu.etaxonomy.cdm.model.name.NameRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<NameRelationship> listNameRelationships(TaxonNameBase name, Direction direction, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listNameRelationships(name, direction, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
-    @Override
-    public Pager<TaxonNameBase> findTitleCache(Class<? extends TaxonNameBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-    /**
-     * @param name
-     * @param direction
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#pageNameRelationships(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.common.RelationshipBase.Direction, eu.etaxonomy.cdm.model.name.NameRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<NameRelationship> pageNameRelationships(TaxonNameBase name, Direction direction, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.pageNameRelationships(name, direction, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param name
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.INameService#listFromNameRelationships(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.name.NameRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public List<NameRelationship> listFromNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listFromNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param name
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.INameService#pageFromNameRelationships(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.name.NameRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public Pager<NameRelationship> pageFromNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.pageFromNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param name
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.INameService#listToNameRelationships(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.name.NameRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public List<NameRelationship> listToNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listToNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param name
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.INameService#pageToNameRelationships(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.name.NameRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public Pager<NameRelationship> pageToNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.pageToNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param name
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getHybridNames(eu.etaxonomy.cdm.model.name.NonViralName, eu.etaxonomy.cdm.model.name.HybridRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<HybridRelationship> getHybridNames(NonViralName name, HybridRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getHybridNames(name, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param name
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getTypeDesignations(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public Pager<TypeDesignationBase> getTypeDesignations(TaxonNameBase name, SpecimenTypeDesignationStatus status, Integer pageSize, Integer pageNumber) {
-        return defaultService.getTypeDesignations(name, status, pageSize, pageNumber);
-    }
-
-    /**
-     * @param name
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getTypeDesignations(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<TypeDesignationBase> getTypeDesignations(TaxonNameBase name, SpecimenTypeDesignationStatus status, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getTypeDesignations(name, status, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uninomial
-     * @param infraGenericEpithet
-     * @param specificEpithet
-     * @param infraspecificEpithet
-     * @param rank
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#searchNames(java.lang.String, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonNameBase> searchNames(String uninomial, String infraGenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.searchNames(uninomial, infraGenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonNameBase> search(Class<? extends TaxonNameBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getUuidAndTitleCacheOfNames()
-     */
-    @Override
-    public List<UuidAndTitleCache> getUuidAndTitleCacheOfNames() {
-        return defaultService.getUuidAndTitleCacheOfNames();
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#findByName(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonNameBase> findByName(Class<? extends TaxonNameBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByName(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#findHomotypicalGroup(java.util.UUID)
-     */
-    @Override
-    public HomotypicalGroup findHomotypicalGroup(UUID uuid) {
-        return defaultService.findHomotypicalGroup(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.INameService#getTaggedName(java.util.UUID)
-     */
-    @Override
-    public List<TaggedText> getTaggedName(UUID uuid) {
-        return defaultService.getTaggedName(uuid);
-    }
-
-       @Override
-       public DeleteResult isDeletable(TaxonNameBase object,
-                       DeleteConfiguratorBase config) {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public TaxonNameBase findWithoutFlush(UUID uuid) {
-               return defaultService.findWithoutFlush(uuid);
-       }
-
-
-       @Override
-       public <S extends TaxonNameBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-               return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-       }
-
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.INameService#setAsGroupsBasionym(java.util.UUID)
-     */
-    @Override
-    public UpdateResult setAsGroupsBasionym(UUID nameUuid) {
-        return defaultService.delete(nameUuid);
-    }
-
-
-       @Override
-       public List<HashMap<String, String>> getNameRecords() {
-
-               return defaultService.getNameRecords();
-       }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public DeleteResult delete(UUID arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
-     */
-    @Override
-    public DeleteResult delete(Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
-     */
-    @Override
-    public List<TaxonNameBase> merge(List<TaxonNameBase> arg0) {
-        return defaultService.merge(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List, boolean)
-     */
-    @Override
-    public List<MergeResult<TaxonNameBase>> merge(List<TaxonNameBase> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase, boolean)
-     */
-    @Override
-    public MergeResult<TaxonNameBase> merge(TaxonNameBase arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#loadWithUpdate(java.util.UUID)
-     */
-    @Override
-    public TaxonNameBase loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<TaxonNameBase> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
deleted file mode 100644 (file)
index 96726be..0000000
+++ /dev/null
@@ -1,1110 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.queryparser.classic.ParseException;
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-import org.hibernate.search.spatial.impl.Rectangle;
-
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FieldUnitDTO;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.api.service.search.SearchResult;
-import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
-import eu.etaxonomy.cdm.model.location.Country;
-import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
-import eu.etaxonomy.cdm.model.molecular.Sequence;
-import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-
-/**
- * @author pplitzner
- * @date 26.09.2013
- *
- */
-public class TransientOccurenceService implements IOccurrenceService {
-
-    private final IOccurrenceService defaultService;
-    private final Collection<SpecimenOrObservationBase<?>> units;
-
-    /**
-     * @param defaultService
-     */
-    public TransientOccurenceService(IOccurrenceService defaultService) {
-        this.defaultService = defaultService;
-        this.units = new HashSet<SpecimenOrObservationBase<?>>();
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<SpecimenOrObservationBase>> pageAuditEvents(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(SpecimenOrObservationBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
-     */
-    @Override
-    public void lock(SpecimenOrObservationBase t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
-     */
-    @Override
-    public void refresh(SpecimenOrObservationBase t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<SpecimenOrObservationBase> getNextAuditEvent(SpecimenOrObservationBase t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(SpecimenOrObservationBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends SpecimenOrObservationBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<SpecimenOrObservationBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<SpecimenOrObservationBase> getPreviousAuditEvent(SpecimenOrObservationBase t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @param iso639
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCountryByIso(java.lang.String)
-     */
-    @Override
-    public Country getCountryByIso(String iso639) {
-        return defaultService.getCountryByIso(iso639);
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends SpecimenOrObservationBase> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @param name
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCountryByName(java.lang.String)
-     */
-    @Override
-    public List<Country> getCountryByName(String name) {
-        return defaultService.getCountryByName(name);
-    }
-
-    /**
-     * @param type
-     * @param determinedAs
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#list(java.lang.Class, eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> type, TaxonBase determinedAs, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, determinedAs, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<SpecimenOrObservationBase>> pageAuditEvents(Class<? extends SpecimenOrObservationBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public SpecimenOrObservationBase find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(SpecimenOrObservationBase persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends SpecimenOrObservationBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public SpecimenOrObservationBase replace(SpecimenOrObservationBase x, SpecimenOrObservationBase y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<SpecimenOrObservationBase> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public SpecimenOrObservationBase find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public SpecimenOrObservationBase find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends SpecimenOrObservationBase> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @param occurence
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMedia(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Media> getMedia(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getMedia(occurence, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<SpecimenOrObservationBase> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<SpecimenOrObservationBase>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends SpecimenOrObservationBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param occurence
-     * @param taxonBase
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDeterminations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<DeterminationEvent> getDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonBase, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getDeterminations(occurence, taxonBase, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SpecimenOrObservationBase> findByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param occurence
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivationEvents(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<DerivationEvent> getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getDerivationEvents(occurence, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends SpecimenOrObservationBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param query
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SpecimenOrObservationBase> search(Class<? extends SpecimenOrObservationBase> clazz, String query, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, query, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<SpecimenOrObservationBase> findByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public SpecimenOrObservationBase load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public SpecimenOrObservationBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnitUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<FieldUnit>> getFieldUnitUuidAndTitleCache() {
-        return defaultService.getFieldUnitUuidAndTitleCache();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivedUnitUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<DerivedUnit>> getDerivedUnitUuidAndTitleCache() {
-        return defaultService.getDerivedUnitUuidAndTitleCache();
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public SpecimenOrObservationBase merge(SpecimenOrObservationBase transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param derivedUnit
-     * @param propertyPaths
-     * @return
-     * @throws DerivedUnitFacadeNotSupportedException
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivedUnitFacade(eu.etaxonomy.cdm.model.occurrence.DerivedUnit, java.util.List)
-     */
-    @Override
-    public DerivedUnitFacade getDerivedUnitFacade(DerivedUnit derivedUnit, List<String> propertyPaths) throws DerivedUnitFacadeNotSupportedException {
-        return defaultService.getDerivedUnitFacade(derivedUnit, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<SpecimenOrObservationBase> listByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param description
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDerivedUnitFacades(eu.etaxonomy.cdm.model.description.DescriptionBase, java.util.List)
-     */
-    @Override
-    public List<DerivedUnitFacade> listDerivedUnitFacades(DescriptionBase description, List<String> propertyPaths) {
-        return defaultService.listDerivedUnitFacades(description, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends SpecimenOrObservationBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param includeRelationships
-     * @param associatedTaxon
-     * @param maxDepth
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listByAssociatedTaxon(java.lang.Class, java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <T extends SpecimenOrObservationBase> List<T> listByAssociatedTaxon(Class<T> type, Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(SpecimenOrObservationBase persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<SpecimenOrObservationBase> listByReferenceTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<SpecimenOrObservationBase> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param newInstances
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, SpecimenOrObservationBase> save(Collection<SpecimenOrObservationBase> newInstances) {
-        for(SpecimenOrObservationBase unit:newInstances){
-            save(unit);
-        }
-        return null;
-    }
-
-    /**
-     * @param type
-     * @param includeRelationships
-     * @param associatedTaxon
-     * @param maxDepth
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageByAssociatedTaxon(java.lang.Class, java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type, Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.pageByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param newInstance
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public SpecimenOrObservationBase save(SpecimenOrObservationBase newInstance) {
-        units.add(newInstance);
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(SpecimenOrObservationBase transientObject) {
-        units.add(transientObject);
-        return null;
-    }
-
-    /**
-     * @param transientObjects
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, SpecimenOrObservationBase> saveOrUpdate(Collection<SpecimenOrObservationBase> transientObjects) {
-        for(SpecimenOrObservationBase unit:transientObjects){
-            saveOrUpdate(unit);
-        }
-        return null;
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param boundingBox
-     * @param languages
-     * @param highlightFragments
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#findByFullText(java.lang.Class, java.lang.String, org.hibernate.search.spatial.impl.Rectangle, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SearchResult<SpecimenOrObservationBase>> findByFullText(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Rectangle boundingBox, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
-        return defaultService.findByFullText(clazz, queryString, boundingBox, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(SpecimenOrObservationBase transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<SpecimenOrObservationBase> list(SpecimenOrObservationBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-    @Override
-    public int deduplicate(Class<? extends SpecimenOrObservationBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    @Override
-    public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-    public Collection<SpecimenOrObservationBase<?>> getUnits() {
-        return units;
-    }
-
-    @Override
-    public Collection<FieldUnit> getFieldUnits(UUID derivedUnitUuid) {
-        return defaultService.getFieldUnits(derivedUnitUuid);
-    }
-
-    @Override
-    public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type,
-            Set<TaxonRelationshipEdge> includeRelationships, String taxonUUID, Integer maxDepth, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.pageByAssociatedTaxon(type, includeRelationships, taxonUUID,
-                maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-
-    @Override
-    public UpdateResult moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
-        return defaultService.moveSequence(from, to, sequence);
-    }
-
-       @Override
-       public DeleteResult isDeletable(SpecimenOrObservationBase object,
-                       DeleteConfiguratorBase config) {
-               return defaultService.isDeletable(object, config);
-       }
-
-    @Override
-    public int countDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonbase) {
-        return defaultService.countDeterminations(occurence, taxonbase);
-    }
-
-       @Override
-       public SpecimenOrObservationBase findWithoutFlush(UUID uuid) {
-               return defaultService.findWithoutFlush(uuid);
-       }
-
-       @Override
-       public Collection<SpecimenOrObservationBase> listFieldUnitsByAssociatedTaxon(Taxon associatedTaxon,
-               List<OrderHint> orderHints, List<String> propertyPaths) {
-           return defaultService.listFieldUnitsByAssociatedTaxon(associatedTaxon, orderHints, propertyPaths);
-       }
-
-       @Override
-       public Pager<SpecimenOrObservationBase> pageFieldUnitsByAssociatedTaxon(
-               Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize,
-               Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-           return defaultService.pageFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
-       }
-
-
-       @Override
-       public FieldUnitDTO assembleFieldUnitDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
-           return defaultService.assembleFieldUnitDTO(fieldUnit, associatedTaxonUuid);
-       }
-
-       @Override
-       public PreservedSpecimenDTO assemblePreservedSpecimenDTO(DerivedUnit derivedUnit) {
-           return defaultService.assemblePreservedSpecimenDTO(derivedUnit);
-       }
-
-    @Override
-    public Collection<ICdmBase> getNonCascadedAssociatedElements(SpecimenOrObservationBase<?> specimen) {
-        return defaultService.getNonCascadedAssociatedElements(specimen);
-    }
-
-    @Override
-    public DeleteResult delete(SpecimenOrObservationBase<?> specimen, SpecimenDeleteConfigurator config) {
-        return defaultService.delete(specimen, config);
-    }
-
-    @Override
-    public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
-            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
-    }
-
-    @Override
-    public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(
-            SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints,
-            List<String> propertyPaths) {
-        return defaultService.listDescriptionsWithDescriptionSpecimen(specimen, limit, start, orderHints, propertyPaths);
-    }
-
-       @Override
-       public <S extends SpecimenOrObservationBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-               return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-       }
-
-       @Override
-       public Collection<DescriptionElementBase> getCharacterDataForSpecimen(SpecimenOrObservationBase<?> arg0) {
-           return defaultService.getCharacterDataForSpecimen(arg0);
-       }
-
-       @Override
-       public Collection<DescriptionElementBase> getCharacterDataForSpecimen(UUID arg0) {
-           return getCharacterDataForSpecimen(arg0);
-       }
-
-       @Override
-       public String getMostSignificantIdentifier(DerivedUnit derivedUnit) {
-           return defaultService.getMostSignificantIdentifier(derivedUnit);
-       }
-
-       @Override
-       public int countOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> config) {
-           return defaultService.countOccurrences(config);
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       @Override
-       public List<DerivedUnit> getAllChildDerivatives(SpecimenOrObservationBase<?> specimen) {
-           return defaultService.getAllChildDerivatives(specimen);
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       @Override
-       public List<SpecimenOrObservationBase<?>> getAllHierarchyDerivatives(SpecimenOrObservationBase<?> specimen) {
-           return defaultService.getAllHierarchyDerivatives(specimen);
-       }
-
-
-    @Override
-    public DeleteResult delete(UUID uuid) {
-        return defaultService.delete(uuid);
-    }
-
-    @Override
-    public DeleteResult delete(Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-
-    @Override
-    public List<SpecimenOrObservationBase> merge(List<SpecimenOrObservationBase> arg0) {
-        return defaultService.merge(arg0);
-    }
-
-    @Override
-    public UpdateResult moveDerivate(UUID arg0, UUID arg1, UUID arg2) {
-        return defaultService.moveDerivate(arg0, arg1, arg2);
-    }
-
-    @Override
-    public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
-        return defaultService.moveDerivate(from, to, derivate);
-    }
-
-    @Override
-    public UpdateResult moveSequence(UUID arg0, UUID arg1, UUID arg2) {
-        return defaultService.moveSequence(arg0, arg1, arg2);
-    }
-
-    @Override
-    public Pager<Media> getMediainHierarchy(SpecimenOrObservationBase arg0, Integer arg1, Integer arg2,
-            List<String> arg3) {
-        return defaultService.getMediainHierarchy(arg0, arg1, arg2, arg3);
-    }
-
-    @Override
-    public List<MergeResult<SpecimenOrObservationBase>> merge(List<SpecimenOrObservationBase> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    @Override
-    public MergeResult<SpecimenOrObservationBase> merge(SpecimenOrObservationBase arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Collection<TaxonBase<?>> listAssociatedTaxa(SpecimenOrObservationBase<?> arg0, Integer arg1, Integer arg2,
-            List<OrderHint> arg3, List<String> arg4) {
-        return defaultService.listAssociatedTaxa(arg0, arg1, arg2, arg3, arg4);
-    }
-
-    @Override
-    public SpecimenOrObservationBase loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public DeleteResult delete(UUID arg0, SpecimenDeleteConfigurator arg1) {
-        return defaultService.delete(arg0, arg1);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Pager<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> arg0, TaxonNameBase arg1,
-            Integer arg2, Integer arg3, List<OrderHint> arg4, List<String> arg5) {
-        return defaultService.list(arg0, arg1, arg2, arg3, arg4, arg5);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Collection<DeterminationEvent> listDeterminationEvents(SpecimenOrObservationBase<?> arg0, Integer arg1,
-            Integer arg2, List<OrderHint> arg3, List<String> arg4) {
-        return defaultService.listDeterminationEvents(arg0, arg1, arg2, arg3, arg4);
-    }
-
-    @Override
-    public Collection<TaxonBase<?>> listDeterminedTaxa(SpecimenOrObservationBase<?> arg0, Integer arg1, Integer arg2,
-            List<OrderHint> arg3, List<String> arg4) {
-        return defaultService.listDeterminedTaxa(arg0, arg1, arg2, arg3, arg4);
-    }
-
-    @Override
-    public Collection<TaxonBase<?>> listIndividualsAssociationTaxa(SpecimenOrObservationBase<?> arg0, Integer arg1,
-            Integer arg2, List<OrderHint> arg3, List<String> arg4) {
-        return defaultService.listIndividualsAssociationTaxa(arg0, arg1, arg2, arg3, arg4);
-    }
-
-     /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<SpecimenOrObservationBase> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-    @Override
-    public Collection<TaxonBase<?>> listTypeDesignationTaxa(DerivedUnit arg0, Integer arg1, Integer arg2,
-            List<OrderHint> arg3, List<String> arg4) {
-        return defaultService.listTypeDesignationTaxa(arg0, arg1, arg2, arg3, arg4);
-    }
-
-    @Override
-    public Map<DerivedUnit, Collection<SpecimenTypeDesignation>> listTypeDesignations(Collection<DerivedUnit> arg0,
-            Integer arg1, Integer arg2, List<OrderHint> arg3, List<String> arg4) {
-        return defaultService.listTypeDesignations(arg0, arg1, arg2, arg3, arg4);
-    }
-
-    @Override
-    public Collection<SpecimenTypeDesignation> listTypeDesignations(DerivedUnit arg0, Integer arg1, Integer arg2,
-            List<OrderHint> arg3, List<String> arg4) {
-        return defaultService.listTypeDesignations(arg0, arg1, arg2, arg3, arg4);
-    }
-
-    @Override
-    public List<DerivedUnit> getAllChildDerivatives(UUID arg0) {
-        return defaultService.getAllChildDerivatives(arg0);
-    }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientReferenceService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientReferenceService.java
deleted file mode 100644 (file)
index 605f12b..0000000
+++ /dev/null
@@ -1,771 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-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.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-
-/**
- * @author pplitzner
- * @date 27.09.2013
- *
- */
-public class TransientReferenceService implements IReferenceService {
-
-    private final IReferenceService defaultService;
-
-    /**
-     * @param defaultReferenceService
-     */
-    public TransientReferenceService(IReferenceService defaultReferenceService) {
-        this.defaultService = defaultReferenceService;
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IReferenceService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Reference> search(Class<? extends Reference> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<Reference>> pageAuditEvents(Reference t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(Reference annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
-     */
-    @Override
-    public void lock(Reference t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
-     */
-    @Override
-    public void refresh(Reference t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<Reference> getNextAuditEvent(Reference t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(Reference annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IReferenceService#getUuidAndTitle()
-     */
-    @Override
-    public List<UuidAndTitleCache<Reference>> getUuidAndTitle() {
-        return defaultService.getUuidAndTitle();
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends Reference> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<Reference> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<Reference> getPreviousAuditEvent(Reference t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IReferenceService#getAllReferencesForPublishing()
-     */
-    @Override
-    public List<Reference> getAllReferencesForPublishing() {
-        return defaultService.getAllReferencesForPublishing();
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends Reference> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IReferenceService#getAllNomenclaturalReferences()
-     */
-    @Override
-    public List<Reference> getAllNomenclaturalReferences() {
-        return defaultService.getAllNomenclaturalReferences();
-    }
-
-    /**
-     * @param reference
-     * @param includeSubordinateReferences
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IReferenceService#listCoveredTaxa(eu.etaxonomy.cdm.model.reference.Reference, boolean, java.util.List)
-     */
-    @Override
-    public List<TaxonBase> listCoveredTaxa(Reference reference, boolean includeSubordinateReferences, List<String> propertyPaths) {
-        return defaultService.listCoveredTaxa(reference, includeSubordinateReferences, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<Reference>> pageAuditEvents(Class<? extends Reference> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public Reference find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(Reference persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends Reference> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public Reference replace(Reference x, Reference y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<Reference> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(Reference t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public Reference find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public Reference find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(Reference t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends Reference> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<Reference> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<Reference>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends Reference> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Reference> findByTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public  <S extends Reference> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<Reference> findByTitle(IIdentifiableEntityServiceConfigurator<Reference> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public Reference load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public Reference load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<Reference> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public Reference merge(Reference transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Reference> listByTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public  <S extends Reference> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(Reference persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Reference> listByReferenceTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<Reference> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param newInstances
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, Reference> save(Collection<Reference> newInstances) {
-        return null;
-    }
-
-    /**
-     * @param newInstance
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public Reference save(Reference newInstance) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(Reference transientObject) {
-        return null;
-    }
-
-    /**
-     * @param transientObjects
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, Reference> saveOrUpdate(Collection<Reference> transientObjects) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(Reference transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Reference> list(Reference example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
-    @Override
-    public int deduplicate(Class<? extends Reference> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
-    @Override
-    public Pager<Reference> findTitleCache(Class<? extends Reference> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-       @Override
-       public DeleteResult isDeletable(Reference object,
-                       DeleteConfiguratorBase config) {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public Reference findWithoutFlush(UUID uuid) {
-               return defaultService.findWithoutFlush(uuid);
-       }
-
-       @Override
-       public <S extends Reference>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-               return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-       }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
-     */
-    @Override
-    public DeleteResult delete(UUID uuid) {
-        return defaultService.delete(uuid);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
-     */
-    @Override
-    public DeleteResult delete(Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
-     */
-    @Override
-    public List<Reference> merge(List<Reference> arg0) {
-        return defaultService.merge(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List, boolean)
-     */
-    @Override
-    public List<MergeResult<Reference>> merge(List<Reference> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase, boolean)
-     */
-    @Override
-    public MergeResult<Reference> merge(Reference arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#loadWithUpdate(java.util.UUID)
-     */
-    @Override
-    public Reference loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<Reference> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java
deleted file mode 100644 (file)
index aacf841..0000000
+++ /dev/null
@@ -1,1562 +0,0 @@
-// $Id$
-/**
- * Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.queryparser.classic.ParseException;
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.api.service.TaxaAndNamesSearchMode;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
-import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.config.IncludedTaxonConfiguration;
-import eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator;
-import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.dto.IncludedTaxaDTO;
-import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
-import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.api.service.search.LuceneMultiSearchException;
-import eu.etaxonomy.cdm.api.service.search.SearchResult;
-import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
-import eu.etaxonomy.cdm.model.common.RelationshipBase;
-import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
-import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.media.MediaRepresentation;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.Rank;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-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.TaxonNode;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-
-/**
- * @author pplitzner
- * @date 27.09.2013
- *
- */
-public class TransientTaxonService implements ITaxonService {
-
-    private final ITaxonService defaultService;
-
-    /**
-     * @param defaultTaxonService
-     */
-    public TransientTaxonService(ITaxonService defaultTaxonService) {
-        this.defaultService = defaultTaxonService;
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<TaxonBase>> pageAuditEvents(TaxonBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(TaxonBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
-     */
-    @Override
-    public void lock(TaxonBase t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
-     */
-    @Override
-    public void refresh(TaxonBase t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<TaxonBase> getNextAuditEvent(TaxonBase t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(TaxonBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends TaxonBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<TaxonBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<TaxonBase> getPreviousAuditEvent(TaxonBase t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends TaxonBase> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<TaxonBase>> pageAuditEvents(Class<? extends TaxonBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public TaxonBase find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(TaxonBase persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends TaxonBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public TaxonBase replace(TaxonBase x, TaxonBase y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<TaxonBase> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(TaxonBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param sec
-     * @param cdmFetch
-     * @param onlyWithChildren
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getRootTaxa(eu.etaxonomy.cdm.model.reference.Reference, eu.etaxonomy.cdm.persistence.fetch.CdmFetch, boolean)
-     */
-    @Deprecated
-    @Override
-    public List<Taxon> getRootTaxa(Reference sec, CdmFetch cdmFetch, boolean onlyWithChildren) {
-        return defaultService.getRootTaxa(sec, cdmFetch, onlyWithChildren);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public TaxonBase find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @param rank
-     * @param sec
-     * @param onlyWithChildren
-     * @param withMisapplications
-     * @param propertyPaths
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getRootTaxa(eu.etaxonomy.cdm.model.name.Rank, eu.etaxonomy.cdm.model.reference.Reference, boolean, boolean, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public List<Taxon> getRootTaxa(Rank rank, Reference sec, boolean onlyWithChildren, boolean withMisapplications, List<String> propertyPaths) {
-        return defaultService.getRootTaxa(rank, sec, onlyWithChildren, withMisapplications, propertyPaths);
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public TaxonBase find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(TaxonBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends TaxonBase> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<TaxonBase> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends TaxonBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllRelationships(int, int)
-     */
-    @Override
-    public List<RelationshipBase> getAllRelationships(int limit, int start) {
-        return defaultService.getAllRelationships(limit, start);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonBase> findByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getTaxonRelationshipTypeVocabulary()
-     */
-    @Deprecated
-    @Override
-    public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypeVocabulary() {
-        return defaultService.getTaxonRelationshipTypeVocabulary();
-    }
-
-    /**
-     * @param name
-     * @param sec
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#searchTaxaByName(java.lang.String, eu.etaxonomy.cdm.model.reference.Reference)
-     */
-    @Override
-    public List<TaxonBase> searchTaxaByName(String name, Reference sec) {
-        return defaultService.searchTaxaByName(name, sec);
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public UpdateResult swapSynonymAndAcceptedTaxon(Synonym arg0, Taxon arg1) {
-        return defaultService.swapSynonymAndAcceptedTaxon(arg0, arg1);
-
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends TaxonBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<TaxonBase> findByTitle(IIdentifiableEntityServiceConfigurator<TaxonBase> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param synonym
-     * @param acceptedTaxon
-     * @param deleteSynonym
-     * @param copyCitationInfo
-     * @param citation
-     * @param microCitation
-     * @return
-     * @throws HomotypicalGroupChangeException
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToAcceptedTaxon(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon, boolean, boolean, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
-     */
-    @Override
-    public Taxon changeSynonymToAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean deleteSynonym, boolean copyCitationInfo, Reference citation, String microCitation) throws HomotypicalGroupChangeException {
-        return defaultService.changeSynonymToAcceptedTaxon(synonym, acceptedTaxon, deleteSynonym, copyCitationInfo, citation, microCitation);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public TaxonBase load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public TaxonBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<TaxonBase> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public TaxonBase merge(TaxonBase transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<TaxonBase> listByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public  <S extends TaxonBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(TaxonBase persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param synonym
-     * @param toTaxon
-     * @param taxonRelationshipType
-     * @param reference
-     * @param microReference
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToRelatedTaxon(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
-     */
-    @Override
-    public Taxon changeSynonymToRelatedTaxon(Synonym synonym, Taxon toTaxon, TaxonRelationshipType taxonRelationshipType, Reference reference, String microReference) {
-        return defaultService.changeSynonymToRelatedTaxon(synonym, toTaxon, taxonRelationshipType, reference, microReference);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<TaxonBase> listByReferenceTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<TaxonBase> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param newInstances
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, TaxonBase> save(Collection<TaxonBase> newInstances) {
-        return null;
-    }
-
-    /**
-     * @param syn
-     * @param taxon
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonymRelationships(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon)
-     */
-    @Override
-    public long deleteSynonymRelationships(Synonym syn, Taxon taxon) {
-        return defaultService.deleteSynonymRelationships(syn, taxon);
-    }
-
-    /**
-     * @param newInstance
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public TaxonBase save(TaxonBase newInstance) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(TaxonBase transientObject) {
-        return null;
-    }
-
-    /**
-     * @param synonym
-     * @param newHomotypicalGroup
-     * @param targetTaxon
-     * @param removeFromOtherTaxa
-     * @param setBasionymRelationIfApplicable
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeHomotypicalGroupOfSynonym(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.name.HomotypicalGroup, eu.etaxonomy.cdm.model.taxon.Taxon, boolean, boolean)
-     */
-    @Override
-    public void changeHomotypicalGroupOfSynonym(Synonym synonym, HomotypicalGroup newHomotypicalGroup, Taxon targetTaxon, boolean removeFromOtherTaxa, boolean setBasionymRelationIfApplicable) {
-        defaultService.changeHomotypicalGroupOfSynonym(synonym, newHomotypicalGroup, targetTaxon, removeFromOtherTaxa, setBasionymRelationIfApplicable);
-    }
-
-    /**
-     * @param transientObjects
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, TaxonBase> saveOrUpdate(Collection<TaxonBase> transientObjects) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(TaxonBase transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<TaxonBase> list(TaxonBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param oldSynonymRelation
-     * @param newTaxon
-     * @param moveHomotypicGroup
-     * @param newSynonymRelationshipType
-     * @param newReference
-     * @param newReferenceDetail
-     * @param keepReference
-     * @return
-     * @throws HomotypicalGroupChangeException
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#moveSynonymToAnotherTaxon(eu.etaxonomy.cdm.model.taxon.SynonymRelationship, eu.etaxonomy.cdm.model.taxon.Taxon, boolean, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String, boolean)
-     */
-    @Override
-    public UpdateResult moveSynonymToAnotherTaxon(SynonymRelationship oldSynonymRelation, Taxon newTaxon, boolean moveHomotypicGroup, SynonymRelationshipType newSynonymRelationshipType, Reference newReference, String newReferenceDetail, boolean keepReference) throws HomotypicalGroupChangeException {
-        return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxon, moveHomotypicGroup, newSynonymRelationshipType, newReference, newReferenceDetail, keepReference);
-    }
-
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
-    @Override
-    public int deduplicate(Class<? extends TaxonBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
-    @Override
-    public Pager<TaxonBase> findTitleCache(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-    /**
-     * @param taxon
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listToTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<TaxonRelationship> listToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#pageToTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonRelationship> pageToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.pageToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listFromTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<TaxonRelationship> listFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#pageFromTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonRelationship> pageFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.pageFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param includeRelationships
-     * @param maxDepth
-     * @param limit
-     * @param start
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listRelatedTaxa(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Set<Taxon> listRelatedTaxa(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Integer maxDepth, Integer limit, Integer start, List<String> propertyPaths) {
-        return defaultService.listRelatedTaxa(taxon, includeRelationships, maxDepth, limit, start, propertyPaths);
-    }
-
-    /**
-     * @param taxonBase
-     * @param limit
-     * @param start
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listClassifications(eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Classification> listClassifications(TaxonBase taxonBase, Integer limit, Integer start, List<String> propertyPaths) {
-        return defaultService.listClassifications(taxonBase, limit, start, propertyPaths);
-    }
-
-    /**
-     * @param synonym
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getSynonyms(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SynonymRelationship> getSynonyms(Synonym synonym, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getSynonyms(synonym, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getSynonyms(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SynonymRelationship> getSynonyms(Taxon taxon, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getSynonyms(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getHomotypicSynonymsByHomotypicGroup(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List)
-     */
-    @Override
-    public List<Synonym> getHomotypicSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
-        return defaultService.getHomotypicSynonymsByHomotypicGroup(taxon, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getHeterotypicSynonymyGroups(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List)
-     */
-    @Override
-    public List<List<Synonym>> getHeterotypicSynonymyGroups(Taxon taxon, List<String> propertyPaths) {
-        return defaultService.getHeterotypicSynonymyGroups(taxon, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<TaxonBase> search(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param uninomial
-     * @param infragenericEpithet
-     * @param specificEpithet
-     * @param infraspecificEpithet
-     * @param rank
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByName(java.lang.Class, java.lang.String, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public Pager<TaxonBase> findTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {
-        return defaultService.findTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
-    }
-
-    /**
-     * @param clazz
-     * @param uninomial
-     * @param infragenericEpithet
-     * @param specificEpithet
-     * @param infraspecificEpithet
-     * @param rank
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listTaxaByName(java.lang.Class, java.lang.String, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public List<TaxonBase> listTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {
-        return defaultService.listTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNames(eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator)
-     */
-    @Override
-    public Pager<IdentifiableEntity> findTaxaAndNames(IFindTaxaAndNamesConfigurator configurator) {
-        return defaultService.findTaxaAndNames(configurator);
-    }
-
-    /**
-     * @param queryString
-     * @param classification
-     * @param languages
-     * @param highlightFragments
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @throws LuceneMultiSearchException
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByEverythingFullText(java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public Pager<SearchResult<TaxonBase>> findByEverythingFullText(String queryString, Classification classification, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
-        return defaultService.findByEverythingFullText(queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param classification
-     * @param languages
-     * @param highlightFragments
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByFullText(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SearchResult<TaxonBase>> findByFullText(Class<? extends TaxonBase> clazz, String queryString, Classification classification, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
-        return defaultService.findByFullText(clazz, queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByDistribution(java.util.List, java.util.List, eu.etaxonomy.cdm.model.taxon.Classification, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SearchResult<TaxonBase>> findByDistribution(List<NamedArea> areaFilter,
-            List<PresenceAbsenceTerm> statusFilter, Classification classification, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws IOException,
-            ParseException {
-        return defaultService.findByDistribution(areaFilter, statusFilter, classification, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNamesByFullText(java.util.EnumSet, java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.Set, java.util.Set, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SearchResult<TaxonBase>> findTaxaAndNamesByFullText(EnumSet<TaxaAndNamesSearchMode> searchModes,
-            String queryString, Classification classification, Set<NamedArea> namedAreas,
-            Set<PresenceAbsenceTerm> distributionStatus, List<Language> languages, boolean highlightFragments,
-            Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths)
-                    throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
-        return defaultService.findTaxaAndNamesByFullText(searchModes, queryString, classification, namedAreas, distributionStatus, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param classification
-     * @param features
-     * @param languages
-     * @param highlightFragments
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByDescriptionElementFullText(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<SearchResult<TaxonBase>> findByDescriptionElementFullText(Class<? extends DescriptionElementBase> clazz, String queryString, Classification classification, List<Feature> features, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
-        return defaultService.findByDescriptionElementFullText(clazz, queryString, classification, features, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param taxon
-     * @param size
-     * @param height
-     * @param widthOrDuration
-     * @param mimeTypes
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllMedia(eu.etaxonomy.cdm.model.taxon.Taxon, int, int, int, java.lang.String[])
-     */
-    @Deprecated
-    @Override
-    public List<MediaRepresentation> getAllMedia(Taxon taxon, int size, int height, int widthOrDuration, String[] mimeTypes) {
-        return defaultService.getAllMedia(taxon, size, height, widthOrDuration, mimeTypes);
-    }
-
-    /**
-     * @param taxon
-     * @param includeRelationships
-     * @param limitToGalleries
-     * @param propertyPath
-     * @return
-     * @deprecated
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listTaxonDescriptionMedia(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, boolean, java.util.List)
-     */
-    @Deprecated
-    @Override
-    public List<Media> listTaxonDescriptionMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, boolean limitToGalleries, List<String> propertyPath) {
-        return defaultService.listTaxonDescriptionMedia(taxon, includeRelationships, limitToGalleries, propertyPath);
-    }
-
-    /**
-     * @param taxon
-     * @param includeRelationships
-     * @param limitToGalleries
-     * @param includeTaxonDescriptions
-     * @param includeOccurrences
-     * @param includeTaxonNameDescriptions
-     * @param propertyPath
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listMedia(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.lang.Boolean, java.lang.Boolean, java.lang.Boolean, java.lang.Boolean, java.util.List)
-     */
-    @Override
-    public List<Media> listMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Boolean limitToGalleries, Boolean includeTaxonDescriptions, Boolean includeOccurrences, Boolean includeTaxonNameDescriptions, List<String> propertyPath) {
-        return defaultService.listMedia(taxon, includeRelationships, limitToGalleries, includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions, propertyPath);
-    }
-
-    /**
-     * @param listOfIDs
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByID(java.util.Set)
-     */
-    @Override
-    public List<TaxonBase> findTaxaByID(Set<Integer> listOfIDs) {
-        return defaultService.findTaxaByID(listOfIDs);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxonByUuid(java.util.UUID, java.util.List)
-     */
-    @Override
-    public TaxonBase findTaxonByUuid(UUID uuid, List<String> propertyPaths) {
-        return defaultService.findTaxonByUuid(uuid, propertyPaths);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#countAllRelationships()
-     */
-    @Override
-    public int countAllRelationships() {
-        return defaultService.countAllRelationships();
-    }
-
-    /**
-     * @param propertyPath
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findIdenticalTaxonNames(java.util.List)
-     */
-    @Override
-    public List<TaxonNameBase> findIdenticalTaxonNames(List<String> propertyPath) {
-        return defaultService.findIdenticalTaxonNames(propertyPath);
-    }
-
-    /**
-     * @param propertyPath
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findIdenticalTaxonNameIds(java.util.List)
-     */
-    @Override
-    public List<TaxonNameBase> findIdenticalTaxonNameIds(List<String> propertyPath) {
-        return defaultService.findIdenticalTaxonNameIds(propertyPath);
-    }
-
-    /**
-     * @param name
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getPhylumName(eu.etaxonomy.cdm.model.name.TaxonNameBase)
-     */
-    @Override
-    public String getPhylumName(TaxonNameBase name) {
-        return defaultService.getPhylumName(name);
-    }
-
-    /**
-     * @param syn
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonymRelationships(eu.etaxonomy.cdm.model.taxon.Synonym)
-     */
-    @Override
-    public long deleteSynonymRelationships(Synonym syn) {
-        return defaultService.deleteSynonymRelationships(syn);
-    }
-
-    /**
-     * @param taxonBase
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @param direction
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listSynonymRelationships(eu.etaxonomy.cdm.model.taxon.TaxonBase, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List, eu.etaxonomy.cdm.model.common.RelationshipBase.Direction)
-     */
-    @Override
-    public List<SynonymRelationship> listSynonymRelationships(TaxonBase taxonBase, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths, Direction direction) {
-        return defaultService.listSynonymRelationships(taxonBase, type, pageSize, pageNumber, orderHints, propertyPaths, direction);
-    }
-
-    /**
-     * @param taxonName
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findBestMatchingTaxon(java.lang.String)
-     */
-    @Override
-    public Taxon findBestMatchingTaxon(String taxonName) {
-        return defaultService.findBestMatchingTaxon(taxonName);
-    }
-
-    /**
-     * @param config
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findBestMatchingTaxon(eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator)
-     */
-    @Override
-    public Taxon findBestMatchingTaxon(MatchingTaxonConfigurator config) {
-        return defaultService.findBestMatchingTaxon(config);
-    }
-
-    /**
-     * @param taxonName
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findBestMatchingSynonym(java.lang.String)
-     */
-    @Override
-    public Synonym findBestMatchingSynonym(String taxonName) {
-        return defaultService.findBestMatchingSynonym(taxonName);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getUuidAndTitleCacheTaxon()
-     */
-    @Override
-    public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCacheTaxon() {
-        return defaultService.getUuidAndTitleCacheTaxon();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getUuidAndTitleCacheSynonym()
-     */
-    @Override
-    public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCacheSynonym() {
-        return defaultService.getUuidAndTitleCacheSynonym();
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNamesForEditor(eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator)
-     */
-    @Override
-    public List<UuidAndTitleCache<IdentifiableEntity>> findTaxaAndNamesForEditor(IFindTaxaAndNamesConfigurator configurator) {
-        return defaultService.findTaxaAndNamesForEditor(configurator);
-    }
-
-    /**
-     * @param taxon
-     * @param tree
-     * @param type
-     * @param doWithMisappliedNames
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#createInferredSynonyms(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, boolean)
-     */
-    @Override
-    public List<Synonym> createInferredSynonyms(Taxon taxon, Classification tree, SynonymRelationshipType type, boolean doWithMisappliedNames) {
-        return defaultService.createInferredSynonyms(taxon, tree, type, doWithMisappliedNames);
-    }
-
-    /**
-     * @param taxon
-     * @param tree
-     * @param doWithMisappliedNames
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#createAllInferredSynonyms(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, boolean)
-     */
-    @Override
-    public List<Synonym> createAllInferredSynonyms(Taxon taxon, Classification tree, boolean doWithMisappliedNames) {
-        return defaultService.createAllInferredSynonyms(taxon, tree, doWithMisappliedNames);
-    }
-
-    @Override
-    public DeleteResult deleteSynonym(Synonym arg0, SynonymDeletionConfigurator arg1) {
-        return defaultService.deleteSynonym(arg0, arg1);
-    }
-
-    @Override
-    public DeleteResult deleteSynonym(Synonym arg0, Taxon arg1, SynonymDeletionConfigurator arg2) {
-        return defaultService.deleteSynonym(arg0, arg1, arg2);
-    }
-
-    @Override
-    public List<List<Synonym>> getSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
-        return defaultService.getSynonymsByHomotypicGroup(taxon, propertyPaths);
-    }
-
-    @Override
-    public Synonym changeRelatedTaxonToSynonym(Taxon fromTaxon, Taxon toTaxon,
-            TaxonRelationshipType oldRelationshipType,
-            SynonymRelationshipType synonymRelationshipType)
-                    throws DataChangeNoRollbackException {
-
-        return defaultService.changeRelatedTaxonToSynonym(fromTaxon, toTaxon, oldRelationshipType, synonymRelationshipType);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#pageAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Taxon> pageAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.pageAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Taxon> listAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    @Override
-    public DeleteResult isDeletable(TaxonBase object,
-            DeleteConfiguratorBase config) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public IncludedTaxaDTO listIncludedTaxa(UUID taxonUuid,
-            IncludedTaxonConfiguration configuration) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public TaxonBase findWithoutFlush(UUID uuid) {
-        return defaultService.findWithoutFlush(uuid);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByName(eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator)
-     */
-    @Override
-    public List<TaxonBase> findTaxaByName(MatchingTaxonConfigurator config) {
-        return defaultService.findTaxaByName(config);
-    }
-
-    @Override
-    public <S extends TaxonBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-        return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByIdentifier(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.common.DefinedTerm, eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.persistence.query.MatchMode, boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public <S extends TaxonBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier,
-            DefinedTerm identifierType, TaxonNode subtreeFilter, MatchMode matchmode, boolean includeEntity,
-            Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.findByIdentifier(clazz, identifier, identifierType, subtreeFilter, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-    }
-
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
-     */
-    @Override
-    public DeleteResult deleteSynonym(UUID synonymUuid, UUID taxonUuid, SynonymDeletionConfigurator config) {
-        return defaultService.deleteSynonym(synonymUuid, taxonUuid, config);
-    }
-
-
-    /**
-     * {@inheritDoc}
-
-     */
-    @Override
-    public UpdateResult swapSynonymAndAcceptedTaxon(UUID synonymUUid, UUID acceptedTaxonUuid) {
-        return defaultService.swapSynonymAndAcceptedTaxon(synonymUUid, acceptedTaxonUuid);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteTaxon(java.util.UUID, eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator, java.util.UUID)
-     */
-    @Override
-    public DeleteResult deleteTaxon(UUID taxonUuid, TaxonDeletionConfigurator config, UUID classificationUuid) {
-        return defaultService.deleteTaxon(taxonUuid, config, classificationUuid);
-    }
-
-
-       @Override
-       public UpdateResult moveFactualDateToAnotherTaxon(UUID arg0, UUID arg1) {
-               return defaultService.moveFactualDateToAnotherTaxon(arg0, arg1);
-       }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public UpdateResult moveSynonymToAnotherTaxon(
-            SynonymRelationship oldSynonymRelation, UUID newTaxonUUID,
-            boolean moveHomotypicGroup,
-            SynonymRelationshipType newSynonymRelationshipType,
-            Reference reference, String referenceDetail, boolean keepReference)
-                    throws HomotypicalGroupChangeException {
-
-        return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxonUUID, moveHomotypicGroup, newSynonymRelationshipType, reference, referenceDetail, keepReference);
-    }
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
-     */
-    @Override
-    public DeleteResult delete(UUID uuid) {
-        return defaultService.delete(uuid);
-
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
-     */
-    @Override
-    public DeleteResult delete(Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
-     */
-    @Override
-    public List<TaxonBase> merge(List<TaxonBase> arg0) {
-        return defaultService.merge(arg0);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(java.util.UUID, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
-     */
-    @Override
-    public DeleteResult deleteSynonym(UUID arg0, SynonymDeletionConfigurator arg1) {
-        return defaultService.deleteSynonym(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToRelatedTaxon(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
-     */
-    @Override
-    public UpdateResult changeSynonymToRelatedTaxon(UUID arg0, UUID arg1, TaxonRelationshipType arg2, Reference arg3,
-            String arg4) {
-        return defaultService.changeSynonymToRelatedTaxon(arg0, arg1, arg2, arg3, arg4);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeRelatedTaxonToSynonym(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType)
-     */
-    @Override
-    public UpdateResult changeRelatedTaxonToSynonym(UUID arg0, UUID arg1, TaxonRelationshipType arg2,
-            SynonymRelationshipType arg3) throws DataChangeNoRollbackException {
-        return defaultService.changeRelatedTaxonToSynonym(arg0, arg1, arg2, arg3);
-
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToAcceptedTaxon(java.util.UUID, java.util.UUID, java.util.UUID, boolean, boolean, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
-     */
-    @Override
-    public UpdateResult changeSynonymToAcceptedTaxon(UUID arg0, UUID arg1, UUID arg2, boolean arg3, boolean arg4,
-            Reference arg5, String arg6) throws HomotypicalGroupChangeException {
-        return defaultService.changeSynonymToAcceptedTaxon(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List, boolean)
-     */
-    @Override
-    public List<MergeResult<TaxonBase>> merge(List<TaxonBase> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase, boolean)
-     */
-    @Override
-    public MergeResult<TaxonBase> merge(TaxonBase arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IService#loadWithUpdate(java.util.UUID)
-     */
-    @Override
-    public TaxonBase loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<TaxonBase> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTermService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTermService.java
deleted file mode 100644 (file)
index e032eb3..0000000
+++ /dev/null
@@ -1,925 +0,0 @@
-// $Id$
-/**
- * Copyright (C) 2013 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.view.dataimport.transientServices;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.hibernate.LockOptions;
-import org.hibernate.Session;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.envers.query.criteria.AuditCriterion;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.config.TermDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
-import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.common.ISourceable;
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.common.LSID;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.LanguageString;
-import eu.etaxonomy.cdm.model.common.LanguageStringBase;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.Representation;
-import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
-import eu.etaxonomy.cdm.model.location.NamedAreaType;
-import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.view.AuditEvent;
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.query.Grouping;
-import eu.etaxonomy.cdm.persistence.query.MatchMode;
-import eu.etaxonomy.cdm.persistence.query.OrderHint;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
-import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-
-/**
- * @author pplitzner
- * @date 27.09.2013
- *
- */
-public class TransientTermService implements ITermService {
-
-    private final ITermService defaultService;
-
-    /**
-     * @param defaultTermService
-     */
-    public TransientTermService(ITermService defaultTermService) {
-        this.defaultService = defaultTermService;
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<DefinedTermBase>> pageAuditEvents(DefinedTermBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
-    }
-
-    /**
-     * @param annotatedObj
-     * @param status
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Annotation> getAnnotations(DefinedTermBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IService#clear()
-     */
-    @Override
-    public void clear() {
-        defaultService.clear();
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
-     */
-    @Override
-    public void lock(DefinedTermBase t, LockOptions lockOptions) {
-        defaultService.lock(t, lockOptions);
-    }
-
-    /**
-     * @param uri
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getByUri(java.net.URI)
-     */
-    @Override
-    public DefinedTermBase getByUri(URI uri) {
-        return defaultService.getByUri(uri);
-    }
-
-    /**
-     * @param t
-     * @param lockMode
-     * @param propertyPaths
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
-     */
-    @Override
-    public void refresh(DefinedTermBase t, LockOptions lockOptions, List<String> propertyPaths) {
-        defaultService.refresh(t, lockOptions, propertyPaths);
-    }
-
-    /**
-     * @param languageData
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#saveLanguageData(eu.etaxonomy.cdm.model.common.LanguageStringBase)
-     */
-    @Override
-    public UUID saveLanguageData(LanguageStringBase languageData) {
-        return null;
-    }
-
-    /**
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getAllLanguageStrings(int, int)
-     */
-    @Override
-    public List<LanguageString> getAllLanguageStrings(int limit, int start) {
-        return defaultService.getAllLanguageStrings(limit, start);
-    }
-
-    /**
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getAllRepresentations(int, int)
-     */
-    @Override
-    public List<Representation> getAllRepresentations(int limit, int start) {
-        return defaultService.getAllRepresentations(limit, start);
-    }
-
-    /**
-     *
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
-     */
-    @Override
-    public void updateTitleCache() {
-        defaultService.updateTitleCache();
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<DefinedTermBase> getNextAuditEvent(DefinedTermBase t) {
-        return defaultService.getNextAuditEvent(t);
-    }
-
-    /**
-     * @param iso639
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getLanguageByIso(java.lang.String)
-     */
-    @Override
-    public Language getLanguageByIso(String iso639) {
-        return defaultService.getLanguageByIso(iso639);
-    }
-
-    /**
-     * @param locales
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getLanguagesByLocale(java.util.Enumeration)
-     */
-    @Override
-    public List<Language> getLanguagesByLocale(Enumeration<Locale> locales) {
-        return defaultService.getLanguagesByLocale(locales);
-    }
-
-    /**
-     * @param tdwgAbbreviation
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getAreaByTdwgAbbreviation(java.lang.String)
-     */
-    @Override
-    public NamedArea getAreaByTdwgAbbreviation(String tdwgAbbreviation) {
-        return defaultService.getAreaByTdwgAbbreviation(tdwgAbbreviation);
-    }
-
-    /**
-     * @param annotatableEntity
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<Marker> getMarkers(DefinedTermBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param definedTerm
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getMedia(eu.etaxonomy.cdm.model.common.DefinedTermBase, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public Pager<Media> getMedia(DefinedTermBase definedTerm, Integer pageSize, Integer pageNumber) {
-        return defaultService.getMedia(definedTerm, pageSize, pageNumber);
-    }
-
-    /**
-     * @param clazz
-     * @param stepSize
-     * @param cacheStrategy
-     * @param monitor
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
-     */
-    @Override
-    public void updateTitleCache(Class<? extends DefinedTermBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<DefinedTermBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
-    }
-
-    /**
-     * @param t
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
-     */
-    @Override
-    public AuditEventRecord<DefinedTermBase> getPreviousAuditEvent(DefinedTermBase t) {
-        return defaultService.getPreviousAuditEvent(t);
-    }
-
-    /**
-     * @param clazz
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
-     */
-    @Override
-    public int count(Class<? extends DefinedTermBase> clazz) {
-        return defaultService.count(clazz);
-    }
-
-    /**
-     * @param level
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#list(eu.etaxonomy.cdm.model.location.NamedAreaLevel, eu.etaxonomy.cdm.model.location.NamedAreaType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<NamedArea> list(NamedAreaLevel level, NamedAreaType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(level, type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param from
-     * @param to
-     * @param criteria
-     * @param pageSize
-     * @param pageValue
-     * @param sort
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
-     */
-    @Override
-    public Pager<AuditEventRecord<DefinedTermBase>> pageAuditEvents(Class<? extends DefinedTermBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
-    }
-
-    /**
-     * @param lsid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
-     */
-    @Override
-    public DefinedTermBase find(LSID lsid) {
-        return defaultService.find(lsid);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DeleteResult delete(DefinedTermBase persistentObject) {
-        return defaultService.delete(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public List<Object[]> groupMarkers(Class<? extends DefinedTermBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
-     */
-    @Override
-    public boolean exists(UUID uuid) {
-        return defaultService.exists(uuid);
-    }
-
-    /**
-     * @param x
-     * @param y
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
-     */
-    @Override
-    public DefinedTermBase replace(DefinedTermBase x, DefinedTermBase y) {
-        return defaultService.replace(x, y);
-    }
-
-    /**
-     * @param definedTerm
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getGeneralizationOf(eu.etaxonomy.cdm.model.common.DefinedTermBase, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public <T extends DefinedTermBase> Pager<T> getGeneralizationOf(T definedTerm, Integer pageSize, Integer pageNumber) {
-        return defaultService.getGeneralizationOf(definedTerm, pageSize, pageNumber);
-    }
-
-    /**
-     * @param uuidSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
-     */
-    @Override
-    public List<DefinedTermBase> find(Set<UUID> uuidSet) {
-        return defaultService.find(uuidSet);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<IdentifiableSource> getSources(DefinedTermBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
-     */
-    @Override
-    public DefinedTermBase find(UUID uuid) {
-        return defaultService.find(uuid);
-    }
-
-    /**
-     * @param definedTerms
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getPartOf(java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public <T extends DefinedTermBase> Pager<T> getPartOf(Set<T> definedTerms, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getPartOf(definedTerms, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param id
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
-     */
-    @Override
-    public DefinedTermBase find(int id) {
-        return defaultService.find(id);
-    }
-
-    /**
-     * @param t
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<Rights> getRights(DefinedTermBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param technical
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
-     */
-    @Override
-    public int countMarkers(Class<? extends DefinedTermBase> clazz, Boolean technical) {
-        return defaultService.countMarkers(clazz, technical);
-    }
-
-    /**
-     * @param idSet
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
-     */
-    @Override
-    public List<DefinedTermBase> findById(Set<Integer> idSet) {
-        return defaultService.findById(idSet);
-    }
-
-    /**
-     * @param definedTerms
-     * @param pageSize
-     * @param pageNumber
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#getIncludes(java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public <T extends DefinedTermBase> Pager<T> getIncludes(Collection<T> definedTerms, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultService.getIncludes(definedTerms, pageSize, pageNumber, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param idInSource
-     * @param idNamespace
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
-     */
-    @Override
-    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
-     */
-    @Override
-    public Session getSession() {
-        return defaultService.getSession();
-    }
-
-    /**
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
-     */
-    @Override
-    public List<UuidAndTitleCache<DefinedTermBase>> getUuidAndTitleCache() {
-        return defaultService.getUuidAndTitleCache();
-    }
-
-    /**
-     * @param clazz
-     * @param limit
-     * @param start
-     * @param groups
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<Object[]> group(Class<? extends DefinedTermBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultService.group(clazz, limit, start, groups, propertyPaths);
-    }
-
-    /**
-     * @param label
-     * @param clazz
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#findByRepresentationText(java.lang.String, java.lang.Class, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public <T extends DefinedTermBase> Pager<T> findByRepresentationText(String label, Class<T> clazz, Integer pageSize, Integer pageNumber) {
-        return defaultService.findByRepresentationText(label, clazz, pageSize, pageNumber);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<DefinedTermBase> findByTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param abbrev
-     * @param clazz
-     * @param pageSize
-     * @param pageNumber
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#findByRepresentationAbbreviation(java.lang.String, java.lang.Class, java.lang.Integer, java.lang.Integer)
-     */
-    @Override
-    public <T extends DefinedTermBase> Pager<T> findByRepresentationAbbreviation(String abbrev, Class<T> clazz, Integer pageSize, Integer pageNumber) {
-        return defaultService.findByRepresentationAbbreviation(abbrev, clazz, pageSize, pageNumber);
-    }
-
-    /**
-     * @param type
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends DefinedTermBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(type, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param term
-     * @param config
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.ITermService#delete(eu.etaxonomy.cdm.model.common.DefinedTermBase, eu.etaxonomy.cdm.api.service.config.TermDeletionConfigurator)
-     */
-    @Override
-    public DeleteResult delete(DefinedTermBase term, TermDeletionConfigurator config) {
-        return defaultService.delete(term, config);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Pager<DefinedTermBase> findByTitle(IIdentifiableEntityServiceConfigurator<DefinedTermBase> configurator) {
-        return defaultService.findByTitle(configurator);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
-     */
-    @Override
-    public Integer countByTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
-    }
-
-    /**
-     * @param uuid
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
-     */
-    @Override
-    public DefinedTermBase load(UUID uuid) {
-        return defaultService.load(uuid);
-    }
-
-    /**
-     * @param uuid
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
-     */
-    @Override
-    public DefinedTermBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultService.load(uuid, propertyPaths);
-    }
-
-    /**
-     * @param configurator
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
-     */
-    @Override
-    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<DefinedTermBase> configurator) {
-        return defaultService.countByTitle(configurator);
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DefinedTermBase merge(DefinedTermBase transientObject) {
-        return defaultService.merge(transientObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<DefinedTermBase> listByTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param type
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public <S extends DefinedTermBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param persistentObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID refresh(DefinedTermBase persistentObject) {
-        return defaultService.refresh(persistentObject);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param matchmode
-     * @param criteria
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<DefinedTermBase> listByReferenceTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param tableName
-     * @param limit
-     * @param start
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
-     */
-    @Override
-    public List<DefinedTermBase> rows(String tableName, int limit, int start) {
-        return defaultService.rows(tableName, limit, start);
-    }
-
-    /**
-     * @param newInstances
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, DefinedTermBase> save(Collection<DefinedTermBase> newInstances) {
-        return null;
-    }
-
-    /**
-     * @param newInstance
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public DefinedTermBase save(DefinedTermBase newInstance) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID saveOrUpdate(DefinedTermBase transientObject) {
-        return null;
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public Pager<DefinedTermBase> search(Class<? extends DefinedTermBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param transientObjects
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
-     */
-    @Override
-    public Map<UUID, DefinedTermBase> saveOrUpdate(Collection<DefinedTermBase> transientObjects) {
-        return null;
-    }
-
-    /**
-     * @param transientObject
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
-     */
-    @Override
-    public UUID update(DefinedTermBase transientObject) {
-        return defaultService.update(transientObject);
-    }
-
-    /**
-     * @param example
-     * @param includeProperties
-     * @param limit
-     * @param start
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
-     */
-    @Override
-    public List<DefinedTermBase> list(DefinedTermBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
-    }
-
-    /**
-     * @param clazz
-     * @param matchStrategy
-     * @param mergeStrategy
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
-     */
-    @Override
-    public int deduplicate(Class<? extends DefinedTermBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
-    }
-
-    /**
-     * @param clazz
-     * @param queryString
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param matchMode
-     * @return
-     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
-     */
-    @Override
-    public Pager<DefinedTermBase> findTitleCache(Class<? extends DefinedTermBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    }
-
-    @Override
-    public <TERM extends DefinedTermBase> TERM findByIdInVocabulary(String id, UUID vocabularyUuid,
-            Class<TERM> clazz) {
-        return defaultService.findByIdInVocabulary(id, vocabularyUuid, clazz);
-    }
-
-    @Override
-    public DeleteResult isDeletable(DefinedTermBase object,
-            DeleteConfiguratorBase config) {
-        return defaultService.isDeletable(object, config);
-    }
-
-    @Override
-    public <T extends DefinedTermBase> List<T> listByTermType(TermType termType, Integer limit, Integer start,
-            List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultService.listByTermType(termType, limit, start, orderHints, propertyPaths);
-    }
-
-    @Override
-    public DefinedTermBase findWithoutFlush(UUID uuid) {
-        return defaultService.findWithoutFlush(uuid);
-    }
-
-
-    @Override
-    public <S extends DefinedTermBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
-        return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
-    }
-
-    @Override
-    public DeleteResult delete(UUID uuid) {
-        return defaultService.delete(uuid);
-    }
-
-    @Override
-    public DeleteResult delete(Collection<UUID> arg0) {
-        return defaultService.delete(arg0);
-    }
-
-    @Override
-    public List<DefinedTermBase> merge(List<DefinedTermBase> arg0) {
-        return defaultService.merge(arg0);
-    }
-
-    @Override
-    public DeleteResult delete(UUID arg0, TermDeletionConfigurator arg1) {
-        return defaultService.delete(arg0, arg1);
-    }
-
-    @Override
-    public List<MergeResult<DefinedTermBase>> merge(List<DefinedTermBase> arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    @Override
-    public MergeResult<DefinedTermBase> merge(DefinedTermBase arg0, boolean arg1) {
-        return defaultService.merge(arg0, arg1);
-    }
-
-    @Override
-    public DefinedTermBase loadWithUpdate(UUID arg0) {
-        return defaultService.loadWithUpdate(arg0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Language getLanguageByLabel(String arg0) {
-        return defaultService.getLanguageByLabel(arg0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<DefinedTermBase> load(List<UUID> arg0, List<String> arg1) {
-        return defaultService.load(arg0, arg1);
-    }
-
-
-}
index 632d3153003d40695e75497e158151c4564af7c0..c5bcfb75a8c4e0d2bdca90719b15eb0220a50bd3 100644 (file)
@@ -27,6 +27,7 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.Tree;
 import org.eclipse.ui.IEditorInput;
@@ -60,6 +61,7 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
@@ -95,6 +97,50 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
             "derivationEvents.derivatives.sources"
     });
 
+       private static final int WARN_THRESHOLD = 200;
+
+    private DelaySelection delaySelection = null;
+    /**
+     * This is the monitor for the DelaySelection runnable.
+     * If it is <code>true</code> then it is currently delaying a selection.
+     */
+    private boolean isInDelay;
+
+
+    /**
+     * This class invokes internal_selectionChanged() in a separate thread.
+     * This allows an asynchronous and/or delayed handling of selection changes
+     */
+    private class DelaySelection implements Runnable{
+        private IWorkbenchPart part;
+        private ISelection selection;
+
+        public DelaySelection(IWorkbenchPart part, ISelection selection) {
+            super();
+            this.part = part;
+            this.selection = selection;
+        }
+
+        @Override
+        public void run() {
+            try{
+                selectionChanged_internal(part, selection);
+            }
+            finally{
+                isInDelay = false;
+            }
+        }
+
+        public synchronized void setSelection(ISelection selection) {
+            this.selection = selection;
+        }
+
+        public synchronized void setPart(IWorkbenchPart part) {
+            this.part = part;
+        }
+
+    }
+
        private ConversationHolder conversation;
 
        private TreeViewer viewer;
@@ -202,7 +248,9 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
         control.setMenu(menu);
 
         //init tree
-        updateRootEntities(((DerivateViewEditorInput)getEditorInput()).getDerivativeUuids());
+        Collection<UUID> derivativeUuids = ((DerivateViewEditorInput)getEditorInput()).getDerivativeUuids();
+        checkWarnThreshold(derivativeUuids);
+               updateRootEntities(derivativeUuids);
         //set taxon filter
         derivateSearchCompositeController.setTaxonFilter(((DerivateViewEditorInput) getEditorInput()).getTaxonUuid());
         //reset status bar
@@ -308,9 +356,8 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
         // commit the conversation and start a new transaction immediately
         conversation.commit(true);
 
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            CdmStore.getService(IOccurrenceService.class).merge(new ArrayList<SpecimenOrObservationBase>(rootElements), true);
-        }
+        CdmStore.getService(IOccurrenceService.class).merge(new ArrayList<SpecimenOrObservationBase>(rootElements), true);
+        
         monitor.worked(1);
 
         this.setDirty(false);
@@ -348,7 +395,6 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
 
     @Override
     public void setFocus() {
-        viewer.getControl().setFocus();
         //make sure to bind again if maybe in another view the conversation was unbound
         if(conversation!=null && !conversation.isBound()){
             conversation.bind();
@@ -356,6 +402,7 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
         if(cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
+        derivateSearchCompositeController.setFocusOnSearchField();
     }
 
     @Override
@@ -414,7 +461,9 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
      * Refreshes the derivate hierarchy tree
      */
     public void refreshTree(){
-        viewer.refresh();
+       if(!viewer.getTree().isDisposed()){
+               viewer.refresh();
+       }
     }
 
     //FIXME:Remoting hack to make this work for remoting
@@ -479,10 +528,8 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
             cdmEntitySession.dispose();
         }
     }
-
-    @Override
-    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-        if(part == this){
+    public void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
+       if(part == this){
             return;
         }
         if(viewer.getTree().isDisposed()){
@@ -509,12 +556,37 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
                 for (SpecimenOrObservationBase specimenOrObservationBase : fieldUnits) {
                     uuids.add(specimenOrObservationBase.getUuid());
                 }
+                checkWarnThreshold(uuids);
                 updateRootEntities(uuids);
                 setPartName("Derivative Editor: " + selectedTaxon.getName());
             }
         }
     }
 
+    @Override
+    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+       if(delaySelection==null){
+            delaySelection = new DelaySelection(part, selection);
+        }
+        delaySelection.setPart(part);
+        delaySelection.setSelection(selection);
+        if(!isInDelay){
+            isInDelay = true;
+            Display.getCurrent().asyncExec(delaySelection);
+        }
+    }
+
+
+       private void checkWarnThreshold(Collection<UUID> uuids) {
+               if(uuids!=null && uuids.size()>WARN_THRESHOLD){
+                       MessagingUtils.warningDialog("Performance warning", this.getClass(), String.format("Specimens will not be loaded!\n"
+                                       + "There are %d specimens associated with the current "
+                                       + "selection. If you really want to show all of them in the specimen editor please "
+                                       + "use the taxon filter in the search bar.", uuids.size()));
+                       uuids.clear();
+               }
+       }
+
     public TreeViewer getViewer() {
         return viewer;
     }
index 76358b0c4f0ffaf330bc8b2ffce631af5b3a77d9..67967db391fe05c7ec2b301751ec3ccd86157340 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.editor.view.derivate;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.UUID;
 
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -31,11 +32,19 @@ public class DerivateViewEditorInput implements IEditorInput {
     public DerivateViewEditorInput() {
     }
 
+    public DerivateViewEditorInput(UUID derivativeUuid, UUID taxonUuid) {
+       this(Collections.singleton(derivativeUuid), taxonUuid);
+    }
+
     public DerivateViewEditorInput(Collection<UUID> derivativeUuids, UUID taxonUuid) {
         this.derivativeUuids = derivativeUuids;
         this.taxonUuid = taxonUuid;
     }
 
+    public DerivateViewEditorInput(UUID derivativeUuid) {
+       this(derivativeUuid, null);
+    }
+    
     public DerivateViewEditorInput(Collection<UUID> derivativeUuids) {
         this(derivativeUuids, null);
     }
index 4cffe35bb8f079cdbf2282cae9a2d222167b6ff5..cbdd50c782dbedc1c2ef97249e53a95fc7503e2f 100644 (file)
@@ -68,7 +68,7 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                                 new MenuItem(addMenu, SWT.SEPARATOR);
                                 createMenuItem(addMenu, TISSUE_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
                                 createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
-                                createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+                                createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
                                 return;
                             }
                             //context menu for Specimen
@@ -76,19 +76,19 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
 
                                 createMenuItem(addMenu, TISSUE_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
                                 createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
-                                createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+                                createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
                                 return;
                             }
                             //context menu for TissueSample
                             else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
                                createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
-                               createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+                               createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
                                 return;
                             }
                             //context menu for DnaSample
                             else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.DnaSample){
                                 createMenuItem(addMenu, CONSENSUS_SEQUENCE, selectedTreeNode, Sequence.class, null, null);
-                                createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+                                createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
                                 return;
                             }
                             //context menu for Sequence
@@ -109,7 +109,7 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
     }
 
     private void createMenuItem(Menu menu, String menuLabel, final TreeNode selectedNode, Class<?> childClass, final SpecimenOrObservationType specimenType, final DerivationEventType derivationEventType) {
-        if(specimenType!=null && specimenType.equals(SpecimenOrObservationType.Media)){
+        if(specimenType!=null && specimenType.equals(SpecimenOrObservationType.StillImage)){
             //media submenu
             MenuItem mediaItem = new MenuItem(menu, SWT.CASCADE);
             mediaItem.setText(Messages.CreateDerivateContextMenu_MEDIA);
@@ -141,9 +141,8 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                             specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, mediaSpecimen, derivationEventType));
                             mediaSpecimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
                             mediaSpecimen.getTitleCache(); //update title cache
-                            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                                CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase, true);
-                            }
+                            CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase, true);
+                           
                         }
 
                         //refresh view
@@ -208,17 +207,13 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                     Sequence newInstance = Sequence.NewInstance(dnaSample, "", 0); //$NON-NLS-1$
                     createdElement = newInstance;
                 }
-                if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                    CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
-                }
-            }
-            else if(selectedDerivate instanceof Sequence){
+                CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
+            } else if(selectedDerivate instanceof Sequence){
                 SingleRead newInstance = SingleRead.NewInstance();
                 ((Sequence) selectedDerivate).addSingleRead(newInstance);
                 createdElement = newInstance;
-                if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                    CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivate, true);
-                }
+                CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivate, true);
+                
             }
             if(selectedDerivate instanceof SpecimenOrObservationBase && DerivedUnit.class.isAssignableFrom(childClass)){
                 SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedDerivate;
@@ -244,9 +239,8 @@ public class CreateDerivateContextMenu extends CompoundContributionItem {
                 derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
                 derivedUnit.getTitleCache(); //update title cache
                 createdElement = derivedUnit;
-                if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                    CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
-                }
+                CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
+                
             }
 
             //refresh view
index 7a7c749b99c40147d5339a5bc9675f106afd2bd9..09a52a28831990c75919f588d8dc4b6a94d0229c 100644 (file)
@@ -70,12 +70,8 @@ public class CreateFieldUnitContextMenu extends CompoundContributionItem {
                                                 description = TaxonDescription.NewInstance(taxon);
                                             }
                                             description.addElement(association);
-                                            if(CdmStore.getCurrentSessionManager().isRemoting()){
-                                                CdmStore.getService(ITaxonService.class).merge(taxon);
-                                            }
-                                            else{
-                                                CdmStore.getService(ITaxonService.class).saveOrUpdate(taxon);
-                                            }
+                                            CdmStore.getService(ITaxonService.class).merge(taxon);
+                                            
 
                                             derivateView.getConversationHolder().commit();
                                             derivateView.addFieldUnit(fieldUnit);
index ba5f2b953f252df0f40cbc635088c579c16c5e59..3a02146cc23a6bdff1273bc0d921e3a526dfb51f 100644 (file)
@@ -41,12 +41,8 @@ public class SingleReadHandler extends AbstractHandler {
                     SingleRead singleRead = (SingleRead)clipBoardTreeNode.getValue();
                     Sequence sequence = (Sequence)selectedTreeNode.getValue();
                     sequence.addSingleRead(singleRead);
-                    if(CdmStore.getCurrentSessionManager().isRemoting()){
-                        CdmStore.getService(ISequenceService.class).merge(sequence);
-                    }
-                    else{
-                        CdmStore.getService(ISequenceService.class).saveOrUpdate(sequence);
-                    }
+                    CdmStore.getService(ISequenceService.class).merge(sequence);
+                   
                     if(activeEditor instanceof DerivateView) {
                         derivateView.getConversationHolder().commit();
                         derivateView.refreshTree();
@@ -63,12 +59,8 @@ public class SingleReadHandler extends AbstractHandler {
                         selectedTreeNode.getValue() instanceof SingleRead && selectedTreeNode.getParent().getValue() instanceof Sequence) {
                     Sequence sequence = (Sequence) selectedTreeNode.getParent().getValue();
                     sequence.removeSingleRead((SingleRead) selectedTreeNode.getValue());
-                    if(CdmStore.getCurrentSessionManager().isRemoting()){
-                        CdmStore.getService(ISequenceService.class).merge(sequence);
-                    }
-                    else{
-                        CdmStore.getService(ISequenceService.class).saveOrUpdate(sequence);
-                    }
+                    CdmStore.getService(ISequenceService.class).merge(sequence);
+                    
                     if(activeEditor instanceof DerivateView) {
                         derivateView.getConversationHolder().commit();
                         derivateView.refreshTree();
index 3f07f19c68af590d105c6fb9649c4f8f10feaa0d..3fe068faf0fec05d54db7c213509c93d3480f49c 100644 (file)
@@ -178,5 +178,9 @@ public class DerivateSearchCompositeController implements Listener{
             derivateSearchComposite.getComboTaxonAssignment().setEnabled(false);
         }
     }
+    
+    public void setFocusOnSearchField(){
+       derivateSearchComposite.getSearchField().setFocus();
+    }
 
 }
index 11ff7124edf97127df911c5551ea6f6ab3ee359e..cf0b7d927d6f6e2078faa4b7103d948826cc2b30 100644 (file)
@@ -45,6 +45,7 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.Messages;
 import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
@@ -55,7 +56,6 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.model.ImageResources;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
 import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
 import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
@@ -68,7 +68,7 @@ import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
 public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData {
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.desc"{trunked}</code> */
-       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.descriptive";
+       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.descriptive"; //$NON-NLS-1$
 
        protected TreeViewer viewer;
 
@@ -155,7 +155,6 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
        @Override
     protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
                if(AbstractUtility.getActiveEditor() == null){
-                   setPartName(createPartTitle(null));
                        showEmptyPage();
                        return;
                }
@@ -186,25 +185,17 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
                        && ((IStructuredSelection) selection).getFirstElement() instanceof IDescribable<?>
                        && part instanceof IPartContentHasFactualData  && !(((IStructuredSelection) selection).getFirstElement() instanceof SpecimenOrObservationBase && part instanceof BulkEditor)){
                    featureNodeContainerCache.clear();
-               setPartName(createPartTitle(((IStructuredSelection) selection).getFirstElement()));
                    showViewer(part, (IStructuredSelection) selection);
                    return;
                }
                else{
-            setPartName(createPartTitle(null));
                    showEmptyPage();
                }
        }
-
+       @Override
        protected String getViewName(){
-           return "Factual Data";
-       }
-
-       private String createPartTitle(Object selectedObject){
-           if(selectedObject!=null){
-               return getViewName()+": "+selectedObject;
-           }
-        return getViewName();
+           return Messages.DescriptiveViewPart_FACTUAL_DATA;
        }
 
        /**
@@ -226,13 +217,13 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
                        setImageDescriptor(new ImageDescriptor() {
                                @Override
                                public ImageData getImageData() {
-                                       setText(expanded ? "Collapse All" : "Expand All");
+                                       setText(expanded ? Messages.DescriptiveViewPart_COLLAPSE_ALL : Messages.DescriptiveViewPart_EXPAND_ALL);
                                        String resource = expanded ? ImageResources.COLLAPSE_ALL : ImageResources.EXPAND_ALL;
                                        return ImageResources.getImage(resource).getImageData();
                                }
                        });
 
-                       String toolTipText = expanded ? "Collapse all" : "Show all factual data";
+                       String toolTipText = expanded ? Messages.DescriptiveViewPart_COLLAPSE_ALL : Messages.DescriptiveViewPart_SHOW_ALL_DATA;
                        setToolTipText(toolTipText);
                }
 
@@ -278,10 +269,9 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
                }
                if(part instanceof BulkEditor && !(object instanceof SpecimenOrObservationBase<?>)){
                    ((BulkEditor) part).forceDirty();
-                   if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                       IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
-                       ((BulkEditor) part).changed(selection.getFirstElement());
-                   }
+                   IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
+                   ((BulkEditor) part).changed(selection.getFirstElement());
+                   
                }
 
 
index d67e421692702c5a30d7b73989cc1c465d661d94..d34eee5ce87df80eb3640d7c86a33a982ab1f032 100644 (file)
@@ -105,10 +105,14 @@ public class DynamicFeatureMenu extends CompoundContributionItem {
 
        private void createMenuItem(Menu menu, final Feature feature) {
                MenuItem menuItem = new MenuItem(menu, -1);
-               final Feature deproxiedFeature = (Feature) HibernateProxyHelper
-                               .deproxy(feature);
-
-               menuItem.setText(deproxiedFeature.getLabel());
+               final Feature deproxiedFeature = HibernateProxyHelper.deproxy(feature, Feature.class);
+                               
+               String label = deproxiedFeature.getLabel(PreferencesUtil.getGlobalLanguage());
+               if (label == null){
+                       menuItem.setText(deproxiedFeature.getLabel());
+               }else{
+                       menuItem.setText(label);
+               }
                menuItem.addSelectionListener(new SelectionListener() {
 
                        @Override
index 0c5ded96a98fc79da8af76b361dd185c23175a6a..54834bac6d64e36e4b180ffe62a6ce1595a2fb8d 100644 (file)
@@ -71,7 +71,7 @@ public class DeleteDescriptionElementOperation extends AbstractPostTaxonOperatio
                monitor.worked(40);
 
         // Redraw editor if exists
-               return postExecute(null);
+               return postExecute(description);
        }
 
        /* (non-Javadoc)
index 331526d40397a50d0d24cd73c10560d87031aced..8d0e3e7772af4d849842e2374180e6d29c8c2d7a 100644 (file)
@@ -34,7 +34,6 @@ import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
 import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
 import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
@@ -135,10 +134,9 @@ public class MediaViewPart extends AbstractCdmEditorViewPart implements IPartCon
            // take a look at ISaveblePart
            if(part instanceof BulkEditor && !(object instanceof SpecimenOrObservationBase<?>)){
                ((BulkEditor) part).forceDirty();
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
-                ((BulkEditor) part).changed(selection.getFirstElement());
-            }
+               IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
+            ((BulkEditor) part).changed(selection.getFirstElement());
+            
            }
            super.changed(object);
        }
@@ -153,4 +151,9 @@ public class MediaViewPart extends AbstractCdmEditorViewPart implements IPartCon
     public boolean onComplete() {
                return true;
        }
+
+       @Override
+       protected String getViewName() {
+               return "Media";
+       }
 }
index addf51208649630a3eb3c057105745345895c97d..481a39e8b1607499fb9cd4f469083a6881d2ae6e 100644 (file)
@@ -1,83 +1,84 @@
-/**\r
- * Copyright (C) 2011 EDIT\r
- * European Distributed Institute of Taxonomy\r
- * http://www.e-taxonomy.eu\r
- *\r
- * The contents of this file are subject to the Mozilla Public License Version 1.1\r
- * See LICENSE.TXT at the top of this package for the full license terms.\r
- */\r
-package eu.etaxonomy.taxeditor.editor.view.uses;\r
-\r
-import org.eclipse.jface.viewers.TreeViewer;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.dnd.Transfer;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Tree;\r
-\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDragListener;\r
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDropAdapter;\r
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementTransfer;\r
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;\r
-\r
-\r
-/**\r
- * The Class create a specific Use View to keep the taxonomic view clean\r
- * @author a.theys\r
- * @created mar 13, 2012\r
- * @version 1.0\r
- */\r
-public class UsesViewPart extends DescriptiveViewPart {\r
-\r
-       public UsesViewPart() {\r
-               super();\r
-       }\r
-\r
-       /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.uses"</code> */\r
-       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.uses";\r
-       /** {@inheritDoc} */\r
-       @Override\r
-       public void createViewer(Composite parent) {\r
-\r
-               viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL\r
-                               | SWT.V_SCROLL | SWT.FULL_SELECTION));\r
-               viewer.setContentProvider(new UsesContentProvider(featureNodeContainerCache));\r
-               viewer.setLabelProvider(new UsesLabelProvider());\r
-               viewer.setAutoExpandLevel(2);\r
-\r
-\r
-\r
-               Transfer[] transfers = new Transfer[] { DescriptionElementTransfer.getInstance() };\r
-               viewer.addDragSupport(dndOperations, transfers, new DescriptionElementDragListener(\r
-                               this));\r
-               viewer.addDropSupport(dndOperations, transfers,\r
-                               new DescriptionElementDropAdapter(viewer));\r
-\r
-               // Propagate selection from viewer\r
-               getSite().setSelectionProvider(viewer);\r
-\r
-               showAllElementsAction = new ToggleDescriptionAction(false);\r
-               hideAllElementsAction = new ToggleDescriptionAction(true);\r
-\r
-               // Add context menu to tree\r
-               createMenu();\r
-\r
-               createToolbar();\r
-\r
-       }\r
-\r
-       @Override\r
-    protected String getViewName(){\r
-           return "Uses";\r
-       }\r
-\r
-       /** {@inheritDoc} */\r
-       @Override\r
-       public boolean postOperation(CdmBase objectAffectedByOperation) {\r
-               viewer.refresh();\r
-               return super.postOperation(objectAffectedByOperation);\r
-       }\r
-\r
-\r
-\r
-}\r
+/**
+ * Copyright (C) 2011 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.view.uses;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Tree;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.editor.Messages;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDragListener;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDropAdapter;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementTransfer;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
+
+
+/**
+ * The Class create a specific Use View to keep the taxonomic view clean
+ * @author a.theys
+ * @created mar 13, 2012
+ * @version 1.0
+ */
+public class UsesViewPart extends DescriptiveViewPart {
+
+       public UsesViewPart() {
+               super();
+       }
+
+       /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.uses"</code> */
+       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.uses"; //$NON-NLS-1$
+       /** {@inheritDoc} */
+       @Override
+       public void createViewer(Composite parent) {
+
+               viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL
+                               | SWT.V_SCROLL | SWT.FULL_SELECTION));
+               viewer.setContentProvider(new UsesContentProvider(featureNodeContainerCache));
+               viewer.setLabelProvider(new UsesLabelProvider());
+               viewer.setAutoExpandLevel(2);
+
+
+
+               Transfer[] transfers = new Transfer[] { DescriptionElementTransfer.getInstance() };
+               viewer.addDragSupport(dndOperations, transfers, new DescriptionElementDragListener(
+                               this));
+               viewer.addDropSupport(dndOperations, transfers,
+                               new DescriptionElementDropAdapter(viewer));
+
+               // Propagate selection from viewer
+               getSite().setSelectionProvider(viewer);
+
+               showAllElementsAction = new ToggleDescriptionAction(false);
+               hideAllElementsAction = new ToggleDescriptionAction(true);
+
+               // Add context menu to tree
+               createMenu();
+
+               createToolbar();
+
+       }
+
+       @Override
+    protected String getViewName(){
+           return Messages.UsesViewPart_VIEWER_NAME;
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public boolean postOperation(CdmBase objectAffectedByOperation) {
+               viewer.refresh();
+               return super.postOperation(objectAffectedByOperation);
+       }
+
+
+
+}
index c30009bd6b0f4a63eeb0754e7aac43b3d5e796ca..f69dac0387c3584af40a501cbdd52e8b5189085e 100644 (file)
@@ -65,9 +65,9 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
                
-               Assert.assertEquals(newParentTaxon ,taxon.getTaxonomicParent());
-               Assert.assertEquals(taxon, newParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
-               Assert.assertTrue(oldParentTaxon.getTaxonomicChildrenCount() == 0);
+//             Assert.assertEquals(newParentTaxon ,taxon.getTaxonomicParent());
+//             Assert.assertEquals(taxon, newParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
+//             Assert.assertTrue(oldParentTaxon.getTaxonomicChildrenCount() == 0);
        }
 
 
@@ -79,9 +79,9 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
                
-               Assert.assertEquals(oldParentTaxon ,taxon.getTaxonomicParent());
-               Assert.assertTrue(newParentTaxon.getTaxonomicChildren().size() == 0);
-               Assert.assertEquals(taxon, oldParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
+//             Assert.assertEquals(oldParentTaxon ,taxon.getTaxonomicParent());
+//             Assert.assertTrue(newParentTaxon.getTaxonomicChildren().size() == 0);
+//             Assert.assertEquals(taxon, oldParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
        }
        
        /**
@@ -92,8 +92,8 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
                
-               Assert.assertEquals(newParentTaxon ,taxon.getTaxonomicParent());
-               Assert.assertEquals(taxon, newParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
-               Assert.assertTrue(oldParentTaxon.getTaxonomicChildrenCount() == 0);
+//             Assert.assertEquals(newParentTaxon ,taxon.getTaxonomicParent());
+//             Assert.assertEquals(taxon, newParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
+//             Assert.assertTrue(oldParentTaxon.getTaxonomicChildrenCount() == 0);
        }
 }
index 4876aed8b27b14f089511498de0b536cbfe7e054..a8717867afc47d2e28f3d97e63cb827ca5a70f7b 100644 (file)
@@ -9,10 +9,9 @@
 
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import junit.framework.Assert;
-
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -24,7 +23,6 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
@@ -77,13 +75,13 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
                oldTaxonName = NonViralName.NewInstance(null);
                taxon = Taxon.NewInstance(oldTaxonName, null);
 
-               // Create its parent taxon
-               parentTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
-               parentTaxon.addTaxonomicChild(taxon, null, null);
-
-               // Give it a child taxon
-               childTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
-               childTaxon.setTaxonomicParent(taxon, null, null);
+//             // Create its parent taxon
+//             parentTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
+//             parentTaxon.addTaxonomicChild(taxon, null, null);
+//
+//             // Give it a child taxon
+//             childTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
+//             childTaxon.setTaxonomicParent(taxon, null, null);
 
                // Create a homotypic synonym for the accepted taxon
                taxon.addHomotypicSynonymName(NonViralName.NewInstance(null), null, null);
@@ -129,11 +127,11 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
                // New taxon has correct name?
                Assert.assertEquals(taxon.getName(), oldSynonymName);
 
-               // New taxon has correct parent?
-               Assert.assertEquals(taxon.getTaxonomicParent(), parentTaxon);
-
-               // New taxon has correct child?
-               Assert.assertTrue(taxon.getTaxonomicChildren().contains(childTaxon));
+//             // New taxon has correct parent?
+//             Assert.assertEquals(taxon.getTaxonomicParent(), parentTaxon);
+//
+//             // New taxon has correct child?
+//             Assert.assertTrue(taxon.getTaxonomicChildren().contains(childTaxon));
 
                // New taxon has 2 synonyms?
                Assert.assertEquals(taxon.getSynonyms().size(), 2);
@@ -144,16 +142,16 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
                // New taxon has misapplication?
                Assert.assertTrue(taxon.getMisappliedNames().contains(misapplication));
 
-               // New taxon has 1 concept relation?
-               int conceptRelCount = 0;
-               for (TaxonRelationship relation : taxon.getTaxonRelations()) {
-                       if (relation.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR()) ||
-                                       relation.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
-                               continue;
-                       }
-                       conceptRelCount++;
-               }
-               Assert.assertEquals(conceptRelCount, 1);
+//             // New taxon has 1 concept relation?
+//             int conceptRelCount = 0;
+//             for (TaxonRelationship relation : taxon.getTaxonRelations()) {
+//                     if (relation.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR()) ||
+//                                     relation.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
+//                             continue;
+//                     }
+//                     conceptRelCount++;
+//             }
+//             Assert.assertEquals(conceptRelCount, 1);
 
                // New taxon has description?
                taxon.getDescriptions().contains(description);
index 3f71f594b1f97dc30d51e7ddee0d5333e418e867..962531a69c58e9e6eba57bf0a31195499eeb8a71 100644 (file)
@@ -2,7 +2,7 @@
 <feature
       id="eu.etaxonomy.taxeditor.feature.jre.linux64"
       label="Taxonomic Editor JRE Linux64"
-      version="4.2.0.qualifier"
+      version="4.4.0.qualifier"
       provider-name="EDIT"
       plugin="eu.etaxonomy.taxeditor.application"
       os="linux"
index 97b9b98d7beb4a415cb44de8731bba2f8a79295c..bc9a6299e1f273044b7c50c64f0daab3a0c304ba 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>eu.etaxonomy.taxeditor.feature.jre.linux64</artifactId>
index b04ab9b287a6a2488b106e5d5d42741ae31ed352..25874bf27b02158d15dcf91f74e84ddf6d2532d1 100644 (file)
@@ -2,7 +2,7 @@
 <feature
       id="eu.etaxonomy.taxeditor.feature.platform"
       label="Taxeditor Dependencies"
-      version="4.2.0.qualifier"
+      version="4.4.0.qualifier"
       os="linux,macosx,win32"
       ws="cocoa,gtk,win32"
       arch="x86,x86_64">
index 24442fa381123a6920028a73194501baefd8f383..9a3bd7d4e83064ac4d4757f7c2d0450dd4d11357 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>4.2.0-SNAPSHOT</version>
+               <version>4.4.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
index 22ecb401ab0f330e382ba15c548f43b02d723242..c6469d47c893c6030e9ab7a75721e58488debc74 100644 (file)
@@ -2,7 +2,7 @@
 <feature
       id="eu.etaxonomy.taxeditor.feature"
       label="Taxonomic Editor"
-      version="4.2.0.qualifier"
+      version="4.4.0.qualifier"
       provider-name="EDIT"
       plugin="eu.etaxonomy.taxeditor.application"
       os="linux,macosx,win32"
index 5321aba5d2193a7bca88fb0aca1a792f9a5fb07c..b28b0b25f06fe52828ca598c915b13354ba99148 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
index bab9d9c9bf3dc43f1a92f050d6aeb7510c49ba45..3fe353b244a97c1557842132e459834462a494f9 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Help
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
 Bundle-Vendor: EDIT
 Require-Bundle: org.eclipse.ui,
index e1ae3bb41d8fc69218a2150cb0b40434ddfd6942..464845d6bdd42b9018d9aec4dddc4fa0bdb96b1d 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>4.2.0-SNAPSHOT</version>
+               <version>4.4.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index f644516a54e29676e557fcebdf0d0b6e8dd00b58..42448a1f344e1becfd1a8fba8eeab2bacbd86b45 100644 (file)
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-       <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.libralign.biojava1/bin/"/>
        <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 exported="true" kind="lib" path="lib/owlapi-xmlutils-4.1.4.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.commons.core/bin"/>
        <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.commons.swing/bin"/>
        <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.commons.swt/bin"/>
-       <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.libralign.core/bin"/>
-       <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.libralign.io/bin"/>
-       <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.libralign.swt/bin"/>
        <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.tic.core/bin"/>
        <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.tic.swt/bin"/>
        <classpathentry exported="true" kind="lib" path="lib/JPhyloIO/bin" sourcepath="lib/JPhyloIO/bin"/>
+       <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.libralign.core/bin"/>
+       <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.libralign.io/bin"/>
+       <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.libralign.swt/bin"/>
+       <classpathentry exported="true" kind="lib" path="lib/info.bioinfweb.libralign.biojava1/bin"/>
        <classpathentry kind="output" path="target/classes"/>
 </classpath>
index 22d225db3443e0f0562a39b197d9843eb28ccbcc..e6f15330ff5c20f82cba6c0e44a237e8a41bf770 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: eu.etaxonomy.taxeditor.molecular.lib
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-ClassPath: .,
  lib/owlapi-xmlutils-4.1.4.jar,
  lib/commons-collections4-4.1.jar,
@@ -12,12 +12,12 @@ Bundle-ClassPath: .,
  lib/info.bioinfweb.commons.core/bin/,
  lib/info.bioinfweb.commons.swing/bin/,
  lib/info.bioinfweb.commons.swt/bin/,
- lib/info.bioinfweb.libralign.core/bin/,
- lib/info.bioinfweb.libralign.io/bin/,
- lib/info.bioinfweb.libralign.swt/bin/,
  lib/info.bioinfweb.tic.core/bin/,
  lib/info.bioinfweb.tic.swt/bin/,
  lib/JPhyloIO/bin/,
+ lib/info.bioinfweb.libralign.core/bin/,
+ lib/info.bioinfweb.libralign.io/bin/,
+ lib/info.bioinfweb.libralign.swt/bin/,
  lib/info.bioinfweb.libralign.biojava1/bin/
 Export-Package: info.bioinfweb.commons,
  info.bioinfweb.commons.appversion,
index d98ea1c36884670c9633a00192b164032248dd38..3458f1c6faaa184684c8d01b9ce14a3587085b3e 100644 (file)
@@ -7,7 +7,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
 
   <build>
index 8afdbe3f26faf0d4367374896572f7fee7a4f73f..2ad5bf685c3a39a2dc917a860c723745e2d120fc 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Molecular Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
index 97288af4e1f9e43b2bfa4fca2a1bd8b81802ebeb..c707be38c1f649c524896b7c423476892b26124f 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 90b98375553efb432e3050ef541784546a5b1426..12b1d8e5a1301ce91b1f558a23c80a490e2e2d83 100644 (file)
@@ -134,7 +134,7 @@ public class AlignmentEditor extends EditorPart {
 
 
     private MultipleAlignmentsContainer alignmentsContainer = null;
-    private final Map<Integer, SingleReadAlignment> cdmMap = new TreeMap<Integer, SingleReadAlignment>();  //TODO Move this to ContigSequenceDataProvider
+    private final Map<String, SingleReadAlignment> cdmMap = new TreeMap<String, SingleReadAlignment>();  //TODO Move this to ContigSequenceDataProvider
     private boolean dirty = false;
 
     public AlignmentEditor()
@@ -275,12 +275,12 @@ public class AlignmentEditor extends EditorPart {
     }
 
 
-    public boolean hasPherogram(int sequenceID) {
+    public boolean hasPherogram(String sequenceID) {
         return getReadsArea().getDataAreas().getSequenceAreas(sequenceID).size() > PHEROGRAM_AREA_INDEX;
     }
 
 
-    public PherogramArea getPherogramArea(int sequenceID) {
+    public PherogramArea getPherogramArea(String sequenceID) {
         if (hasPherogram(sequenceID)) {
             return (PherogramArea)getReadsArea().getDataAreas().getSequenceAreas(sequenceID).get(PHEROGRAM_AREA_INDEX);
         }
@@ -307,7 +307,7 @@ public class AlignmentEditor extends EditorPart {
 
                        // Add test consensus sequence:
                        AlignmentModel consensusModel = getEditableConsensusArea().getAlignmentModel();
-                       int id = consensusModel.addSequence(CONSENSUS_NAME);
+                       String id = consensusModel.addSequence(CONSENSUS_NAME);
                        Collection<Object> tokens = new ArrayList<Object>();  // First save tokens in a collection to avoid GUI updated for each token.
                        tokens.add(consensusModel.getTokenSet().tokenByRepresentation("A"));
                        tokens.add(consensusModel.getTokenSet().tokenByRepresentation("C"));
@@ -332,7 +332,7 @@ public class AlignmentEditor extends EditorPart {
                                if (pherogramInfo.getPherogram() != null) {
                                    uri = MediaUtils.getFirstMediaRepresentationPart(pherogramInfo.getPherogram()).getUri();
                                }
-                               int id = addRead(DerivateLabelProvider.getDerivateText(pherogramInfo, conversationHolder),
+                               String id = addRead(DerivateLabelProvider.getDerivateText(pherogramInfo, conversationHolder),
                                                uri,
                                                singleReadAlignment.isReverseComplement(),
                                                singleReadAlignment.getEditedSequence(),
@@ -350,7 +350,7 @@ public class AlignmentEditor extends EditorPart {
 
                // Set consensus sequence:
                AlignmentModel consensusProvider = getEditableConsensusArea().getAlignmentModel();
-               int id = consensusProvider.addSequence(CONSENSUS_NAME);
+               String id = consensusProvider.addSequence(CONSENSUS_NAME);
                consensusProvider.insertTokensAt(id, 0, AlignmentModelUtils.charSequenceToTokenList(
                                sequenceNode.getConsensusSequence().getString(), consensusProvider.getTokenSet()));
                //TODO Can the consensus sequence also be null? / Should it be created here, if nothing is in the DB?
@@ -439,9 +439,9 @@ public class AlignmentEditor extends EditorPart {
                // Write single reads:
                stringProvider.setUnderlyingModel(getReadsArea().getAlignmentModel());
                sequenceNode.getSingleReadAlignments().retainAll(cdmMap.values());  // Remove all reads that are not in the alignment anymore.
-               Iterator<Integer> iterator = getReadsArea().getAlignmentModel().sequenceIDIterator();
+               Iterator<String> iterator = getReadsArea().getAlignmentModel().sequenceIDIterator();
                while (iterator.hasNext()) {
-                       int id = iterator.next();
+                       String id = iterator.next();
                        SingleReadAlignment singleRead = cdmMap.get(id);
                        if (singleRead == null) {
                            throw new InternalError("Creating new reads from AlignmentEditor not implemented.");
@@ -587,7 +587,7 @@ public class AlignmentEditor extends EditorPart {
        SelectionModel selection = getReadsArea().getSelection();
        AlignmentModel<?> model = getReadsArea().getAlignmentModel();
        for (int row = selection.getFirstRow(); row < selection.getFirstRow() + selection.getCursorHeight(); row++) {
-                       int sequenceID = getReadsArea().getSequenceOrder().idByIndex(row);
+               String sequenceID = getReadsArea().getSequenceOrder().idByIndex(row);
                        PherogramArea area = getPherogramArea(sequenceID);
                        PherogramAreaModel pherogramAlignmentModel = area.getModel();
                        AlignmentModelUtils.reverseComplement(model, sequenceID,
@@ -608,7 +608,7 @@ public class AlignmentEditor extends EditorPart {
     public <T> void createConsensusSequence() {
         ConsensusSequenceArea area = getConsensusHintDataArea();
         AlignmentModel<T> model = (AlignmentModel<T>)getEditableConsensusArea().getAlignmentModel();
-        int sequenceID = model.sequenceIDIterator().next();  // There is always one sequence contained.
+        String sequenceID = model.sequenceIDIterator().next();  // There is always one sequence contained.
         int length = getReadsArea().getAlignmentModel().getMaxSequenceLength();
 
         Collection<T> tokens = new ArrayList<T>(length);
@@ -630,7 +630,7 @@ public class AlignmentEditor extends EditorPart {
         ConsensusSequenceArea area = getConsensusHintDataArea();
         AlignmentModel<T> model = (AlignmentModel<T>)getEditableConsensusArea().getAlignmentModel();
         TokenSet<T> tokenSet = model.getTokenSet();
-        int sequenceID = model.sequenceIDIterator().next();  // There is always one sequence contained.
+        String sequenceID = model.sequenceIDIterator().next();  // There is always one sequence contained.
         int currentConsensusLength = model.getSequenceLength(sequenceID);
         int overallLength = getReadsArea().getAlignmentModel().getMaxSequenceLength();
 
@@ -670,9 +670,7 @@ public class AlignmentEditor extends EditorPart {
 
        private String newReadName() {
                int index = 1;
-               while (getReadsArea().getAlignmentModel().sequenceIDByName(DEFAULT_READ_NAME_PREFIX + index)
-                               != AlignmentModel.NO_SEQUENCE_FOUND) {
-
+               while (getReadsArea().getAlignmentModel().sequenceIDByName(DEFAULT_READ_NAME_PREFIX + index) != null) {
                        index++;
                }
                return DEFAULT_READ_NAME_PREFIX + index;
@@ -701,7 +699,7 @@ public class AlignmentEditor extends EditorPart {
      * @throws IOException if an error occurred when trying to read the pherogram file
      * @throws UnsupportedChromatogramFormatException if the format of the pherogram file is not supported
      */
-    public int addRead(String name, URI pherogramURI, boolean reverseComplemented, String editedSequence,
+    public String addRead(String name, URI pherogramURI, boolean reverseComplemented, String editedSequence,
             Integer firstSeqPos, Integer leftCutPos, Integer rightCutPos, SingleReadAlignment.Shift[] shifts)
             throws IOException, UnsupportedChromatogramFormatException {
 
@@ -716,7 +714,7 @@ public class AlignmentEditor extends EditorPart {
 
         // Create sequence:
                provider.addSequence(name);
-               int id = provider.sequenceIDByName(name);
+               String id = provider.sequenceIDByName(name);
 
                // Set edited sequence:
                Collection<Object> tokens = null;  // First save tokens in a collection to avoid GUI updated for each token.
index 4bc956e3c574047187657a788b2118005a810ed3..89bc3cba996fdb1def53f73bccb0bb6d614ac7eb 100644 (file)
@@ -163,8 +163,7 @@ public class AlignmentEditorInput extends CdmEntitySessionInput implements IEdit
      */
     @Override
     public void merge() {
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            CdmStore.getService(ISequenceService.class).merge(sequenceNode, true);
-        }
+        CdmStore.getService(ISequenceService.class).merge(sequenceNode, true);
+        
     }
 }
index 55c24e32aab50088dfbd93aa3c363c67a988cc45..b0bf979c5a54c643a632534e6c3b6cf0edb7759a 100644 (file)
@@ -41,7 +41,7 @@ public abstract class AbstractPherogramComponentHandler extends AbstractHandler
 
         if (activePart instanceof AlignmentEditor) {
             AlignmentEditor editor = (AlignmentEditor)activePart;
-            Iterator<Integer> idIterator = editor.getReadsArea().getAlignmentModel().sequenceIDIterator();
+            Iterator<String> idIterator = editor.getReadsArea().getAlignmentModel().sequenceIDIterator();
             while (idIterator.hasNext()) {
                 PherogramArea area = editor.getPherogramArea(idIterator.next());
                 if (area != null) {
index 590aab56cda513d4684b25da531f4949cf16aea3..98205803035aa38a307005ee86efc049a0a21c9d 100644 (file)
@@ -30,10 +30,11 @@ import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor;
  * @date 26.08.2015\r
  */\r
 public class AlignmentEditorPasteHandler extends AbstractFocusedAlignmentAreaHandler implements IElementUpdater {\r
-       private void pasteString(AlignmentArea area, int sequenceID, String content) {\r
+       private void pasteString(AlignmentArea area, String sequenceID, String content) {\r
                area.getActionProvider().deleteSelection();  // Overwrite selected tokens.\r
                area.getActionProvider().elongateSequence(sequenceID, area.getSelection().getCursorColumn());\r
 \r
+               @SuppressWarnings("unchecked")\r
                AlignmentModel<Object> alignmentModel = (AlignmentModel<Object>)area.getAlignmentModel();\r
                alignmentModel.insertTokensAt(sequenceID, area.getSelection().getCursorColumn(),\r
                                AlignmentModelUtils.charSequenceToTokenList(content, alignmentModel.getTokenSet(),\r
@@ -62,7 +63,7 @@ public class AlignmentEditorPasteHandler extends AbstractFocusedAlignmentAreaHan
 \r
                        if (!lines.isEmpty()) { //TODO Can lines be empty? (Can an empty string "" be copied to the clipboard?)\r
                                if (selection.getCursorHeight() == 1) {  // If the consensus sequence is focused, this is the only possible case.\r
-                                       int sequenceID = focusedArea.getSequenceOrder().idByIndex(selection.getCursorRow());\r
+                                       String sequenceID = focusedArea.getSequenceOrder().idByIndex(selection.getCursorRow());\r
                                        if (lines.size() == 1) {\r
                                                pasteString(focusedArea, sequenceID, lines.get(0));\r
                                        }\r
index e9a5e1320d632bd5b380d285cf66a42a3ac5a71b..705263a9d05ed20246ede2ec6c3312b38dc4880d 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Navigation Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.cdm,
  eu.etaxonomy.taxeditor.navigation,
index e6582f7fdca4d5a3d50b9af91e5472f112a09343..1bb4af14f507c23070787c7567a957cb1d5548b1 100644 (file)
@@ -8,7 +8,6 @@ command.label.1 = Edit
 menu.label = New\r
 command.label.2 = Taxon\r
 command.label.3 = Classification\r
-command.label.4 = Open in Checklist Editor\r
 command.label.5 = Edit\r
 command.label.6 = Change accepted taxon to synonym\r
 command.label.7 = Move taxon (with child taxa)\r
index a561d9e4305e37a7cc897676ee8a1041cde7f9db..f78b7e12dbfb6e9dd219446903087a95693bc874 100644 (file)
@@ -8,7 +8,6 @@ command.label.1 = Bearbeiten
 menu.label = Neu\r
 command.label.2 = Taxon\r
 command.label.3 = Klassifikation\r
-command.label.4 = \u00D6ffne im Checklisten Editor\r
 command.label.5 = Bearbeiten\r
 command.label.6 = Akzeptiertes Taxon zum Synonym umwandeln\r
 command.label.7 = Verschiebe Taxon (mit Kindern)\r
index e34d01f06c54eb39fb7d00c6c73d0e16ebdaec00..be4c61af80e4f663d7ba7a28cf6902b6c7466f29 100644 (file)
                </reference>
             </visibleWhen>
          </menu>
-         <command
-               commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
-               icon="icons/check.png"
-               label="%command.label.4"
-               style="push">
-           <visibleWhen
-                 checkEnabled="true">
-              <and>
-                 <reference
-                       definitionId="isChecklistEditorEnabled">
-                 </reference>
-                 <or>
-                    <reference
-                          definitionId="isClassification">
-                    </reference>
-                    <reference
-                          definitionId="isTaxonNode">
-                    </reference>
-                 </or>
-              </and>
-            </visibleWhen>
-         </command>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.navigator.handler.OpenFixClassificationHierarchyHandler"
                label="%command.label.fixClassificationHierarchy"
             </reference>
          </activeWhen>
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
+            commandId="eu.etaxonomy.taxeditor.openReferencingObjectsView">
+         <activeWhen>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="eu.etaxonomy.taxeditor.navigation.navigator">
+               </equals>
+            </with>
+         </activeWhen>
+      </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonBaseHandler"
+            commandId="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxon">
+         <activeWhen>
+            <and>
+               <not>
+                  <reference
+                        definitionId="isOrphanedTaxon">
+                  </reference>
+               </not>
+            </and>
+         </activeWhen>
+      </handler>
    </extension>
 
       
index 16ab9101555de63d0f363383f073941f349986df..f60f32ce968f707369612f733c8c3efee558eac9 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>4.2.0-SNAPSHOT</version>
+               <version>4.4.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 9d66a112f086a73252802824fe308642bae0569c..da31d1c5bf1f797c3aec7823aa8431a0a78ff28e 100644 (file)
@@ -9,9 +9,14 @@
 
 package eu.etaxonomy.taxeditor.navigation;
 
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ParameterizedCommand;
+import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.UndoContext;
 import org.eclipse.jface.viewers.StructuredSelection;
@@ -23,6 +28,8 @@ import org.eclipse.ui.IEditorReference;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.navigator.CommonViewer;
 
 import eu.etaxonomy.cdm.api.service.IClassificationService;
@@ -66,25 +73,28 @@ public class NavigationUtil extends AbstractUtility{
         */
        public static void openEditor(UuidAndTitleCache uuidAndTitleCache){
            Class type = uuidAndTitleCache.getType();
+           ICdmBase cdmBase = null;
            if(type.equals(Classification.class)){
-               Classification classification = CdmStore.getService(IClassificationService.class).load(uuidAndTitleCache.getUuid());
-               openEditor(classification);
+               cdmBase = CdmStore.getService(IClassificationService.class).load(uuidAndTitleCache.getUuid());
            }
            else if(type.equals(TaxonNode.class)){
-               TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(uuidAndTitleCache.getUuid());
-               openEditor(taxonNode);
+               cdmBase = CdmStore.getService(ITaxonNodeService.class).load(uuidAndTitleCache.getUuid());
            }
            else if(TaxonBase.class.isAssignableFrom(type)){
-               TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
-               openEditor(taxonBase);
+               cdmBase = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
            }
            else if(type.equals(TaxonNameBase.class)){
-               TaxonNameBase nameBase = CdmStore.getService(INameService.class).load(uuidAndTitleCache.getUuid());
-               openEditor(nameBase);
+               cdmBase = CdmStore.getService(INameService.class).load(uuidAndTitleCache.getUuid());
            }
            else{
                MessagingUtils.warningDialog("Unknown type", NavigationUtil.class, "There is no editor available to open this object.");
            }
+           if(cdmBase!=null){
+               openEditor(cdmBase);
+           }
+           else{
+               MessagingUtils.warningDialog("Cdm entity not found", NavigationUtil.class, "CDM entity could not be found in the database.");
+           }
        }
 
        public static void openEditor(ICdmBase selectedObject){
@@ -100,10 +110,15 @@ public class NavigationUtil extends AbstractUtility{
                        else if(selectedObject instanceof TaxonNode){
                                EditorUtil.openTaxonNode(entityUuid);
                        }else if(selectedObject instanceof TaxonBase){
-                               EditorUtil.openTaxonBase(entityUuid);
+                               TaxonBase taxonBase = (TaxonBase)selectedObject;
+                               if(taxonBase.isOrphaned()){
+                                       openInBulkEditor(taxonBase);
+                               }
+                               else{
+                                       EditorUtil.openTaxonBase(entityUuid);
+                               }
                        }else if(selectedObject instanceof TaxonNameBase){
-                               // TODO open bulk editor
-                               MessagingUtils.warningDialog("Not implemented yet", NavigationUtil.class, "You tried to open a name. This is not handled by the software yet. For open a pure name you can use the bulk editor");
+                               openInBulkEditor(selectedObject);
                        }else if(selectedObject instanceof PolytomousKey){
                                EditorUtil.openPolytomousKey(entityUuid);
                        }else{
@@ -121,6 +136,32 @@ public class NavigationUtil extends AbstractUtility{
                }
        }
 
+       private static void openInBulkEditor(ICdmBase selectedObject) {
+               ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
+               IHandlerService handlerService = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
+               String openInBulkEditorCommand = "eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity";
+               Command command = commandService.getCommand(openInBulkEditorCommand);
+               if(command.isDefined()){
+                       Map<String, UUID> params = new HashMap<String, UUID>();
+                       params.put(openInBulkEditorCommand+".uuid", ((ICdmBase) selectedObject).getUuid()); //$NON-NLS-1$
+                       ParameterizedCommand parameterizedCommand = ParameterizedCommand.generateCommand(command, params);
+                       try {
+                               if(parameterizedCommand!=null){
+                                       handlerService.executeCommand(parameterizedCommand, null);
+                                       return;
+                               }
+                               else{
+                                       handlerService.executeCommand(command.getId(), null);
+                                       return;
+                               }
+                       } catch (NotDefinedException nde) {
+                               throw new RuntimeException("Could not find open command: " + command.getId()); //$NON-NLS-1$
+                       } catch (Exception exception) {
+                               MessagingUtils.error(NavigationUtil.class, "An exception occured while trying to execute "+command.getId(), exception); //$NON-NLS-1$
+                       }
+               }
+       }
+
        /**
         * <p>openEmpty</p>
         *
index 984d7cf0a187d3f44a8315e11f4cf1393c60b426..3d190f9a13014380f39110014633a983f0656d42 100644 (file)
@@ -73,7 +73,7 @@ public class RecentNamesContributionItem extends ContributionItem {
        /** {@inheritDoc} */
        @Override
        public void fill(Menu parent, int index) {
-               getRecentWindows().fill(parent, index);
+       //      getRecentWindows().fill(parent, index);
        }
 
        /* (non-Javadoc)
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyLabelProvider.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyLabelProvider.java
deleted file mode 100644 (file)
index a175246..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.navigation.key.polytomous;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-
-/**
- * @author n.hoffmann
- *
- */
-public class PolytomousKeyLabelProvider extends ColumnLabelProvider implements
-               ILabelProvider {
-
-}
index 6dc27291f4ebf1018645483116dab8b357b10725..90119ecc4329dcc47682657ee4f72caac647f74f 100644 (file)
@@ -11,6 +11,7 @@ import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.action.GroupMarker;
 import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.ISelection;
@@ -147,7 +148,7 @@ public class PolytomousKeyViewPart extends ViewPart implements
                viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 
                viewer.setContentProvider(new PolytomousKeyContentProvider());
-               viewer.setLabelProvider(new PolytomousKeyLabelProvider());
+               viewer.setLabelProvider(new ColumnLabelProvider());
 
                viewer.addDoubleClickListener(new IDoubleClickListener() {
 
index 36e87ee8548e6066c0a1e850871bf4dda435a173..dcf68d3608593395ddeef580d518f7114a932be6 100644 (file)
@@ -16,6 +16,7 @@ import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
+import eu.etaxonomy.cdm.hibernate.HHH_9751_Util;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -41,10 +42,8 @@ public class TaxonNodeContentProvider implements ITreeContentProvider {
                if(parentElement instanceof ITaxonTreeNode){
                    ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement);
                        List<TaxonNode> childrenSet = treeNode.getChildNodes();
-                       while (childrenSet.contains(null)){
-                           childrenSet.remove(null);
-                       }
-                   children = childrenSet.toArray();
+                       HHH_9751_Util.removeAllNull(childrenSet);
+                       children = childrenSet.toArray();
 
                }
 
index 33c0be7541f96d1dbd65474211ee049abc2158f4..035397f3c2b3e85b7cf17e0ddd90e6175d3d7666 100644 (file)
@@ -198,14 +198,9 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
                                return Status.CANCEL_STATUS;
                        }
 
-                       if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                           AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, (TaxonNode)targetITaxonTreeNode, MovingType.CHILD);
-                           NavigationUtil.executeOperation(operation, null);
-                       } else {
-                           AbstractPostOperation operation = new MoveTaxonOperation
-                                   ("Move Taxon", workspaceUndoContext, uuids, targetITaxonTreeNode, this, taxonNavigator, MovingType.CHILD);
-                           NavigationUtil.executeOperation(operation);
-            }
+                       AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, (TaxonNode)targetITaxonTreeNode, MovingType.CHILD);
+                       NavigationUtil.executeOperation(operation, null);
+                       
 
                        logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
                        return Status.OK_STATUS;
@@ -221,14 +216,9 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
                                        return Status.CANCEL_STATUS;
                                }
 
-                               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                                   AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, (TaxonNode)targetITaxonTreeNode, MovingType.CHILD);
-                                   NavigationUtil.executeOperation(operation, null);
-                               } else {
-                                   AbstractPostOperation operation = new MoveTaxonOperation
-                                           ("Move Taxon", workspaceUndoContext, uuids, targetITaxonTreeNode, this, taxonNavigator, MovingType.CHILD);
-                                   NavigationUtil.executeOperation(operation);
-                               }
+                               AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, (TaxonNode)targetITaxonTreeNode, MovingType.CHILD);
+                               NavigationUtil.executeOperation(operation, null);
+                               
 
                                logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
                                return Status.OK_STATUS;
@@ -240,14 +230,9 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
                                }
                                TaxonNode targetNode = (TaxonNode) targetITaxonTreeNode;
 
-                               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                                   AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, targetNode, MovingType.BEHIND);
-                                   NavigationUtil.executeOperation(operation, null);
-                               } else {
-                                   AbstractPostOperation operation = new MoveTaxonOperation
-                                           ("Move Taxon", workspaceUndoContext, uuids, targetNode, this, taxonNavigator, MovingType.BEHIND);
-                                   NavigationUtil.executeOperation(operation);
-                               }
+                               AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, targetNode, MovingType.BEHIND);
+                               NavigationUtil.executeOperation(operation, null);
+                               
                                logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
                                return Status.OK_STATUS;
 //                     }else if (returnCode == 2){
index 1b09a29e3fba5f73da3d4a946f08dd7f4f9bc242..aebb25af9e84aa9ffc9dec55798d1f9f3107218f 100644 (file)
@@ -62,7 +62,7 @@ public class CreateClassificationHierarchyHandler extends AbstractHandler {
                     taxonNavigator.refresh();
                 } catch (Exception e) {
                     MessagingUtils.messageDialog("Failed to open Editor", CreateClassificationHierarchyHandler.class,
-                            "Could not open ChecklistView. The hierarchy is corrupted!", e);
+                            "Could not open distribution view. The hierarchy is corrupted!", e);
                 }
             }
         }
index 374ca7e0eadd4f450e0f190621e37fe2bf501e42..c6d53ad380c51dde0abcb01d6db72cd1bfd42831 100644 (file)
@@ -23,10 +23,9 @@ import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.service.config.NodeDeletionConfigurator.ChildHandling;
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.config.NodeDeletionConfigurator.ChildHandling;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -47,21 +46,15 @@ public class RemotingDeleteTaxonNodeHandler extends RemotingCdmHandler {
     private TaxonDeletionConfigurator config;
     private Set<ITaxonTreeNode> treeNodes;
 
-    /**
-     * @param label
-     */
     public RemotingDeleteTaxonNodeHandler() {
         super(TaxonNavigatorLabels.DELETE_TAXON_NODE_LABEL);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#allowOperations(org.eclipse.core.commands.ExecutionEvent)
-     */
     @Override
     public IStatus allowOperations(ExecutionEvent event) {
         TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
 
-        Iterator selectionIterator = selection.iterator();
+        Iterator<?> selectionIterator = selection.iterator();
         treeNodes = new HashSet<ITaxonTreeNode>();
 
         while (selectionIterator.hasNext()){
@@ -99,15 +92,20 @@ public class RemotingDeleteTaxonNodeHandler extends RemotingCdmHandler {
 
             }
             TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
-            if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){
-                if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too.")){
-                    return Status.CANCEL_STATUS;
-                }
-            } else if (taxonNode instanceof Classification && !taxonNode.hasChildNodes()){
-                if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification?")){
-                    return Status.CANCEL_STATUS;
-                }
-            } else {
+                       if (taxonNode instanceof Classification) {
+                               String message;
+                               if (taxonNode.hasChildNodes()) {
+                                       message = "Do you really want to delete the classification? The tree has children, they will be deleted, too.";
+                               } else {
+                                       message = "Do you really want to delete the classification?";
+                               }
+                               if (!DeleteConfiguratorDialog.openConfirm(
+                                               HandlerUtil.getActiveShell(event), "Confirm Deletion",
+                                               message)) {
+                                       return Status.CANCEL_STATUS;
+                               }
+                       }
+            else {
 
                 if (taxonNode.hasChildNodes()){
                     DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(
@@ -142,9 +140,6 @@ public class RemotingDeleteTaxonNodeHandler extends RemotingCdmHandler {
         return Status.OK_STATUS;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#prepareOperation(org.eclipse.core.commands.ExecutionEvent)
-     */
     @Override
     public AbstractOperation prepareOperation(ExecutionEvent event) {
         return new RemotingDeleteTaxonNodeOperation(event.getTrigger(),
@@ -153,13 +148,8 @@ public class RemotingDeleteTaxonNodeHandler extends RemotingCdmHandler {
                 config);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#onComplete()
-     */
     @Override
     public void onComplete() {
-        // TODO Auto-generated method stub
-
     }
 
 }
index ea53a013928a74a8022c76ca106c8576c73f7841..97aa07b518c5a0a539a61585efe1d009b1054c4f 100644 (file)
@@ -57,9 +57,6 @@ public class CreateClassification extends AbstractPersistentPostOperation {
 
        }
 
-       /* (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,7 +66,7 @@ public class CreateClassification extends AbstractPersistentPostOperation {
 
                if(classification.getReference() == null){
                        Reference reference = ReferenceFactory.newGeneric();
-                       reference.setTitleCache(classification.getTitleCache());
+                       reference.setTitle(classification.getTitleCache());
                        classification.setReference(reference);
                }
 
@@ -80,9 +77,6 @@ public class CreateClassification extends AbstractPersistentPostOperation {
                return postExecute(classification);
        }
 
-       /* (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)
@@ -90,9 +84,6 @@ public class CreateClassification extends AbstractPersistentPostOperation {
                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 d0a9d929be910d23db55dbad789571b1b0540cfa..ec3bf88574020f95b159cfbe3964e1fdcb163519 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Printpublisher Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Require-Bundle: org.eclipse.osgi,
  org.eclipse.ui,
  eu.etaxonomy.taxeditor.cdmlib,
index ebe80b9139ad0efe7ba91043b2b71c62825b415a..4c8f6d5bc5308bcedf5fd57b534ba05b5d2d2d1a 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <artifactId>taxeditor-parent</artifactId>
                <groupId>eu.etaxonomy</groupId>
-               <version>4.2.0-SNAPSHOT</version>
+               <version>4.4.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index cd2696b6bae2aa0edd976815b8951be773a1350d..f650c3f732b2ff98126ec829cd1afecdb4c30ef0 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: DataStore Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.cdm,
index 29fb7936d042347de9fa285c9d33b3b62461cc26..bec383a23d8ba0945ac574b8ca5cbe902b80980a 100644 (file)
@@ -1,6 +1,6 @@
 #Properties file for eu.etaxonomy.taxeditor.store\r
 page.name = Taxonomic Editor\r
-page.name.0 = Description\r
+page.name.0 = Factual Data\r
 page.name.1 = Features\r
 page.name.2 = Distribution Status\r
 page.name.3 = Taxonomic\r
@@ -34,6 +34,8 @@ view.name.3 = Supplemental Data
 view.name.4 = Details\r
 view.name.5 = Use Records\r
 view.name.6 = Derivative Search\r
+view.name.7 = Specimen Search\r
+\r
 editor.name = Defined Term Editor\r
 menu.label = Show View\r
 command.label = Derivative Search\r
@@ -59,7 +61,6 @@ command.name.1 = Create Datasource
 command.name.3 = Update Datasource\r
 command.name.4 = Show Login Window\r
 command.name.5 = Open Defined Term Editor\r
-commandParameter.name = inputType\r
 commandParameter.name.0 = inputType\r
 command.name.6 = New Defined Term\r
 command.name.7 = New Term Vocabulary\r
@@ -124,9 +125,13 @@ colorDefinition.label.14 = Disabled Name Editor Field
 colorDefinition.label.15 = Editor On Error\r
 page.name.26 = Specimens and FieldUnits\r
 page.name.27 = Media\r
-page.name.28 = Checklist Editor\r
+page.name.28 = Distribution Editor\r
 page.name.29 = Editor Profile\r
 page.name.30 = Language\r
+page.name.32 = Taxon Navigator\r
+page.name.33 = Sort of Taxonnodes\r
+page.name.34 = Debug Preferences\r
+page.name.35 = Areas for Distributions\r
 command.label.clone = Clone\r
 command.label.openInSpecimenEditor = Open in Specimen Editor\r
 page.name.31 = Order of Taxonnodes\r
@@ -139,6 +144,7 @@ command.name.12 = Connect
 wizard.name.18 = CSV\r
 wizard.name.19 = CSV_NAME\r
 wizard.name.20 = CSV_PRINT\r
+wizard.name.21 = Specimen Search\r
 activity.description = DELETE permission dependent ui contributions\r
 activity.name = Delete\r
 activity.description.0 = UPDATE permission dependent ui contributions\r
@@ -149,13 +155,8 @@ activity.description.2 = ROLE_USER_MANAGER dependent ui contributions
 activity.name.2 = UserManagement\r
 activity.description.3 = ROLE_PROJECT_MANAGER dependent ui contributions\r
 activity.name.3 = ProjectManagement\r
-Bundle-Vendor = EDIT\r
-Bundle-Name = DataStore Bundle\r
 command.name.13 = delete\r
 command.name.14 = delete\r
-page.name.32 = Taxon Navigator\r
-page.name.33 = Sort of Taxonnodes\r
-page.name.34 = Debug Preferences\r
 command.name.15 = Open\r
 view.name.SESSIONS = Sessions\r
 command.label.SESSION = Sessions\r
@@ -164,4 +165,9 @@ command.label.RE_CONNECT = Re-Connect
 command.name.CONNECT = Connect\r
 command.name.RE_CONNECT = Re-Connect\r
 command.name.OPEN_CLASSIFICATION_WIZARD = Open Classification Wizard\r
-command.name.OPEN_TAXONNODE_WIZARD = Open Taxon Node Wizard
\ No newline at end of file
+command.name.OPEN_TAXONNODE_WIZARD = Open Taxon Node Wizard\r
+\r
+command.name.INSPECT_ACTIVE_SESSIONS = Inspect Active Session\r
+viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Classification Wizard\r
+viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxon node Wizard\r
+command.label.CHANGE_PASSWORD = Change password
\ No newline at end of file
index f4b5a5283818540e4a4d09fc7d7efb4a00c2792a..13c9fe5720d04bbfbe99c8b8f50b57130765aadf 100644 (file)
@@ -1,6 +1,6 @@
 #Properties file for eu.etaxonomy.taxeditor.store, German
 page.name = Taxonomischer Editor
-page.name.0 = Beschreibung
+page.name.0 = Faktendaten
 page.name.1 = Merkmal
 page.name.2 = Verbreitungsstatus
 page.name.3 = Taxonomisch
@@ -34,6 +34,8 @@ view.name.3 = Zusatzdaten
 view.name.4 = Details
 view.name.5 = Benutze Datensatz
 view.name.6 = Derivatsuche
+view.name.7 = Specimensuche
+view.name.8 = GBif Specimen Import
 editor.name = Editor f\u00fcr definierte Begriffe 
 menu.label = Zeige Ansicht
 command.label = Derivatsuche
@@ -59,7 +61,6 @@ command.name.1 = Erstelle Datenquelle
 command.name.3 = Aktualisiere Datenquellen
 command.name.4 = Zeige Login Window
 command.name.5 = \u00d6ffne Editor f\u00fcr definierte Begriffe
-commandParameter.name = inputTyp
 commandParameter.name.0 = inputTyp
 command.name.6 = Neuer definierter Begriff
 command.name.7 = Neues Begriffsvokabular
@@ -124,15 +125,16 @@ colorDefinition.label.14 = Gesperrtes Namenseditierfeld
 colorDefinition.label.15 = Editor fehlerhaft
 page.name.26 = Specimens und Field Units
 page.name.27 = Media
-page.name.28 = Checklisten Editor
+page.name.28 = Verbreitungs-Editor
 page.name.29 = Editor Profil
 page.name.30 = Sprache
 page.name.32 = Taxon Navigator
 page.name.33 = Sortierung im TaxonNavigator
 page.name.34 = Debug Einstellungen
+page.name.35 = Gebiete für Verbreitungsdaten
 command.label.clone = Klonen
 command.label.openInSpecimenEditor = \u00d6ffnen im Specimen-Editor
-page.name.31 = Taxon-Node-Reihenfolge
+page.name.31 = Taxonknoten-Reihenfolge
 extension.name.0 = Popup Menu Befehle
 command.name.8 = Datenquelle klonen
 command.name.9 = \u00d6ffne Feature Tree-Wizard
@@ -142,10 +144,19 @@ command.name.12 = Verbinden
 wizard.name.18 = CSV
 wizard.name.19 = CSV_NAME
 wizard.name.20 = CSV_PRINT
+wizard.name.21 = Specimen Suche
+activity.description = DELETE abhängige UI-Erweiterungen
+activity.name = Löschen
+activity.description.0 = UPDATE abhängige UI-Erweiterungen
+activity.name.0 = Aktualisieren
+activity.description.1 = CREATE abhängige UI-Erweiterungen
+activity.name.1 = Löschen
+activity.description.2 = ROLE_USER_MANAGER abhängige UI-Erweiterungen
+activity.name.2 = User-Management
+activity.description.3 = ROLE_PROJECT_MANAGER abhängige UI-Erweiterungen
+activity.name.3 = Projekt-Management
 command.name.13 = L\u00f6schen
 command.name.14 = L\u00f6schen
-page.name.32 = Taxon Navigator
-page.name.33 = Reihenfolge der Taxon-Nodes
 command.name.15 = \u00d6ffnen
 view.name.SESSIONS = Sessions
 command.label.SESSION = Sessions
@@ -153,4 +164,10 @@ command.label.CONNECT = Verbinden
 command.label.RE_CONNECT = Aktualisiere Verbindung
 command.name.CONNECT = Verbinden
 command.name.RE_CONNECT = Aktualisiere Verbindung
-command.name.OPEN_CLASSIFICATION_WIZARD = \u00d6ffne Klassifikations-Wizardcommand.name.OPEN_TAXONNODE_WIZARD = \u00d6ffne Taxon Node-Wizard
\ No newline at end of file
+command.name.OPEN_CLASSIFICATION_WIZARD = \u00d6ffne Klassifikations-Wizard
+command.name.OPEN_TAXONNODE_WIZARD = \u00d6ffne Taxonknoten-Wizard
+
+command.name.INSPECT_ACTIVE_SESSIONS = Aktive Session untersuchen
+viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Klassifikations-Wizard
+viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxonknoten-Wizard
+command.label.CHANGE_PASSWORD = Kennwort Ã¤ndern
\ No newline at end of file
index 9675726a1307ed57c1435cd81629c337afb97a17..281ed06e8ab6ba2b186593dbfdf29fed3d321993 100644 (file)
@@ -53,3 +53,64 @@ CdmStoreConnector_REASON=Reason:
 CdmStoreConnector_SCHEME_NOT_COMPATIBLE=The database schema for the chosen datasource '%s' \n is not compatible for this version of the taxonomic editor. \n\n%s
 CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE=Please update the chosen datasource or choose a new data source to connect to in the Datasource View.
 CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE=Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible datasource
+
+RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER=Please choose a compatible cdm-server or update the chosen cdm-server
+RemotingLoginDialog_LABEL_ADVANCED=advanced
+RemotingLoginDialog_LABEL_CDM_INSTANCE=CDM Instance : 
+RemotingLoginDialog_LABEL_CDM_SERVER=CDM Server : 
+RemotingLoginDialog_LABEL_CONNECT=Connect
+RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION=Editor CDM Version :
+RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION=Editor Cdmlib Version :
+RemotingLoginDialog_LABEL_LOGIN=Login
+RemotingLoginDialog_LABEL_LOGIN_COLON=Login : 
+RemotingLoginDialog_LABEL_PASSWORD=Password : 
+RemotingLoginDialog_LABEL_PORT=Port : 
+RemotingLoginDialog_LABEL_REFRESH=Refresh
+RemotingLoginDialog_LABEL_REMEMBER_ME=Remember Me
+RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES=Retrieve Server Instances
+RemotingLoginDialog_LABEL_SERVER_CDM_VERSION=Server CDM Version :
+RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION=Server Cdmlib Version :
+RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER=Stop Managed Server
+RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY=User login cannot be empty
+RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER=Port should be an integer
+RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY=Password cannot be empty
+RemotingLoginDialog_SERVER_LAUNCH_ERROR=CDM Server launch error
+RemotingLoginDialog_STATUS_AVAILABLE=Available
+RemotingLoginDialog_STATUS_CHECKING=Checking ...
+RemotingLoginDialog_STATUS_ERROR=Error
+RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND=No Instances Found
+RemotingLoginDialog_STATUS_NOT_AVAILABLE=Not Available
+RemotingLoginDialog_STATUS_NOT_COMPATIBLE=Not Compatible
+RemotingLoginDialog_STATUS_NOT_STARTED=Not Started
+RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED=Remoting not activated
+RemotingLoginDialog_STATUS_RETRIEVING=Retrieving ...
+RemotingLoginDialog_STATUS_STARTED=Started
+RemotingLoginDialog_UPDATE_EDITOR=Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible cdm-server
+RemotingLoginDialog_COULD_NOT_STOP_SERVER=Could not stop managed server running at port %s. Please stop it manually.
+RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE=Error generating server config file
+RemotingLoginDialog_ERROR_STARTING_SERVER=Error starting managed server
+RemotingLoginDialog_ERROR_STOPPING_SERVER=Error stopping managed server
+RemotingLoginDialog_GENERATING_CONFIG_FILE=Generating datasources config file for %s
+RemotingLoginDialog_JOB_SERVER_LAUNCH=Managed CDM Server Launch
+RemotingLoginDialog_STARTING_MGD_SERVER=Starting Managed CDM Server. This may take a while.
+RemotingLoginDialog_TASK_LAUNCHING_SERVER=Launching Managed CDM Server
+
+EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER=Please create or save user '%s' before changing password
+EditPasswordElement_USERNAME_DOES_NOT_EXIST=Username does not exist
+PasswordWizard_COULD_NOT_CHANGE_PWD=Could not change password
+PasswordWizard_OLD_PWD_INCORRECT=The old password is not correct.
+PasswordWizard_PROBLEM_WITH_CHANGING_PWD=Problem with changing password
+PasswordWizard_PWD_COULD_NOT_BE_CHANGED=The password could not be changed. 
+PasswordWizardPage_CHANGE_PASSWORD=Change password
+PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM=Change password and confirm with current password
+PasswordWizardPage_NEW_PASSWORD=New Password
+PasswordWizardPage_OLD_PASSWORD=Old Password
+PasswordWizardPage_PASSWORD_MIN_CHARACTER=Password has to have at least %s characters
+PasswordWizardPage_PASSWORDS_DO_NOT_MATCH=The passwords do not match
+PasswordWizardPage_REPEAT_PASSWORD=Repeat Password
+
+SearchManager_LARGE_RESULT_EXPECTED=Large result expected
+SearchManager_LONG_SEARCH_WARNING=The current search will return %s objects. This will take a long time and/or might render the editor unusable. Please consider refining your search.\nSearch anyway?
+
+SupplementalDataViewPart_VIEWER_NAME=Supplemental Data
+DetailsViewPart_VIEWER_NAME=Details
\ No newline at end of file
index 8f3745f4fc6329a194e330751d65cdbb1c96ab58..be6719e8f661641dd6ab7422e58b7059c1223c9c 100644 (file)
@@ -53,3 +53,64 @@ CdmStoreConnector_REASON=Grund:
 CdmStoreConnector_SCHEME_NOT_COMPATIBLE=Das Datenbankschema für die gewählte Datenquelle '%s' \n ist nicht kompatibel mit dieser Version des Editors. \n\n%s
 CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE=Bitte aktualisieren Sie die ausgewählte Datenquelle oder wählen Sie eine neue Datenquelle aus.
 CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE=Bitte aktualisieren Sie den Taxonomic Editor (Hilfe->Suche nach Updates) oder wählen sie eine kompatible Datenquelle
+
+RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER=Bitte wählen Sie einen kompatiblen CDM-Server oder aktualisieren sie den CDM-Server
+RemotingLoginDialog_LABEL_ADVANCED=Erweitert
+RemotingLoginDialog_LABEL_CDM_INSTANCE=CDM Instanz : 
+RemotingLoginDialog_LABEL_CDM_SERVER=CDM-Server : 
+RemotingLoginDialog_LABEL_CONNECT=Verbinden
+RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION=Editor CDM Version :
+RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION=Editor Cdmlib Version :
+RemotingLoginDialog_LABEL_LOGIN=Login
+RemotingLoginDialog_LABEL_LOGIN_COLON=Login : 
+RemotingLoginDialog_LABEL_PASSWORD=Kennwort : 
+RemotingLoginDialog_LABEL_PORT=Port : 
+RemotingLoginDialog_LABEL_REFRESH=Aktualisieren
+RemotingLoginDialog_LABEL_REMEMBER_ME=Login Daten merken
+RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES=Abrufen der Serverinstanzen
+RemotingLoginDialog_LABEL_SERVER_CDM_VERSION=Server CDM Version :
+RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION=Server Cdmlib Version :
+RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER=Beende internen CDM-Server
+RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY=Nutzer-Login darf nicht leer sein
+RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER=Port muss eine Zahl sein
+RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY=Kennwort darf nicht leer sein
+RemotingLoginDialog_SERVER_LAUNCH_ERROR=CDM-Server Startfehler
+RemotingLoginDialog_STATUS_AVAILABLE=Verfügbar
+RemotingLoginDialog_STATUS_CHECKING=Ãœberprüfe ...
+RemotingLoginDialog_STATUS_ERROR=Error
+RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND=Keine Instanzen gefunden
+RemotingLoginDialog_STATUS_NOT_AVAILABLE=Nicht verfügbar
+RemotingLoginDialog_STATUS_NOT_COMPATIBLE=Nicht kompatibel
+RemotingLoginDialog_STATUS_NOT_STARTED=Nicht gestartet
+RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED=Remoting nicht aktiviert
+RemotingLoginDialog_STATUS_RETRIEVING=Abrufen ...
+RemotingLoginDialog_STATUS_STARTED=Gestartet
+RemotingLoginDialog_UPDATE_EDITOR=Bitte aktualisieren Sie den Taxonomic Editor (Hifle->Suche nach Updates) oder wählen Sie einen kompatiblen CDM-Server
+RemotingLoginDialog_COULD_NOT_STOP_SERVER=Konte den internen CDM-Server auf Port %s nicht beenden. Bitte beenden sie ihn manuell.
+RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE=Fehler beim Generieren der Config-Datei für den Server
+RemotingLoginDialog_ERROR_STARTING_SERVER=Fehler beim Starten des internen CDM-Servers
+RemotingLoginDialog_ERROR_STOPPING_SERVER=Fehler beim Beenden des internen CDM-Servers
+RemotingLoginDialog_GENERATING_CONFIG_FILE=Generiere Config-Datei für Datenquellen für %s
+RemotingLoginDialog_JOB_SERVER_LAUNCH=Starte internen CDM-Server
+RemotingLoginDialog_STARTING_MGD_SERVER=Starte internen CDM-Server. Dies kann eine Weile dauern.
+RemotingLoginDialog_TASK_LAUNCHING_SERVER=Starte internen CDM-Server
+
+EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER=Bitte erstellen oder speichern sie den Nutzer '%s', bevor Sie das Kennwort Ã¤ndern
+EditPasswordElement_USERNAME_DOES_NOT_EXIST=Nutzername existiert nicht
+PasswordWizard_COULD_NOT_CHANGE_PWD=Konnte das Kennwort nicht Ã¤ndern
+PasswordWizard_OLD_PWD_INCORRECT=Das alte Kennwort ist inkorrekt
+PasswordWizard_PROBLEM_WITH_CHANGING_PWD=Fehler beim Ã„ndern des Kennworts
+PasswordWizard_PWD_COULD_NOT_BE_CHANGED=Das Kennwort konnte nicht geändert werden 
+PasswordWizardPage_CHANGE_PASSWORD=Kennwort Ã¤ndern
+PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM=Kennwort Ã¤ndern und mit altem Kennwort bestätigen
+PasswordWizardPage_NEW_PASSWORD=Neues Kennwort
+PasswordWizardPage_OLD_PASSWORD=Altes Kennwort
+PasswordWizardPage_PASSWORD_MIN_CHARACTER=Kennwort muss mindesten %s Zeichen enthalten
+PasswordWizardPage_PASSWORDS_DO_NOT_MATCH=Die Kennwörter stimmen nicht Ã¼berein
+PasswordWizardPage_REPEAT_PASSWORD=Kennwort wiederholen
+
+SearchManager_LARGE_RESULT_EXPECTED=Große Anzahl an Suchergebnissen
+SearchManager_LONG_SEARCH_WARNING=Die aktuelle Suche wird %s Objekte laden. Dies kann einige Zeit dauern und den Editor währenddessen unbedienbar machen. Bitte erstellen sie eine detailliertere Suche.\nTrotzdem suchen?
+
+SupplementalDataViewPart_VIEWER_NAME=Zusatzdaten
+DetailsViewPart_VIEWER_NAME=Details
diff --git a/eu.etaxonomy.taxeditor.store/icons/default_derivate-16x16-32.png b/eu.etaxonomy.taxeditor.store/icons/default_derivate-16x16-32.png
new file mode 100644 (file)
index 0000000..366c696
Binary files /dev/null and b/eu.etaxonomy.taxeditor.store/icons/default_derivate-16x16-32.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 3ecd5c1..9b1bca5
             name="%view.name"
             restorable="true">
       </view>
+      <view
+        allowMultiple="true"
+        class="eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"
+        id="eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"
+        name="%view.name.7">
+         </view>
+         <view
+        allowMultiple="true"
+        class="eu.etaxonomy.taxeditor.view.dataimport.GbifResponseImportView"
+        id="eu.etaxonomy.taxeditor.view.dataimport.GbifResponseImportView"
+        name="%view.name.8">
+         </view>
       <view  
                        name="%view.name.0"  
                        category="org.eclipse.ui"  
                </reference>
             </visibleWhen>
          </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.store.openPasswordWizzard"
+               label="%command.label.CHANGE_PASSWORD"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isUserLoggedIn">
+               </reference>
+            </visibleWhen>
+         </command>
          <separator
                name="eu.etaxonomy.taxeditor.application.filemenu.login"
                visible="true">
       <command
             defaultHandler="eu.etaxonomy.taxeditor.handler.OpenInspectSessionsHandler"
             id="eu.etaxonomy.taxeditor.store.open.InspectSessionsDialog"
-            name="Inspect Active Session">
+            name="%command.name.INSPECT_ACTIVE_SESSIONS">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.handler.OpenHandler"
             id="eu.etaxonomy.taxeditor.io.import.tcs"
             name="%wizard.name">
       </wizard>
+       <wizard
+            category="eu.etaxonomy.taxeditor.import.category.cdm"
+            class="eu.etaxonomy.taxeditor.view.dataimport.SpecimenSearchWizard"
+            id="eu.etaxonomy.taxeditor.view.dataimport.SpecimenSearchWizard"
+            name="%wizard.name.21">
+            <description>
+                %wizard.description
+            </description>
+        </wizard>
+   
    <!--   <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.JaxbImportWizard"
    <viewCommandMapping
          commandId="eu.etaxonomy.taxeditor.command.openClassificationWizard"
          selection="eu.etaxonomy.cdm.model.taxon.Classification"
-         viewerName="Classification Wizard">
+         viewerName="%viewCommandMapping.viewerName.CLASSIFICATION_WIZARD">
    </viewCommandMapping>
    <viewCommandMapping
          commandId="eu.etaxonomy.taxeditor.command.openTaxonNodeWizard"
          selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
-         viewerName="TaxonNode Wizard">
+         viewerName="%viewCommandMapping.viewerName.TAXON_NODE_WIZARD">
    </viewCommandMapping>
 </extension>
 </plugin>
index 2068a342e55023e5d77c4dbe95eca7cda8644f1d..ff2aa31176efa0f13040c65d78100bfe7c4a84c3 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-       <version>4.2.0-SNAPSHOT</version>
+       <version>4.4.0-SNAPSHOT</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 7393c60f656bd949f72e45f1f7cc80d7bc31ca37..7440d56ffb6bc2e788d7caa5093ad5f42d65192c 100644 (file)
@@ -72,6 +72,9 @@
                <documentation>
                   The name of the viewer which shows the selected element
                </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
             </annotation>
          </attribute>
          <attribute name="selection" type="string" use="required">
index e71b2d0a20a81bae7d0e29eb375773fbc795914b..c92ef50baa9775ea4113e28cbfe087d697d6168f 100644 (file)
@@ -45,12 +45,10 @@ public class Messages extends NLS {
     public static String CdmViewerContextMenu_OPEN;
     public static String CdmViewerContextMenu_OPEN_IN;
     public static String ChangeConnectionHandler_ALREADY_CONNECTING;
-    public static String ChangeConnectionHandler_CONFIRM_DATASOURCE;
     public static String ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY;
     public static String ChangeConnectionHandler_CREATE_DATAMODEL;
     public static String ChangeConnectionHandler_REALLY_CREATE_DATAMODEL;
     public static String ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE;
-    public static String ChangeConnectionHandler_REALLY_WANT_TO_CONNECT;
     public static String ChangeConnectionHandler_NOT_AVAILABLE_REASONS;
     public static String UriWithLabelElement_COULD_NOT_OPEN_BROWSER;
     public static String UriWithLabelElement_INVALID_URL;
@@ -71,7 +69,64 @@ public class Messages extends NLS {
        public static String CdmStoreConnector_SCHEME_NOT_COMPATIBLE;
        public static String CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE;
        public static String CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE;
-    static {
+       public static String DetailsViewPart_VIEWER_NAME;
+    public static String EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER;
+    public static String EditPasswordElement_USERNAME_DOES_NOT_EXIST;
+    public static String PasswordWizard_COULD_NOT_CHANGE_PWD;
+    public static String PasswordWizard_OLD_PWD_INCORRECT;
+    public static String PasswordWizard_PROBLEM_WITH_CHANGING_PWD;
+    public static String PasswordWizard_PWD_COULD_NOT_BE_CHANGED;
+    public static String PasswordWizardPage_CHANGE_PASSWORD;
+    public static String PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM;
+    public static String PasswordWizardPage_NEW_PASSWORD;
+    public static String PasswordWizardPage_OLD_PASSWORD;
+    public static String PasswordWizardPage_PASSWORD_MIN_CHARACTER;
+    public static String PasswordWizardPage_PASSWORDS_DO_NOT_MATCH;
+    public static String PasswordWizardPage_REPEAT_PASSWORD;
+    public static String RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER;
+       public static String RemotingLoginDialog_LABEL_ADVANCED;
+       public static String RemotingLoginDialog_LABEL_CDM_INSTANCE;
+       public static String RemotingLoginDialog_LABEL_CDM_SERVER;
+       public static String RemotingLoginDialog_LABEL_CONNECT;
+       public static String RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION;
+       public static String RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION;
+       public static String RemotingLoginDialog_LABEL_LOGIN;
+       public static String RemotingLoginDialog_LABEL_LOGIN_COLON;
+       public static String RemotingLoginDialog_LABEL_PASSWORD;
+       public static String RemotingLoginDialog_LABEL_PORT;
+       public static String RemotingLoginDialog_LABEL_REFRESH;
+       public static String RemotingLoginDialog_LABEL_REMEMBER_ME;
+       public static String RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES;
+       public static String RemotingLoginDialog_LABEL_SERVER_CDM_VERSION;
+       public static String RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION;
+       public static String RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER;
+       public static String RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY;
+       public static String RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER;
+       public static String RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY;
+       public static String RemotingLoginDialog_SERVER_LAUNCH_ERROR;
+       public static String RemotingLoginDialog_STATUS_AVAILABLE;
+       public static String RemotingLoginDialog_STATUS_CHECKING;
+       public static String RemotingLoginDialog_STATUS_ERROR;
+       public static String RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND;
+       public static String RemotingLoginDialog_STATUS_NOT_AVAILABLE;
+       public static String RemotingLoginDialog_STATUS_NOT_COMPATIBLE;
+       public static String RemotingLoginDialog_STATUS_NOT_STARTED;
+       public static String RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED;
+       public static String RemotingLoginDialog_STATUS_RETRIEVING;
+       public static String RemotingLoginDialog_STATUS_STARTED;
+       public static String RemotingLoginDialog_UPDATE_EDITOR; 
+       public static String RemotingLoginDialog_COULD_NOT_STOP_SERVER;
+       public static String RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE;
+       public static String RemotingLoginDialog_ERROR_STARTING_SERVER;
+       public static String RemotingLoginDialog_ERROR_STOPPING_SERVER;
+       public static String RemotingLoginDialog_GENERATING_CONFIG_FILE;
+       public static String RemotingLoginDialog_JOB_SERVER_LAUNCH;
+       public static String RemotingLoginDialog_STARTING_MGD_SERVER;
+       public static String RemotingLoginDialog_TASK_LAUNCHING_SERVER;
+    public static String SearchManager_LARGE_RESULT_EXPECTED;
+    public static String SearchManager_LONG_SEARCH_WARNING;
+       public static String SupplementalDataViewPart_VIEWER_NAME;
+       static {
         // initialize resource bundle
         NLS.initializeMessages(BUNDLE_NAME, Messages.class);
     }
index 0275cc47100a772f81bd429b74d96f82ddc37257..ccdd5e28591f67096c51dc5d77fa3b63f7914fc8 100644 (file)
@@ -174,7 +174,7 @@ public class CdmDataSourceRepository{
         */
        public static ICdmDataSource createDefaultH2DataSource() {
            ICdmDataSource h2DataSource = CdmDataSource.NewH2EmbeddedInstance(
-                DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode());
+                       DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode(true));
         save(h2DataSource.getName(), h2DataSource);
         return h2DataSource;
        }
@@ -188,7 +188,7 @@ public class CdmDataSourceRepository{
        public static boolean setCurrentCdmSource(ICdmSource cdmSource) {
                currentCdmSource = cdmSource;
                NomenclaturalCode dataSourceNomenclaturalCode = cdmSource.getNomenclaturalCode();
-               NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode();
+               NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode(true);
 
                if( dataSourceNomenclaturalCode != null && ! dataSourceNomenclaturalCode.equals(applicationNomenclaturalCode)){
                        PreferencesUtil.setPreferredNomenclaturalCode(dataSourceNomenclaturalCode);
index 04c9eb4b51322980ffa8363aa949d837ce3128bf..b225e7797cb5f7da9d80054d1247dc8c6b583b03 100644 (file)
@@ -258,7 +258,7 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                nomenclaturalCodeGroup = new Group(composite , SWT.NONE);
                nomenclaturalCodeGroup.setLayout(new GridLayout());
 
-               nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode();
+               nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode(true);
 
                for (final NomenclaturalCode code : NomenclaturalCodeHelper.getSupportedCodes()) {
                        Button button = new Button(nomenclaturalCodeGroup, SWT.RADIO);
index 5490df762c9671532d5b4f4a9a608c58a3314054..8ea27ce46b5811736c2f2a0d5ea8ff0fe17b90e0 100644 (file)
-// $Id$\r
-/**\r
- * Copyright (C) 2009 EDIT\r
- * European Distributed Institute of Taxonomy\r
- * http://www.e-taxonomy.eu\r
- *\r
- * The contents of this file are subject to the Mozilla Public License Version 1.1\r
- * See LICENSE.TXT at the top of this package for the full license terms.\r
- */\r
-package eu.etaxonomy.taxeditor.editor.definedterm;\r
-\r
-import org.apache.commons.lang.StringUtils;\r
-import org.eclipse.jface.viewers.StyledCellLabelProvider;\r
-import org.eclipse.jface.viewers.StyledString;\r
-import org.eclipse.jface.viewers.StyledString.Styler;\r
-import org.eclipse.jface.viewers.ViewerCell;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.custom.StyleRange;\r
-import org.eclipse.swt.graphics.Color;\r
-import org.eclipse.swt.graphics.TextStyle;\r
-import org.eclipse.swt.widgets.Display;\r
-\r
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
-import eu.etaxonomy.cdm.model.common.TermBase;\r
-import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
-\r
-/**\r
- * @author l.morris\r
- * @date 9 Dec 2011\r
- *\r
- */\r
-public class TermLabelProvider extends StyledCellLabelProvider {\r
-\r
-    private static Color vocColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLUE);\r
-    private Styler vocStyler;\r
-\r
-    public TermLabelProvider() {\r
-    }\r
-\r
-    public TermLabelProvider(Styler vocStyler){\r
-        this.vocStyler = vocStyler;\r
-    }\r
-\r
-    /*\r
-     * (non-Javadoc)\r
-     *\r
-     * @see\r
-     * org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.\r
-     * jface.viewers.ViewerCell)\r
-     */\r
-    @Override\r
-    public void update(ViewerCell cell) {\r
-        Object element = cell.getElement();\r
-        int columnIndex = cell.getColumnIndex();\r
-\r
-        String text = getText(element);\r
-        cell.setText(text);\r
-\r
-        if (element instanceof TermVocabulary) {\r
-            StyledString styledString = new StyledString(text, getVocabularyStyler());\r
-            StyleRange[] styleRanges;\r
-            styleRanges = styledString.getStyleRanges();\r
-            cell.setStyleRanges(styleRanges);\r
-        }\r
-        super.update(cell);\r
-    }\r
-\r
-    public StyledString getStyledText(Object element) {\r
-\r
-        if (element instanceof TermVocabulary) {\r
-            new StyledString(getText(element), getVocabularyStyler());\r
-        }\r
-        return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);\r
-    }\r
-\r
-    /*\r
-     * (non-Javadoc)\r
-     *\r
-     * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)\r
-     */\r
-\r
-    public String getText(Object element) {\r
-\r
-        if (element instanceof DefinedTermBase) {\r
-            DefinedTermBase<?> dtb = (DefinedTermBase<?>) element;\r
-            if (StringUtils.isNotBlank(dtb.getIdInVocabulary())) {\r
-                return dtb.getIdInVocabulary() + " : " + dtb.getLabel(PreferencesUtil.getGlobalLanguage());\r
-            } else {\r
-                return dtb.getLabel(PreferencesUtil.getGlobalLanguage());\r
-            }\r
-        } else if (element instanceof TermBase) {\r
-            return ((TermBase) element).getTitleCache();\r
-        }\r
-\r
-        // FIXME : must throw an exception here\r
-        return element.toString();\r
-    }\r
-\r
-    private Styler getVocabularyStyler() {\r
-        if (vocStyler == null) {\r
-            vocStyler = new Styler() {\r
-                @Override\r
-                public void applyStyles(TextStyle textStyle) {\r
-                    textStyle.foreground = vocColor;\r
-                }\r
-            };\r
-        }\r
-        return vocStyler;\r
-    }\r
-\r
-}\r
+// $Id$
+/**
+ * Copyright (C) 2009 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.definedterm;
+
+import java.util.ArrayList;
+
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.StyledString.Styler;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyleRange;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.TextStyle;
+import org.eclipse.swt.widgets.Display;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.common.TermBase;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author l.morris
+ * @date 9 Dec 2011
+ *
+ */
+public class TermLabelProvider extends StyledCellLabelProvider {
+
+    private static Color vocColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLUE);
+    private Styler vocStyler;
+
+    public TermLabelProvider() {
+    }
+
+    public TermLabelProvider(Styler vocStyler){
+        this.vocStyler = vocStyler;
+    }
+
+    @Override
+    public void update(ViewerCell cell) {
+        Object element = cell.getElement();
+        int columnIndex = cell.getColumnIndex();
+
+        String text = getText(element);
+        cell.setText(text);
+
+        if (element instanceof TermVocabulary) {
+            StyledString styledString = new StyledString(text, getVocabularyStyler());
+            StyleRange[] styleRanges;
+            styleRanges = styledString.getStyleRanges();
+            cell.setStyleRanges(styleRanges);
+        }
+        super.update(cell);
+    }
+
+    public StyledString getStyledText(Object element) {
+
+        if (element instanceof TermVocabulary) {
+            new StyledString(getText(element), getVocabularyStyler());
+        }
+        return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
+    }
+
+    public String getText(Object element) {
+       if(element instanceof TermBase){
+               TermBase termBase = (TermBase)element;
+               Representation rep = termBase.getRepresentation(PreferencesUtil.getGlobalLanguage());
+               if (rep == null){
+                       rep = termBase.getPreferredRepresentation(new ArrayList<Language>());
+               }
+               String label = rep != null? rep.getLabel() : termBase.getTitleCache();
+               if (element instanceof DefinedTermBase) {
+                       DefinedTermBase<?> dtb = (DefinedTermBase<?>) element;
+                       return CdmUtils.concat(" : ", dtb.getIdInVocabulary(), label);
+
+               } else {
+                       return label;
+               }
+       }
+
+        // FIXME : must throw an exception here
+        return element.toString();
+    }
+
+    private Styler getVocabularyStyler() {
+        if (vocStyler == null) {
+            vocStyler = new Styler() {
+                @Override
+                public void applyStyles(TextStyle textStyle) {
+                    textStyle.foreground = vocColor;
+                }
+            };
+        }
+        return vocStyler;
+    }
+
+}
index 518382f1f1f494a3b3f6e4c211807f0e4e9db7c5..a02e9a73288a0f1c92ae8ee5ce506cf9105fb127 100644 (file)
@@ -101,10 +101,8 @@ public class TermEditorInput extends AbstractDefinedTermEditorInput<DefinedTerm>
      */
     @Override
     public void merge() {
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            CdmStore.getService(IVocabularyService.class).merge(new ArrayList<TermVocabulary>(getRootEntities()), true);
-            updateDefaultFeatureTree();
-        }
+        CdmStore.getService(IVocabularyService.class).merge(new ArrayList<TermVocabulary>(getRootEntities()), true);
+        updateDefaultFeatureTree();
     }
 
     public static FeatureTree getDefaultFeatureTree() {
index 16efff5520ac843b5d9f63c5e16bd6ca3e597be7..36a91960340ee97e7b025ace6011a98f168f1ad5 100644 (file)
@@ -37,8 +37,11 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
+import org.hibernate.proxy.HibernateProxy;
 
 import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.config.FeatureNodeDeletionConfigurator;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureNode;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
@@ -159,7 +162,8 @@ public class EditFeatureTreeWizardPage extends WizardPage implements
         *            object.
         */
        public void setSelectedTree(FeatureTree featureTree) {
-               this.featureTree = featureTree;
+               this.featureTree = HibernateProxyHelper.deproxy(featureTree, FeatureTree.class);
+               this.featureTree.setRoot(HibernateProxyHelper.deproxy(featureTree.getRoot(), FeatureNode.class));
                viewer.setInput(featureTree);
 
                text_title.removeModifyListener(this);
@@ -202,11 +206,8 @@ public class EditFeatureTreeWizardPage extends WizardPage implements
                                                .getAdditionalFeatures();
                                for (Feature feature : additionalFeatures) {
                                        FeatureNode child = FeatureNode.NewInstance(feature);
-                                       if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                                           CdmStore.getService(IFeatureNodeService.class).merge(child, true);
-                                       } else {
-                                           CdmStore.getService(IFeatureNodeService.class).saveOrUpdate(child);
-                                       }
+                                       CdmStore.getService(IFeatureNodeService.class).merge(child, true);
+                                       
                                        parent.addChild(child);
                                }
                                viewer.refresh();
@@ -224,6 +225,9 @@ public class EditFeatureTreeWizardPage extends WizardPage implements
                                FeatureNode featureNode = (FeatureNode) selectedObject;
                                FeatureNode parent = featureNode.getParent();
                                parent.removeChild(featureNode);
+                               
+                               CdmStore.getService(IFeatureNodeService.class).deleteFeatureNode(featureNode.getUuid(), new FeatureNodeDeletionConfigurator());
+                               
                        }
                        viewer.refresh();
                }
index d65ad420e94c6cb1c34220b7246246ccedccc893..c8c58d3e0602c2f0a81169e21d8c029f0108fe2e 100644 (file)
@@ -70,11 +70,7 @@ public class FeatureTreeEditorWizard extends Wizard implements ICdmEntitySession
        public boolean performFinish() {
                try{
                        if (selectedFeatureTree != null){
-                           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                               CdmStore.getService(IFeatureTreeService.class).merge(selectedFeatureTree, true);
-                           } else {
-                               CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(selectedFeatureTree);
-                           }
+                           CdmStore.getService(IFeatureTreeService.class).merge(selectedFeatureTree, true);
                        }
                        conversation.commit();
                }finally{
index 409dae7e618292496c491b0506838e6f42cda02b..a7abcb38bb498c2f8fe4163769a604ef0c5bf964 100644 (file)
@@ -151,11 +151,8 @@ public class SelectFeatureTreeWizardPage extends WizardPage implements ISelectio
                        featureTree.setTitleCache(text_title.getText(), true);
 
                        viewer.add(featureTree);
-                       if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                CdmStore.getService(IFeatureTreeService.class).merge(featureTree, true);
-                       } else {
-                           CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(featureTree);
-                       }
+                       CdmStore.getService(IFeatureTreeService.class).merge(featureTree, true);
+                       
                        text_title.setText("");
                        viewer.setSelection(new StructuredSelection(featureTree));
 
index 7de630396a76541a5b6bd435c2b8af505280fbc6..790a4438b40a48bd828bd44ea6de6bd8abc99657 100644 (file)
@@ -30,7 +30,7 @@ public abstract class AbstractIOManager<CONFIGURATOR extends IIoConfigurator> {
        protected ICdmApplicationConfiguration applicationConfiguration;
 
        public static enum TYPE {
-               Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch
+               Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch, Gbif
        }
 
        /**
index 809e19efa068a89ddf1c4d3f5d74ccfa71f1711d..539db22f7962b7dd3fe70ef4ff3da98d8cf12a78 100644 (file)
@@ -12,10 +12,12 @@ package eu.etaxonomy.taxeditor.io;
 
 import java.io.File;
 import java.io.InputStream;
+import java.net.URI;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 
 import org.apache.commons.io.IOUtils;
@@ -34,13 +36,18 @@ import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.common.ImportResult;
+import eu.etaxonomy.cdm.io.dwca.in.DwcaImportConfigurator;
 import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
 import eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator;
 import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator;
 import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
 import eu.etaxonomy.cdm.io.service.IIOService;
+import eu.etaxonomy.cdm.io.specimen.SpecimenImportConfiguratorBase;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportState;
 import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportState;
 import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
@@ -302,6 +309,8 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                        return SpecimenCdmExcelImportConfigurator.NewInstance(null, null);
                case SpecimenSearch:
                    return Abcd206ImportConfigurator.NewInstance(null, null);
+               case Gbif:
+                   return DwcaImportConfigurator.NewInstance(null, null);
                default:
                        MessagingUtils.notImplementedMessage(this);
                        throw new IllegalArgumentException("Import not supported yet");
@@ -386,6 +395,11 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
        public SpecimenCdmExcelImportConfigurator SpecimenCdmExcelImportConfigurator() {
                return (SpecimenCdmExcelImportConfigurator) getConfigurator(TYPE.SpecimenCdmExcel);
        }
+       
+       public DwcaImportConfigurator DwcaImportConfigurator() {
+               return (DwcaImportConfigurator) getConfigurator(TYPE.Gbif);
+       }
+
 
     /**
      * {@inheritDoc}
@@ -402,5 +416,94 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
 
     }
 
+       public Job createIOServiceJob(final GbifImportConfigurator<GbifImportState, InputStream> configurator) {
+                Assert.isNotNull(configurator, "Configuration may not be null");
+               final Display display = Display.getDefault();
+               Job job = new Job("Import: " + " Dwca") {
+
+                   @Override
+                   protected IStatus run(IProgressMonitor monitor) {
+                       monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN);
+                       IIOService ioService = CdmApplicationState.getIOService();
+
+                       ImportResult result = ioService.importDataFromStream(configurator);
+                       monitor.done();
+
+                       display.asyncExec(new Runnable() {
+
+                           @Override
+                           public void run() {
+                               CdmStore.getContextManager().notifyContextRefresh();
+                           }
+                       });
+
+                       return Status.OK_STATUS;
+                   }
+               };
+
+               return job;
+
+       }
+       
+       public Job createIOServiceJob(final Abcd206ImportConfigurator<Abcd206ImportState, InputStream> configurator) {
+                Assert.isNotNull(configurator, "Configuration may not be null");
+               final Display display = Display.getDefault();
+               Job job = new Job("Import: " + " Dwca") {
+
+                   @Override
+                   protected IStatus run(IProgressMonitor monitor) {
+                       monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN);
+                       IIOService ioService = CdmApplicationState.getIOService();
+
+                       ImportResult result = ioService.importDataFromStream(configurator);
+                       monitor.done();
+
+                       display.asyncExec(new Runnable() {
+
+                           @Override
+                           public void run() {
+                               CdmStore.getContextManager().notifyContextRefresh();
+                           }
+                       });
+
+                       return Status.OK_STATUS;
+                   }
+               };
+
+               return job;
+
+       }
+
+       public Job createIOServiceJob(
+                       final List<Abcd206ImportConfigurator> abcdConfigurators) {
+                Assert.isNotNull(abcdConfigurators, "Configuration may not be null");
+               final Display display = Display.getDefault();
+               Job job = new Job("Import: " + " Dwca") {
+
+                   @Override
+                   protected IStatus run(IProgressMonitor monitor) {
+                       monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN);
+                       IIOService ioService = CdmApplicationState.getIOService();
+
+                       ImportResult result = ioService.importDataFromStream(abcdConfigurators);
+                       monitor.done();
+
+                       display.asyncExec(new Runnable() {
+
+                           @Override
+                           public void run() {
+                               CdmStore.getContextManager().notifyContextRefresh();
+                           }
+                       });
+
+                       return Status.OK_STATUS;
+                   }
+               };
+
+               return job;
+       }
+
+       
+
 
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportConfiguratorWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportConfiguratorWizardPage.java
new file mode 100644 (file)
index 0000000..039b364
--- /dev/null
@@ -0,0 +1,163 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.io.wizard;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportState;
+
+/**
+ * 
+ * @author pplitzner
+ *
+ */
+public class AbcdImportConfiguratorWizardPage extends WizardPage {
+
+       public static final String PAGE_NAME = "AbcdImportConfiguratorWizardPage";
+       
+       private Abcd206ImportConfigurator<Abcd206ImportState, ?> configurator;
+
+       protected AbcdImportConfiguratorWizardPage(String title, String description, Abcd206ImportConfigurator<Abcd206ImportState, ?> configurator) {
+               super(PAGE_NAME);
+               this.configurator = configurator;
+               setTitle(title);
+               setDescription(description);
+       }
+
+       public static AbcdImportConfiguratorWizardPage createPage(Abcd206ImportConfigurator<Abcd206ImportState, ?> configurator){
+               return new AbcdImportConfiguratorWizardPage("Configure import parameters",
+                               "Tooltips will explain parameters in more detail", configurator);
+       }
+
+
+
+       /** {@inheritDoc} */
+       @Override
+    public void createControl(Composite parent) {
+               final Composite composite = new Composite(parent, SWT.NULL);
+
+               GridLayout gridLayout = new GridLayout();
+               composite.setLayout(gridLayout);
+
+               Button checkBoxMediaSpecimen = new Button(composite, SWT.CHECK);
+               checkBoxMediaSpecimen.setSelection(configurator.isAddMediaAsMediaSpecimen());
+               checkBoxMediaSpecimen.setText("Import media as media specimen");
+               checkBoxMediaSpecimen
+                               .setToolTipText("Any media attached to a ABCD unit will be imported as a sub derivative of the specimen created from this unit");
+               checkBoxMediaSpecimen.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               configurator.setAddMediaAsMediaSpecimen(!configurator.isAddMediaAsMediaSpecimen());
+                       }
+               });
+
+               Button checkBoxIgnoreExisting = new Button(composite, SWT.CHECK);
+               checkBoxIgnoreExisting.setSelection(configurator.isIgnoreImportOfExistingSpecimen());
+               checkBoxIgnoreExisting.setText("Do not import existing specimens");
+               checkBoxIgnoreExisting
+               .setToolTipText("Specimens that have previously been imported will be ignored in this import");
+               checkBoxIgnoreExisting.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               configurator.setIgnoreImportOfExistingSpecimen(!configurator.isIgnoreImportOfExistingSpecimen());
+                       }
+               });
+               
+               Button checkBoxIgnoreAuthorship = new Button(composite, SWT.CHECK);
+               checkBoxIgnoreAuthorship.setSelection(configurator.isIgnoreAuthorship());
+               checkBoxIgnoreAuthorship.setText("Ignore Authorship for name matching");
+               checkBoxIgnoreAuthorship
+               .setToolTipText("Name matching with existing names will be done without "
+                               + "the authorship part of the name");
+               checkBoxIgnoreAuthorship.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               configurator.setIgnoreAuthorship(!configurator.isIgnoreAuthorship());
+                       }
+               });
+               
+               Button checkBoxMapUnitIdToCatalogNumber = new Button(composite, SWT.CHECK);
+               checkBoxMapUnitIdToCatalogNumber.setSelection(configurator.isMapUnitIdToCatalogNumber());
+               checkBoxMapUnitIdToCatalogNumber.setText("Map UnitID to catalog number");
+               checkBoxMapUnitIdToCatalogNumber
+               .setToolTipText("The UnitID of every ABCD unit will be mapped the catalog number "
+                               + "of the specimen");
+               checkBoxMapUnitIdToCatalogNumber.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               configurator.setMapUnitIdToCatalogNumber(!configurator.isMapUnitIdToCatalogNumber());
+                       }
+               });
+               
+               Button checkBoxMapUnitIdToAccessionNumber = new Button(composite, SWT.CHECK);
+               checkBoxMapUnitIdToAccessionNumber.setSelection(configurator.isMapUnitIdToAccessionNumber());
+               checkBoxMapUnitIdToAccessionNumber.setText("Map UnitID to accession number");
+               checkBoxMapUnitIdToAccessionNumber
+               .setToolTipText("The UnitID of every ABCD unit will be mapped the accession number "
+                               + "of the specimen");
+               checkBoxMapUnitIdToAccessionNumber.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               configurator.setMapUnitIdToAccessionNumber(!configurator.isMapUnitIdToAccessionNumber());
+                       }
+               });
+               
+               Button checkBoxMapUnitIdToBarcode = new Button(composite, SWT.CHECK);
+               checkBoxMapUnitIdToBarcode.setSelection(configurator.isMapUnitIdToBarcode());
+               checkBoxMapUnitIdToBarcode.setText("Map UnitID to barcode");
+               checkBoxMapUnitIdToBarcode
+               .setToolTipText("The UnitID of every ABCD unit will be mapped the barcode "
+                               + "of the specimen");
+               checkBoxMapUnitIdToBarcode.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               configurator.setMapUnitIdToBarcode(!configurator.isMapUnitIdToBarcode());
+                       }
+               });
+               
+               Button checkBoxRemoveCountry = new Button(composite, SWT.CHECK);
+               checkBoxRemoveCountry.setSelection(configurator.isRemoveCountryFromLocalityText());
+               checkBoxRemoveCountry.setText("Remove country from locality text");
+               checkBoxRemoveCountry
+               .setToolTipText("If the locality text contains information about the "
+                               + "country which is additionally stored in other ABCD "
+                               + "elements then it is removed from the locality text");
+               checkBoxRemoveCountry.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               configurator.setRemoveCountryFromLocalityText(!configurator.isRemoveCountryFromLocalityText());
+                       }
+               });
+               
+               Button checkBoxMoveToDefaultClassification = new Button(composite, SWT.CHECK);
+               checkBoxMoveToDefaultClassification.setSelection(configurator.isMoveNewTaxaToDefaultClassification());
+               checkBoxMoveToDefaultClassification.setText("Create new classification for new taxa");
+               checkBoxMoveToDefaultClassification
+               .setToolTipText("For taxa that do not exist in the data base "
+                               + "a new classification will be created");
+               checkBoxMoveToDefaultClassification.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               configurator.setRemoveCountryFromLocalityText(!configurator.isRemoveCountryFromLocalityText());
+                       }
+               });
+               
+               setControl(composite);
+       }
+       
+}
index d6f3236ea638ddb1463fbdb70c4b48a185008dfc..d75d589bfb5572a0c2bec55c7258f87a77bc657f 100644 (file)
@@ -56,20 +56,8 @@ public class AbcdImportWizard extends AbstractImportWizard<Abcd206ImportConfigur
                configurator.setClassificationUuid(classificationChooserWizardPage.getClassification().getUuid());
            }
 
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               //Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
-               //CdmStore.getImportManager().run(job);
-               CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
-           } else {
-               try {
-                   configurator.setSource(new FileInputStream(new File(source)));
-               } catch (FileNotFoundException e) {
-                   MessagingUtils.errorDialog("File not found.", this, "Import file was not found.", TaxeditorStorePlugin.PLUGIN_ID, e, false);
-                   logger.error("File not found!", e);
-                   return false;
-               }
-               CdmStore.getImportManager().run(configurator);
-           }
+           CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
+           
            return true;
 
        }
index 377ccc84ca04ddff8c37b828424d7fd389f8c892..c0db37b9a0b32bc94d7d755d923603765f9b594b 100644 (file)
@@ -52,7 +52,7 @@ public class ClassificationChooserWizardPage extends WizardPage implements Liste
 
        }
 
-       protected static ClassificationChooserWizardPage createPage(){
+       public static ClassificationChooserWizardPage createPage(){
                return new ClassificationChooserWizardPage("Configure import destinations", "Note: Selecting no classification will create a default one.");
        }
 
index e703c2d3dbc74f7f2807088a9d866f8889f9c152..59962024a4c011ed5592e8afd9eab7e8e536730a 100644 (file)
@@ -93,19 +93,15 @@ public class CsvExportWizard extends AbstractExportWizard<CsvDemoExportConfigura
                        configurator.setLastChange(true);
                    }
                }
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                   // create job
-                   Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));
-                   // configure the job
-                   job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-                   job.setUser(true);
-                   // schedule job
-                   job.schedule();
-               } else {
-
-                   configurator.setDestination(new File(urlString));
-                   CdmStore.getExportManager().run(configurator);
-               }
+               
+           // create job
+           Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));
+           // configure the job
+           job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+           job.setUser(true);
+           // schedule job
+           job.schedule();
+               
                return true;
        }
 
index bd6ac4a480e3e1e27e1af7ce4ae794325ec52ecc..8ca8ef64cc6576074b0535cce491cea9fca4257e 100644 (file)
@@ -66,19 +66,16 @@ public class CsvNameExportWizard extends AbstractExportWizard<CsvNameExportConfi
                    + page.getExportFileName();\r
 \r
            final Combo combo = page.getCombo();\r
-\r
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
-               // create job\r
-               Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
-               // configure the job\r
-               job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
-               job.setUser(true);\r
-               // schedule job\r
-               job.schedule();\r
-           } else {\r
-               configurator.setDestination(new File(urlString));\r
-               CdmStore.getExportManager().run(configurator);\r
-           }\r
+           configurator.setClassificationUUID(page.getSelectedClassificationUUID());\r
+           \r
+        // create job\r
+        Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
+        // configure the job\r
+        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
+        job.setUser(true);\r
+        // schedule job\r
+        job.schedule();\r
+          \r
                return true;\r
        }\r
 \r
index 61905f31f057bfb22947f96fbb3b96f045bbccce..dbda86082f2e06a0fc20adb5df0f8f9e2cb5513f 100644 (file)
@@ -60,40 +60,17 @@ public class CsvPrintExportWizard extends CsvNameExportWizard{
                                + page.getExportFileName();\r
 \r
                final Combo combo = page.getCombo();\r
-               final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);\r
-               if(combo != null){\r
-                   int selectionIndex = combo.getSelectionIndex();\r
-                   HashSet<UUID> set = new HashSet<UUID>();\r
-                   if(selectionIndex == -1){\r
-                       for(Classification c:listClassifications){\r
-                           set.add(c.getUuid());\r
-                       }\r
-                   }else{\r
-                       for(Classification c:listClassifications){\r
-                           if(c.getTitleCache().equalsIgnoreCase(combo.getItem(selectionIndex))){\r
-                               set.add(c.getUuid());\r
-                           }\r
-                       }\r
-\r
-                       configurator.setHasHeaderLines(true);\r
-\r
-                   }\r
-               } else{\r
-                       configurator.setClassificationUUID(listClassifications.get(0).getUuid());\r
-               }\r
-\r
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
-                   // create job\r
-                   Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
-                   // configure the job\r
-                   job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
-                   job.setUser(true);\r
-                   // schedule job\r
-                   job.schedule();\r
-               } else {\r
-                   configurator.setDestination(new File(urlString));\r
-                   CdmStore.getExportManager().run(configurator);\r
-               }\r
+\r
+          \r
+           configurator.setClassificationUUID(page.getSelectedClassificationUUID());\r
+               // create job\r
+           Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
+           // configure the job\r
+           job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
+           job.setUser(true);\r
+           // schedule job\r
+           job.schedule();\r
+               \r
                return true;\r
        }\r
 \r
index f6d43baf8a87ad54781bc3133d77849036a302b3..e747d5acd952076ccfb62508b292242b17457e9a 100644 (file)
 package eu.etaxonomy.taxeditor.io.wizard;
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.net.URI;
+import org.apache.log4j.Logger;
 
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.ui.IWorkbench;
 
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
@@ -35,6 +41,7 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
        private NormalExplicitImportConfigurator configurator;
 
        private ImportFromFileDataSourceWizardPage dataSourcePage;
+       private static final Logger logger = Logger.getLogger(ExcelNormalExplicitTaxaImportWizard.class);
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
@@ -54,15 +61,18 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
                URI source = dataSourcePage.getUri();
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
+               File file = new File(source);
+               FileInputStream fis = null;
 
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                   Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
-                   CdmStore.getImportManager().run(job);
-               } else {
-                   CdmStore.getImportManager().run(configurator);
+               try {
+                       fis = new FileInputStream(file);
+               } catch (FileNotFoundException e) {
+                       logger.error("Error while reading file" + source.toString());
                }
-
-
+                       
+           Job job = CdmStore.getImportManager().createIOServiceJob(configurator,file , SOURCE_TYPE.INPUTSTREAM);
+           CdmStore.getImportManager().run(job);
+               
                return true;
        }
 
@@ -74,6 +84,11 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
     public void init(IWorkbench workbench, IStructuredSelection selection) {
                super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().NormalExplicitConfigurator();
+               if (selection instanceof TreeSelection && !selection.isEmpty()){
+                       TaxonNode node = (TaxonNode)selection.getFirstElement();
+                       configurator.setParentUUID(node.getTaxon().getUuid());
+                       configurator.setClassificationUuid(node.getClassification().getUuid());
+               }
        }
 
        /* (non-Javadoc)
index a35e64490f9a9f6d3c6879b9d90a08572fc013a8..e5c389f6688c62c04e2452f65c78bdc8a5f15525 100644 (file)
@@ -12,21 +12,27 @@ package eu.etaxonomy.taxeditor.io.wizard;
 
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
+import java.util.UUID;
 
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
@@ -41,7 +47,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 15.06.2009
  * @version 1.0
  */
-public class ExportToFileDestinationWizardPage extends WizardPage {
+public class ExportToFileDestinationWizardPage extends WizardPage implements SelectionListener {
 
        /** Constant <code>DATE_FORMAT_NOW="yyyyMMddHHmm"</code> */
        public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
@@ -85,7 +91,11 @@ public class ExportToFileDestinationWizardPage extends WizardPage {
 
        private final String extension;
 
-    private Combo comboBox;
+    private Combo classificationSelectionCombo;
+    
+    private List<Classification> classifications;
+    
+    private Classification selectedClassification;
 
        /**
         * @param pageName
@@ -225,13 +235,26 @@ public class ExportToFileDestinationWizardPage extends WizardPage {
                GridLayout gridLayout = new GridLayout();
                gridLayout.numColumns = 3;
                composite.setLayout(gridLayout);
+               if(classifications == null){
+                       classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, null);
+                       Collections.sort(classifications, new Comparator<Classification>() {
+
+                @Override
+                public int compare(Classification o1, Classification o2) {
+                    return o1.getTitleCache().compareTo(o2.getTitleCache());
+                }
+            });
+                       
+                       selectedClassification = classifications.iterator().next();
+               }
 
 
-               if(csvExport){
+               if(csvExport || csvPrintExport){
                    Label comboBoxLabel = new Label(composite, SWT.NONE);
                    comboBoxLabel.setText("Classification");
-                   Combo comboBox = addComboBox(composite);
-                   comboBox.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
+                  
+                   createClassificationSelectionCombo(composite);
+                   classificationSelectionCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
                                true, false, 2, 1));
                }
                
@@ -326,22 +349,55 @@ public class ExportToFileDestinationWizardPage extends WizardPage {
                return text_folder.getText();
        }
 
-       private Combo addComboBox(Composite composite){
+       private Control createClassificationSelectionCombo(Composite parent){
+//             classifications = CdmStore.getTaxonTreeService().list(null, null, null, null, null);
 
-           comboBox = new Combo(composite, SWT.DROP_DOWN);
-           comboBox.setText("Choose Classification");
+               Composite classificationSelection = new Composite(parent, SWT.NULL);
+               classificationSelection.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
 
-           final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);
+               GridLayout layout = new GridLayout();
+               classificationSelection.setLayout(layout);
 
-           for(Classification c : listClassifications){
-               comboBox.add(c.getTitleCache());
-           }
+               Label label = new Label(classificationSelection, SWT.NULL);
+               // TODO not working is not really true but leave it here to remind everyone that this is under construction
+               label.setText("Select Classification");
+               classificationSelectionCombo = new Combo(classificationSelection, SWT.BORDER | SWT.READ_ONLY);
+               classificationSelectionCombo.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));
+
+               for(Classification tree : classifications){
+                       classificationSelectionCombo.add(tree.getName().getText(), classifications.indexOf(tree));
+
+               }
 
-           return comboBox;
+               classificationSelectionCombo.select(classifications.indexOf(selectedClassification));
+
+               // TODO remember last selection
+               classificationSelectionCombo.addSelectionListener(this);
+
+
+
+               return classificationSelection;
        }
 
        public Combo getCombo(){
-           return comboBox;
+           return classificationSelectionCombo;
+       }
+
+       @Override
+       public void widgetSelected(SelectionEvent e) {
+               selectedClassification = classifications.get(classificationSelectionCombo.getSelectionIndex());
+               
+       }
+
+       @Override
+       public void widgetDefaultSelected(SelectionEvent e) {
+               //not needed here
+               
+       }
+
+       public UUID getSelectedClassificationUUID() {
+               
+               return selectedClassification.getUuid();
        }
 
 }
index 00a9c1bc6f2623c14c784c577c827770318e25c5..146fff3ef3a11216484655c3b09171505f8e611b 100644 (file)
@@ -55,17 +55,15 @@ public class JaxbExportWizard extends AbstractExportWizard<JaxbExportConfigurato
                File exportFile = new File(page.getFolderText() + File.separator + page.getExportFileName());
                URI urlString = exportFile.toURI();
                configurator.setDestination(urlString);
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                   // create job
-                   Job job = CdmStore.getExportManager().createIOServiceJob(configurator, exportFile);
-                   // configure the job
-                   job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-                   job.setUser(true);
-                   // schedule job
-                   job.schedule();
-               } else {
-               CdmStore.getExportManager().run(configurator);
-               }
+               
+           // create job
+           Job job = CdmStore.getExportManager().createIOServiceJob(configurator, exportFile);
+           // configure the job
+           job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+           job.setUser(true);
+           // schedule job
+           job.schedule();
+               
                performFinish = true;
                return performFinish;
        }
index af287cab18238f968d32a0a9cba03a6c98b44cea..73588579743d982b6a2322097976c465ed7ff92c 100644 (file)
@@ -73,7 +73,7 @@ public class NomenclaturalCodeWizardPage extends WizardPage {
                final Group group = new Group(container, SWT.NONE);
                group.setLayout(new GridLayout());
 
-               NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode();
+               NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode(false);
 
                // set preferred code as default
                configurator.setNomenclaturalCode(preferredCode);
index 379a59f1ae1b89ea1fc0fbe421e67091f629fcc5..5efedee663e9fd2ea749d9e67f05322365292f76 100644 (file)
@@ -49,19 +49,14 @@ public class SddExportWizard extends AbstractExportWizard<SDDExportConfigurator>
        @Override
        public boolean performFinish() {
            File file = new File(page.getFolderText() + File.separator + page.getExportFileName());
-
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               // create job
-               Job job = CdmStore.getExportManager().createIOServiceJob(configurator, file);
-               // configure the job
-               job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-               job.setUser(true);
-               // schedule job
-               job.schedule();
-           } else {
-               configurator.setDestination(file);
-               CdmStore.getExportManager().run(configurator);
-           }
+        // create job
+        Job job = CdmStore.getExportManager().createIOServiceJob(configurator, file);
+        // configure the job
+        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+        job.setUser(true);
+        // schedule job
+        job.schedule();
+           
            return true;
        }
 
index 8f4d382fe447410f271f066467f0656caa06a8d0..d701f6f4a3bf79e99c35e12a5aae907ddfad1f69 100644 (file)
@@ -67,14 +67,9 @@ public class SddImportWizard extends AbstractImportWizard<SDDImportConfigurator>
                URI source = dataSourcePage.getUri();
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                   Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
-                   CdmStore.getImportManager().run(job);
-               } else {
-                   CdmStore.getImportManager().run(configurator);
-               }
-
+               Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+               CdmStore.getImportManager().run(job);
+               
                return true;
        }
 
index 13113c2e49a6bf93ee1058b30955bb69d58d2396..bc41736523837ba8abe1001503a0e2587384a09d 100644 (file)
@@ -45,13 +45,9 @@ public class TcsImportWizard extends AbstractImportWizard<TcsXmlImportConfigurat
            configurator.setSource(source);
            configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
 
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
-               CdmStore.getImportManager().run(job);
-           } else {
-               CdmStore.getImportManager().run(configurator);
-           }
-
+           Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+           CdmStore.getImportManager().run(job);
+          
            return true;
        }
 
index 16c07dfc94a28de8aad4ddcbd6c0677db02e4496..5918cda845a3ba126fc62521e56e78a2d0096d08 100644 (file)
@@ -26,6 +26,15 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class DefaultTermComparator<T extends DefinedTermBase> implements Comparator<T> {
        @Override
        public int compare(T o1, T o2) {
+               if (o1 == o2){
+                       return 0;
+               }
+               if (o1 == null){
+                       return -1;
+               }
+               if (o2 == null){
+                       return 1;
+               }
                String label1 = o1.getLabel(CdmStore.getDefaultLanguage()) != null ? o1.getLabel(CdmStore.getDefaultLanguage()) : o1.getTitleCache();
                String label2 = o2.getLabel(CdmStore.getDefaultLanguage()) != null ? o2.getLabel(CdmStore.getDefaultLanguage()) : o2.getTitleCache();
                return label1.compareTo(label2);
index 55854c6bf00fafdd3f4592ed4b73239e3c3e81db..66874f128c32cfaffb6dd8d63d2d5beafd580556 100644 (file)
@@ -14,6 +14,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
 import org.eclipse.core.runtime.Status;
 
 import eu.etaxonomy.cdm.api.service.DeleteResult;
@@ -80,4 +81,35 @@ public class DeleteResultMessagingUtils extends MessagingUtils {
 
 
     }
+    
+    public static void messageDialogWithDetails(IStatus result, String message, String pluginId) {
+       
+        List<String> details = new ArrayList<String>();
+        String title= "";
+        Throwable e = null;
+        if (result.isMultiStatus()){
+            for (IStatus childStatus:result.getChildren()){
+                details.add(childStatus.getMessage());
+            }
+            e = result.getChildren()[0].getException();
+            if (result.equals(Status.OK_STATUS)|| result.equals(Status.WARNING)){
+                title = "Delete was successfull.";
+            } else {
+                title = "Delete was aborted.";
+            }
+        }
+        StringBuffer relatedObjectsString = new StringBuffer();
+        Object[] relatedObjects = new ArrayList<Object>().toArray(); 
+      
+       
+    
+        String stackTraceWithContext = getContextInfo(details);
+        CdmDeleteErrorDialog ced = new CdmDeleteErrorDialog(AbstractUtility.getShell(), title, message,new Status(IStatus.INFO, pluginId, null, e), stackTraceWithContext, relatedObjects);
+
+        ced.open();
+
+
+
+    }
+    
 }
index d0e40abf68006e300d5f00fde9c6d83fca3e0a93..e3f3ad5aef0bbd112b51d5fec70db62b2030b95e 100644 (file)
@@ -61,10 +61,12 @@ import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
 import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
+import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -245,6 +247,8 @@ public class DescriptionHelper {
                        return getCache((HomotypicalGroup) element);
                }else if (element instanceof TaxonNode) {
                        return getCache((TaxonNode) element);
+               }else if (element instanceof DeterminationEvent) {
+                       return getCache((DeterminationEvent) element);
                }else if (element instanceof Marker) {
                        Marker marker = (Marker) element;
                        MarkerType type = marker.getMarkerType();
@@ -262,6 +266,39 @@ public class DescriptionHelper {
        }
 
 
+       private static String getCache(DeterminationEvent detEvent) {
+               //taxon
+               String taxonStr = null;
+               TaxonNameBase<?,?> taxonName = detEvent.getTaxonName();
+               TaxonBase<?> taxon = detEvent.getTaxon();
+               if (taxonName != null){
+                       taxonStr = taxonName.getTitleCache();
+               }
+               if (StringUtils.isBlank(taxonStr) && taxon != null){
+                       taxonStr = taxon.getTitleCache();
+               }
+               if (StringUtils.isBlank(taxonStr)){
+                       taxonStr = "no or unlabled taxon";
+               }
+                       
+                       
+               //unit
+               SpecimenOrObservationBase<?> unit = detEvent.getIdentifiedUnit();
+               String unitStr;
+               if (unit != null){
+                       unitStr = unit.getTitleCache();
+                       if (StringUtils.isBlank(unitStr)){
+                               unitStr = "Unlabled unit";
+                       }
+               }else{
+                       unitStr = "no unit";
+               }
+               
+               String result = CdmUtils.concat(" determined as ", unitStr, taxonStr);
+
+               return result;
+       }
+
        private static String getCache(TaxonNode taxonNode) {
                String result = "";
                Classification classification = taxonNode.getClassification();
@@ -283,15 +320,15 @@ public class DescriptionHelper {
                        }else{
                                TaxonNameBase<?,?> parentName = parentTaxon.getName();
                                if (parentName == null){
-                                       parentStr = parentTaxon.getTitleCache();
+                                       parentStr = "child of " + parentTaxon.getTitleCache();
                                }else{
-                                       parentStr = parentName.getTitleCache();
+                                       parentStr = "child of " + parentName.getTitleCache();
                                }
                        }
                }
                result = CdmUtils.concat(": ", result, parentStr);
                
-               return null;
+               return result;
        }
 
        private static String getCache(TypeDesignationBase<?> designation) {
@@ -360,18 +397,10 @@ public class DescriptionHelper {
                                toMethod.setAccessible(true);
                                from = (IdentifiableEntity<?>)fromMethod.invoke(rel);
                                to = (IdentifiableEntity<?>)toMethod.invoke(rel);
-                       } catch (NoSuchMethodException e) {
-                               throw new RuntimeException(e);
-                       } catch (SecurityException e) {
-                               throw new RuntimeException(e);
-                       } catch (IllegalAccessException e) {
-                               throw new RuntimeException(e);
-                       } catch (IllegalArgumentException e) {
-                               throw new RuntimeException(e);
-                       } catch (InvocationTargetException e) {
+                       } catch (NoSuchMethodException | SecurityException | IllegalAccessException
+                               | IllegalArgumentException | InvocationTargetException e) {
                                throw new RuntimeException(e);
                        }
-                       
                }
                String typeLabel = null;
                if (type != null){
index 8aab0e7ee1cedace88cf1d8478d8bceb6b4f838c..aadacafdf79e905404c151d13d84a5206a8c2390 100644 (file)
@@ -160,6 +160,7 @@ public class ImageResources {
     public static final String AMPLIFICATION_DERIVATE = "amplification_derivate";
     public static final String SINGLE_READ_DERIVATE = "single_read_derivate";
     public static final String SINGLE_READ_DERIVATE_MULTILINK = "single_read_derivate_multilink";
+    public static final String DEFAULT_DERIVATIVE = "default_derivate";
 
     public static final String CHARACTER_DATA_DERIVATE = "character_data_derivate";
 
@@ -388,6 +389,8 @@ public class ImageResources {
                        "single_read_derivate_multilink-16x16-32.png");
                registerImage(registry, CHARACTER_DATA_DERIVATE,
                        "character_data_derivate-16x16-32.png");
+               registerImage(registry, DEFAULT_DERIVATIVE,
+                               "default_derivate-16x16-32.png");
 
                registerImage(registry, WEB,
                        "web.gif");
index 69fc04ed2b324d6ad69b5d93f8589af99796bff6..8d91b6f60ead116d34d79c1b52447a7f2d0fe7d8 100644 (file)
@@ -38,11 +38,8 @@ public class NewAmplificationWizard  extends AbstractNewEntityWizard<Amplificati
     /** {@inheritDoc} */
     @Override
     protected void saveEntity() {
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            CdmStore.getService(IAmplificationService.class).merge(getEntity(), true);
-        } else {
-            CdmStore.getService(IAmplificationService.class).save(getEntity());
-        }
+        CdmStore.getService(IAmplificationService.class).merge(getEntity(), true);
+        
     }
 
     /** {@inheritDoc} */
index 4586b9275e2329e4580b97a9361e51ec122c32d3..b9d99c6d6fd517d66a0d106cd38d4e1bd800691d 100644 (file)
@@ -50,13 +50,10 @@ public class NewClassificationWizard extends AbstractNewEntityWizard<Classificat
        protected void saveEntity() {
                //CdmStore.getService(IClassificationService.class).saveOrUpdate(getEntity());
            Classification classification = getEntity();
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IClassificationService.class).merge(getEntity(), true);
-               CdmApplicationState.getCurrentDataChangeService()
+          CdmStore.getService(IClassificationService.class).merge(getEntity(), true);
+          CdmApplicationState.getCurrentDataChangeService()
                .fireChangeEvent(new CdmChangeEvent(Action.Create, classification, NewTaxonNodeWizard.class), true);
-           } else {
-               CdmStore.getService(IClassificationService.class).save(getEntity());
-           }
+          
 
        }
 
index 8efc02f8cfa1f4db1f0fad5c2ea5e4b80353e2b3..e3da3529e402ecb114a2e877beb07ae1545f7bc4 100644 (file)
@@ -36,11 +36,8 @@ public class NewCollectionWizard extends AbstractNewEntityWizard<Collection> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(ICollectionService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(ICollectionService.class).save(getEntity());
-           }
+           CdmStore.getService(ICollectionService.class).merge(getEntity(), true);
+           
        }
 
        /* (non-Javadoc)
index 9f382d431c04d2f2d14db62e6f4df8eb1c237209..664a54c330b7754afcc4d61e92658dd93a321926 100644 (file)
@@ -93,11 +93,8 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOr
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IOccurrenceService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(IOccurrenceService.class).save(getEntity());
-           }
+           setEntity(CdmStore.getService(IOccurrenceService.class).merge(getEntity()));
+           
        }
 
 
index 59086434ccdf25bb50bd22367971a78dfbb995f9..90f9ee0df8670fcf475d4cd2bd07ed4be4ab98ff 100644 (file)
@@ -38,11 +38,8 @@ public class NewFieldUnitWizard extends AbstractNewEntityWizard<FieldUnit> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IOccurrenceService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(IOccurrenceService.class).save(getEntity());
-           }
+           CdmStore.getService(IOccurrenceService.class).merge(getEntity(), true);
+           
        }
 
        @Override
index c3342795473dbd318516f80f6dea016b12186660..1a51c72c75a1dbc8f3b6a0f2ae23fad642b15d1a 100644 (file)
@@ -38,11 +38,8 @@ public class NewGrantedAuthorityWizard extends AbstractNewEntityWizard<GrantedAu
         */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IGrantedAuthorityService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(IGrantedAuthorityService.class).save(getEntity());
-           }
+           CdmStore.getService(IGrantedAuthorityService.class).merge(getEntity(), true);
+          
        }
 
        /* (non-Javadoc)
index 6f6b52236b12ff50c4d513070ad4cd05b43318a6..51bd2f9731e85582742285321c0bc54f93ad54b3 100644 (file)
@@ -38,11 +38,8 @@ public class NewGroupWizard extends AbstractNewEntityWizard<Group> {
         */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IGroupService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(IGroupService.class).save(getEntity());
-           }
+           CdmStore.getService(IGroupService.class).merge(getEntity(), true);
+          
        }
 
        /* (non-Javadoc)
index 6ac2d44407d5d86204df615c1bf8493c72aef7f4..a03cafa04279642add2887a416e0400385536e74 100644 (file)
@@ -35,11 +35,7 @@ public class NewInstitutionWizard extends AbstractNewEntityWizard<Institution> {
         */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IAgentService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(IAgentService.class).save(getEntity());
-           }
+           CdmStore.getService(IAgentService.class).merge(getEntity(), true);
        }
 
        /* (non-Javadoc)
index cfdd27d18fb41f4559b99ca07567dcf9baecd50e..8427ac1d00ae4920199f1caaa4bddd029c26288a 100644 (file)
@@ -49,11 +49,7 @@ public class NewNonViralNameWizard extends AbstractNewEntityWizard<NonViralName>
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(INameService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(INameService.class).save(getEntity());
-           }
+          CdmStore.getService(INameService.class).merge(getEntity(), true);
        }
 
        @Override
index ab5f7038d644a9df499ff241b833b0d777147968..ad7156859ac3cd1e138daa90a4e00fc1d9832545 100644 (file)
@@ -39,11 +39,7 @@ public class NewPersonWizard extends AbstractNewEntityWizard<Person> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IAgentService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(IAgentService.class).save(getEntity());
-           }
+           CdmStore.getService(IAgentService.class).merge(getEntity(), true);
        }
 
        @Override
index daade68014f9bb41c4229a9533f89d58c70cf284..aaa3fe3ab3d3897821d338c029aa7a91e10fb6d6 100644 (file)
@@ -31,11 +31,7 @@ public class NewPolytomousKeyWizard extends AbstractNewEntityWizard<PolytomousKe
        @Override
        protected void saveEntity() {
            if(!polytomousKeyPage.getPolytomousKeyName().equals("")) {
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                   CdmStore.getService(IPolytomousKeyService.class).merge(getEntity(), true);
-               } else {
-                   CdmStore.getService(IPolytomousKeyService.class).save(getEntity());
-               }
+               CdmStore.getService(IPolytomousKeyService.class).merge(getEntity(), true);
            }
        }
 
index de52e18d14f64ec84e2786057f8796a511366066..8fc7f08a164686fa57ce92e145236c2f314a083d 100644 (file)
@@ -38,11 +38,8 @@ public class NewPrimerWizard  extends AbstractNewEntityWizard<Primer> {
     /** {@inheritDoc} */
     @Override
     protected void saveEntity() {
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            CdmStore.getService(IPrimerService.class).merge(getEntity(),true);
-        } else {
-            CdmStore.getService(IPrimerService.class).save(getEntity());
-        }
+       CdmStore.getService(IPrimerService.class).merge(getEntity(),true);
+       
     }
 
     /** {@inheritDoc} */
index e8dfc554796b2e2cdc33fdde7584a4a94cecef6c..97a54b97676bf03afdae8179251c46e4755f6b00 100644 (file)
@@ -3,7 +3,9 @@
  */
 package eu.etaxonomy.taxeditor.newWizard;
 
+import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
@@ -14,6 +16,7 @@ import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
@@ -21,8 +24,10 @@ import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeWizardPage;
 
 /**
@@ -64,42 +69,39 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
                else{
                    parentNodeUuid = parent.getUuid();
                }
-                UpdateResult result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parentNodeUuid, taxon, parent.getReference(), parent.getMicroReference());
-
-                //TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
-
-              /*  if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                    taxonNode = CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
-                } else {
-                    taxonNode = CdmStore.getService(ITaxonNodeService.class).save(taxonNode);
-                }*/
-                if (result.isOk()){
-                       generatedTaxonNodeUuid = result.getCdmEntity().getUuid();
-                       TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
-                       taxonNode.getTaxon().setSec(sec);
-                       CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
-                    Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
-                    if (result.getUpdatedObjects().iterator().hasNext()){
-                       TaxonNode parentNode = (TaxonNode)result.getUpdatedObjects().iterator().next();
-                       if(parentNode.getParent() == null) {
-                            affectedObjects.add(taxonNode.getClassification());
-                        }
-                       affectedObjects.add(parentNode);
-                    }
-                    if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                        CdmApplicationState.getCurrentDataChangeService()
-                            .fireChangeEvent(new CdmChangeEvent(Action.Create, affectedObjects, NewTaxonNodeWizard.class), true);
-                    }
-                }else{
-                    if (!result.isOk()){
-                        if (!result.getExceptions().isEmpty()){
-                            MessagingUtils.error(getClass(), "Taxon could not be created", result.getExceptions().iterator().next());
-                        }else{
-                            MessagingUtils.warn(getClass(), "Taxon could not be created");
-                        }
-                    }
-                }
-            }catch(IllegalArgumentException e){
+               UpdateResult result;
+               
+               if (taxon.getId() == 0){
+                       result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parentNodeUuid, taxon, parent.getReference(), parent.getMicroReference());
+               }else{
+                       result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parentNodeUuid, taxon.getUuid(), parent.getReference(), parent.getMicroReference());
+               }
+               if (result.isOk()){
+                       generatedTaxonNodeUuid = result.getCdmEntity().getUuid();
+                       TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
+                       taxonNode.getTaxon().setSec(sec);
+                       CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
+                        Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
+                        if (result.getUpdatedObjects().iterator().hasNext()){
+                               TaxonNode parentNode = (TaxonNode)result.getUpdatedObjects().iterator().next();
+                               if(parentNode.getParent() == null) {
+                                affectedObjects.add(taxonNode.getClassification());
+                            }
+                               affectedObjects.add(parentNode);
+                        }
+                        CdmApplicationState.getCurrentDataChangeService()
+                                .fireChangeEvent(new CdmChangeEvent(Action.Create, affectedObjects, NewTaxonNodeWizard.class), true);
+                        
+                    }else{
+                        if (!result.isOk()){
+                            if (!result.getExceptions().isEmpty()){
+                                MessagingUtils.error(getClass(), "Taxon could not be created", result.getExceptions().iterator().next());
+                            }else{
+                                MessagingUtils.warn(getClass(), "Taxon could not be created");
+                            }
+                        }
+                    }
+          }catch(IllegalArgumentException e){
                 MessagingUtils.warningDialog("Taxon already exists in classfication", getClass(), e.getMessage());
             }
         }
@@ -116,7 +118,10 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
                     return CdmStore.getService(IClassificationService.class).load(treeNode.getUuid());
                 }
                 else if(treeNode instanceof TaxonNode){
-                    return CdmStore.getService(ITaxonNodeService.class).load(treeNode.getUuid());
+                       
+                       TaxonNode node =  CdmStore.getService(ITaxonNodeService.class).load(treeNode.getUuid());
+                       Taxon taxon = (Taxon) CdmStore.getService(ITaxonService.class).load(node.getTaxon().getUuid());
+                    return node;
                 }
             }
         }
index 74c82db1a9064ed36573da6b2efda2e088190184..a6b3afa6bad670277abd80e78899b2b4dedca894 100644 (file)
@@ -24,10 +24,18 @@ import eu.etaxonomy.taxeditor.ui.section.agent.TeamWizardPage;
  */
 public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
 
+    private boolean isNomenclaturalTeam = false;
+
+       public NewTeamWizard() {}
+
+       public NewTeamWizard(boolean b) {
+               setNomenclaturalTeam(b);
+       }
+
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-               addPage(new TeamWizardPage(formFactory, getConversationHolder(), getEntity()));
+               addPage(new TeamWizardPage(formFactory, getConversationHolder(), getEntity(), isNomenclaturalTeam));
        }
 
        /* (non-Javadoc)
@@ -42,15 +50,26 @@ public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IAgentService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(IAgentService.class).save(getEntity());
-           }
+           CdmStore.getService(IAgentService.class).merge(getEntity(), true);
+           
        }
 
        @Override
        protected String getEntityName() {
                return "Team";
        }
+
+    /**
+     * @return the isNomenclaturalTeam
+     */
+    public boolean isNomenclaturalTeam() {
+        return isNomenclaturalTeam;
+    }
+
+    /**
+     * @param isNomenclaturalTeam the isNomenclaturalTeam to set
+     */
+    public void setNomenclaturalTeam(boolean isNomenclaturalTeam) {
+        this.isNomenclaturalTeam = isNomenclaturalTeam;
+    }
 }
index d14363c33c899f83f9c2fcf07c8c9faeee52b8cc..631872794c034483e46c5e372d320dfbe4c4cecb 100644 (file)
@@ -24,11 +24,8 @@ public class NewUserWizard extends AbstractNewEntityWizard<User> {
 
        @Override
        protected void saveEntity() {
-           if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               CdmStore.getService(IUserService.class).merge(getEntity(), true);
-           } else {
-               CdmStore.getService(IUserService.class).save(getEntity());
-           }
+           CdmStore.getService(IUserService.class).merge(getEntity(), true);
+           
        }
 
        @Override
index 7dc0a900baefc5b4b49e01f7318efc4805fdadef..d319dfd537c39e32f3aed777c36ec7754a72beda 100644 (file)
@@ -47,7 +47,7 @@ public class ChecklistEditorGeneralPreference extends PreferencePage implements
         composite.setLayout(new GridLayout());
         isEditorActivated = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
         final Button activateCheckButton = new Button(composite, SWT.CHECK);
-        activateCheckButton.setText("Enable Checklist Editor");
+        activateCheckButton.setText("Enable Distribution Editor");
         activateCheckButton.setSelection(isEditorActivated);
         activateCheckButton.addSelectionListener(new SelectionAdapter(){
             @Override
@@ -69,12 +69,35 @@ public class ChecklistEditorGeneralPreference extends PreferencePage implements
         child.setLayout(new GridLayout());
         child.setVisible(isEditorActivated);
         final CLabel label = new CLabel(child, SWT.NULL);
-        label.setText("Please open the wizard below, in order to \n" + "choose the areas for the Checklist Editor");
+        label.setText("Please open the wizard below, in order to \n" + "choose the areas for the Distribution Editor");
         final CommandHandlerButton button_openFeatureTree = new CommandHandlerButton(child, SWT.PUSH,
                 "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler");
 
         button_openFeatureTree.setText("Open Distribution Selection Wizard");
+        final Button showIdInVocabulary = new Button(child, SWT.CHECK);
+        boolean isShowIdInVocabulary = PreferencesUtil.isShowIdInVocabularyInChecklistEditor();
+        showIdInVocabulary.setText("Show Id in Vocabulary instead of full title of the areas");
+        showIdInVocabulary.setSelection(isShowIdInVocabulary);
+        showIdInVocabulary.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                boolean isShowIdInVocabulary = showIdInVocabulary.getSelection();
+                PreferencesUtil.setShowIdInVocabularyInChecklistEditor(isShowIdInVocabulary);
+             }
+        });
         PreferencesUtil.recursiveSetEnabled(button_openFeatureTree, CdmStore.isActive());
+        boolean isShowRank = PreferencesUtil.isShowRankInChecklistEditor();
+        final Button activateRankButton = new Button(child, SWT.CHECK);
+        activateRankButton.setText("Show Rank in Distribution Editor");
+        activateRankButton.setSelection(isShowRank);
+        activateRankButton.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                boolean isShowRank = activateRankButton.getSelection();
+                PreferencesUtil.setShowRankInChecklistEditor(isShowRank);
+            }
+        });
+
 
         if(isEditorActivated){
             child.setEnabled(true);
index 884cb678f6eabfd993999ac8e6a22b8af63008f4..ccbc6b96e654b40120ebbd1757791bb19b69d809 100644 (file)
@@ -45,6 +45,11 @@ public interface IPreferenceKeys {
         */
        public static final String TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES = "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doTaxaByCommonNames";
 
+       /**
+    *
+    */
+   public static final String TAXON_SERVICE_CONFIGURATOR_MATCH_MODE = "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doSearchByMatchMode";
+
        /**
         * Whether to show UUID and database id in the supplemental data view.
         */
@@ -146,8 +151,27 @@ public interface IPreferenceKeys {
 
     public static final String DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED = "eu.etaxonomy.taxeditor.checklist.distributionAreaStatusGrayed";
 
-    public static final String SHOW_ADVANCED_MEDIA_SECTION = "eu.etaxonomy.taxeditor.media.showAdvancedMedia";
+    public static final String CHECKLIST_ID_IN_VOCABULARY = "eu.etaxonomy.taxeditor.checklist.checklistIdInVocabulary";
+    public static final String CHECKLIST_SHOW_RANK = "eu.etaxonomy.taxeditor.checklist.checklistShowRank";
 
+    public static final String SHOW_ADVANCED_MEDIA_SECTION = "eu.etaxonomy.taxeditor.media.showAdvancedMedia";
+    public static final String SHOW_SIMPLE_NAME_DETAILS_SECTION = "eu.etaxonomy.taxeditor.name.showSimpleName";
+    public static final String SHOW_SIMPLE_NAME_DETAILS_TAXON = "eu.etaxonomy.taxeditor.name.showNameTaxon";
+    public static final String SHOW_NAME_DETAILS_SECTION_LSID = "eu.etaxonomy.taxeditor.name.showNameLsid";
+    public static final String SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE = "eu.etaxonomy.taxeditor.name.showNameNomenclaturalCode";
+    public static final String SHOW_NAME_DETAILS_SECTION_RANK = "eu.etaxonomy.taxeditor.name.showNameRank";
+    public static final String SHOW_NAME_DETAILS_SECTION_NAMECACHE = "eu.etaxonomy.taxeditor.name.showNameNameCache";
+    public static final String SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS = "eu.etaxonomy.taxeditor.name.showNameAtomisedEpithets";
+    public static final String SHOW_NAME_DETAILS_SECTION_AUTHORSHIP = "eu.etaxonomy.taxeditor.name.showNameAuthorship";
+    public static final String SHOW_NAME_DETAILS_SECTION_HYBRID = "eu.etaxonomy.taxeditor.name.showNameHybrid";
+    public static final String SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE = "eu.etaxonomy.taxeditor.name.showNameNomenclaturalReference";
+    public static final String SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS = "eu.etaxonomy.taxeditor.name.showNameNomenclaturalStatus";
+    public static final String SHOW_NAME_DETAILS_SECTION_PROTOLOGUE = "eu.etaxonomy.taxeditor.name.showNameProtologue";
+    public static final String SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION = "eu.etaxonomy.taxeditor.name.showNameTypeDesignation";
+    public static final String SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP = "eu.etaxonomy.taxeditor.name.showNameNameRelationship";
+       public static final String SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE = "eu.etaxonomy.taxeditor.name.showNameAppendedPhrase";
+       public static final String SHOW_NAME_DETAILS_SECTION_CACHE = "eu.etaxonomy.taxeditor.name.showNameCache";
+       
     public static final String PROMPT_FOR_OPEN_SPECIMEN_IN_EDITOR = "eu.etaxonomy.taxeditor.specimen.promptForOpenSpecimenInEditor";
 
     // TODO RL
@@ -162,4 +186,11 @@ public interface IPreferenceKeys {
      */
     public static final String P2_REPOSITORY_LIST = "eu.etaxonomy.taxeditor.p2.repositories";
 
+       
+
+
+
+
+
+
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java
new file mode 100755 (executable)
index 0000000..a24eac0
--- /dev/null
@@ -0,0 +1,226 @@
+package eu.etaxonomy.taxeditor.preference;
+
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.jface.preference.PreferencePage;
+
+
+public class NameDetailsViewConfiguration extends PreferencePage implements IWorkbenchPreferencePage {
+       boolean isSimpleDetailsViewActivated;
+    Composite child ;
+       @Override
+       public void init(IWorkbench workbench) {
+               
+       }
+
+       /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
+     * ()
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+       
+       Composite composite = new Composite(parent, SWT.NULL);
+        composite.setLayout(new GridLayout());
+        isSimpleDetailsViewActivated = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION);
+        final Button activateCheckButton = new Button(composite, SWT.CHECK);
+        activateCheckButton.setText("Show only a simple name details view");
+        activateCheckButton.setSelection(isSimpleDetailsViewActivated);
+        activateCheckButton.addSelectionListener(new SelectionAdapter(){
+        @Override
+        public void widgetSelected(SelectionEvent e) {
+               isSimpleDetailsViewActivated = activateCheckButton.getSelection();
+            PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION, isSimpleDetailsViewActivated);
+            if(isSimpleDetailsViewActivated){
+               child.setVisible(true);
+                child.setEnabled(true);
+            }else{
+               child.setVisible(false);
+                child.setEnabled(false);
+            }
+         }
+         });
+         
+        child  = new Composite(composite, SWT.NULL);
+        child.setLayout(new GridLayout());
+        child.setVisible(isSimpleDetailsViewActivated);
+               
+        final Button showTaxon = new Button(child, SWT.CHECK);
+        boolean isShowTaxon = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_TAXON);
+        showTaxon.setText("Show taxon of the name");
+        showTaxon.setSelection(isShowTaxon);
+        showTaxon.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowTaxon = showTaxon.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_TAXON, isShowTaxon);
+              }
+         });
+         
+        final Button showLsid = new Button(child, SWT.CHECK);
+        boolean isShowLSID = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_LSID);
+        showLsid.setText("Show Lsid of the name");
+        showLsid.setSelection(isShowLSID);
+        showLsid.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowLSID = showLsid.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_LSID, isShowLSID);
+              }
+         });
+        
+        final Button showNomenclaturalCode = new Button(child, SWT.CHECK);
+        boolean isShowNomenclaturalCode = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE);
+        showNomenclaturalCode.setText("Show the nomenclatural code");
+        showNomenclaturalCode.setSelection(isShowNomenclaturalCode);
+        showNomenclaturalCode.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowNomenclaturalCode = showNomenclaturalCode.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE, isShowNomenclaturalCode);
+              }
+         });
+        
+        final Button showNameCache = new Button(child, SWT.CHECK);
+        boolean isShowNameCache = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAMECACHE);
+        showNameCache.setText("Show nameCache of the name (only the scientific name without the author and year)");
+        showNameCache.setSelection(isShowNomenclaturalCode);
+        showNameCache.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowNameCache = showNameCache.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAMECACHE, isShowNameCache);
+              }
+         });
+        final Button showAppendedPhrase = new Button(child, SWT.CHECK);
+        boolean isShowAppendedPhrase = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE);
+        showAppendedPhrase.setText("Show appended phrase");
+        showAppendedPhrase.setSelection(isShowAppendedPhrase);
+        showAppendedPhrase.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowAppendedPhrase = showAppendedPhrase.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAMECACHE, isShowAppendedPhrase);
+              }
+         });
+       
+        final Button showRank = new Button(child, SWT.CHECK);
+        boolean isShowRank = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_RANK);
+        showRank.setText("Show rank of the name");
+        showRank.setSelection(isShowRank);
+        showRank.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowRank = showRank.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_RANK, isShowRank);
+              }
+         });
+        final Button showEpithets = new Button(child, SWT.CHECK);
+        boolean isShowEpithets = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS);
+        showEpithets.setText("Show atomised epithets");
+        showEpithets.setSelection(isShowEpithets);
+        showEpithets.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowEpithets = showEpithets.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS, isShowEpithets);
+              }
+         });
+        final Button showAuthorship = new Button(child, SWT.CHECK);
+        boolean isShowAuthorship = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_AUTHORSHIP);
+        showAuthorship.setText("Show authorship section");
+        showAuthorship.setSelection(isShowAuthorship);
+        showAuthorship.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowAuthorship = showAuthorship.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_AUTHORSHIP, isShowAuthorship);
+              }
+         });
+               
+        final Button showNomenclaturalRef = new Button(child, SWT.CHECK);
+        boolean isShowNomenclaturalRef = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE);
+        showNomenclaturalRef.setText("Show nomenclatural reference section");
+        showNomenclaturalRef.setSelection(isShowNomenclaturalRef);
+        showNomenclaturalRef.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowNomenclaturalRef = showNomenclaturalRef.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE, isShowNomenclaturalRef);
+              }
+         });
+               
+        final Button showNomenclaturalStatus = new Button(child, SWT.CHECK);
+        boolean isShowNomenclaturalStatus = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS);
+        showNomenclaturalStatus.setText("Show nomenclatural status section");
+        showNomenclaturalStatus.setSelection(isShowNomenclaturalStatus);
+        showNomenclaturalStatus.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowNomenclaturalStatus = showNomenclaturalStatus.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS, isShowNomenclaturalStatus);
+              }
+         });
+               
+        final Button showProtologue = new Button(child, SWT.CHECK);
+        boolean isShowProtologue = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_PROTOLOGUE);
+        showProtologue.setText("Show protologue section");
+        showProtologue.setSelection(isShowProtologue);
+        showProtologue.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowProtologue = showProtologue.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_PROTOLOGUE, isShowProtologue);
+              }
+         });
+        
+        final Button showTypeDesignation = new Button(child, SWT.CHECK);
+        boolean isShowTypeDesignation = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION);
+        showTypeDesignation.setText("Show name type designation section");
+        showTypeDesignation.setSelection(isShowTypeDesignation);
+        showTypeDesignation.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowTypeDesignation = showTypeDesignation.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION, isShowTypeDesignation);
+              }
+         });
+               
+               
+        final Button showNameRelationship = new Button(child, SWT.CHECK);
+        boolean isShowNameRelationship = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP);
+        showNameRelationship.setText("Show name relationship section");
+        showNameRelationship.setSelection(isShowNameRelationship);
+        showNameRelationship.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 boolean isShowNameRelationship = showNameRelationship.getSelection();
+                 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION, isShowNameRelationship);
+              }
+         });
+                               
+        if(isSimpleDetailsViewActivated){
+            child.setEnabled(true);
+        }else{
+            child.setEnabled(false);
+        }
+
+        return composite;
+
+   
+
+       }
+
+}
index fd3b21782651b73a7abb12e5aa8af18fa1e0a94a..16b326ca836f6e8ffbc0858a9015e2f689f6d4e9 100644 (file)
@@ -8,15 +8,25 @@
  */
 package eu.etaxonomy.taxeditor.preference;
 
+import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.jface.preference.FieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
 import org.eclipse.jface.preference.RadioGroupFieldEditor;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
@@ -72,7 +82,27 @@ public class NomenclaturalCodePreferences extends FieldEditorPreferencePage
        public void init(IWorkbench workbench) {
                setPreferenceStore(TaxeditorStorePlugin.getDefault()
                                .getPreferenceStore());
-               setDescription("Choose which nomenclatural code you would like to use for scientific names unless otherwise specified.");
+               setDescription("Choose which nomenclatural code you would like to use for scientific names unless otherwise specified. \nATTENTION, this preference is stored in DB!");
+               PreferencesUtil.setPreferredNomenclaturalCode(null);
        }
+       
+       @Override
+        public boolean performOk() {
+               
+               boolean result = super.performOk();
+               if (result){
+                       String value = getPreferenceStore().getString(IPreferenceKeys.PREFERRED_NOMENCLATURAL_CODE_KEY);
+                       CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.NomenclaturalCode, value);
+                       ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration();
+                       if (controller == null){
+                               return false;
+                       }
+                       IPreferenceService service = controller.getPreferenceService();
+                       service.set(pref);
+               }
+        return result;
+    }
+       
+       
 
 }
index dbaec0027e96500d82ef5b56b6a8715107e2f67e..0dd68af2e2d410f485d2e20b4e36bff430864f8a 100644 (file)
@@ -34,8 +34,10 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.PlatformUI;
 
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
 import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;
 import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
@@ -48,6 +50,10 @@ import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.TermBase;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
@@ -80,6 +86,8 @@ public class PreferencesUtil implements IPreferenceKeys {
        public static final String P2_REPOSITORIES_DELIM = ",";
        public static final String P2_REPOSITORY_FIELDS_DELIM = ";";
 
+
+
        /**
         * <p>
         * getPreferenceStore
@@ -102,10 +110,36 @@ public class PreferencesUtil implements IPreferenceKeys {
         */
        public static void setPreferredNomenclaturalCode(
                        NomenclaturalCode preferredCode) {
+               ICdmApplicationConfiguration controller;
+               controller = CdmStore.getCurrentApplicationConfiguration();
+               PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
+               CdmPreference preference = null;
+               if (controller == null){
+                       return;
+               }
+               if (preferredCode == null){
+                       preference = controller.getPreferenceService().find(key);
+                       if (preference == null){
+                               return;
+                       } else{
+                               int index = StringUtils.lastIndexOf(preference.getValue(), ".");
+                               UUID uuid = UUID.fromString(preference.getValue().substring(index +1, preference.getValue().length()));
+                               preferredCode = NomenclaturalCode.getByUuid(uuid);
+                       }
+               } else{
+                       preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode, preferredCode.getKey());
+                       controller.getPreferenceService().set(preference);
+               }
+                
+           
                getPreferenceStore().setValue(PREFERRED_NOMENCLATURAL_CODE_KEY,
-                               getPreferenceKey(preferredCode));
+                               getPreferenceKey(preferredCode));
        }
 
+       public static NomenclaturalCode getPreferredNomenclaturalCode(){
+               return getPreferredNomenclaturalCode(false);
+       }
+       
        /**
         * <p>
         * getPreferredNomenclaturalCode
@@ -113,11 +147,30 @@ public class PreferencesUtil implements IPreferenceKeys {
         *
         * @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
         */
-       public static NomenclaturalCode getPreferredNomenclaturalCode() {
-
-               for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
-                       String preferredCode = getPreferenceStore().getString(
+       public static NomenclaturalCode getPreferredNomenclaturalCode(boolean preConnected) {
+               ICdmApplicationConfiguration controller;
+               CdmPreference pref = null;
+               if (!preConnected){
+                       try{
+                               controller = CdmStore.getCurrentApplicationConfiguration();
+                               PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
+                           pref = controller.getPreferenceService().find(key);
+                       }catch(Exception e){
+                               e.printStackTrace();
+                       }
+               }
+               
+           String preferredCode;
+           if(pref == null){
+               preferredCode = getPreferenceStore().getString(
                                        PREFERRED_NOMENCLATURAL_CODE_KEY);
+           }else{
+               preferredCode = pref.getValue();
+           }
+           
+               for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
+//                     String preferredCode = getPreferenceStore().getString(
+//                                     PREFERRED_NOMENCLATURAL_CODE_KEY);
                        if (getPreferenceKey(code).equals(preferredCode)) {
                                return code;
                        }
@@ -309,6 +362,7 @@ public class PreferencesUtil implements IPreferenceKeys {
                                TAXON_SERVICE_CONFIGURATOR_NAMES));
                configurator.setDoTaxaByCommonNames(getPreferenceStore().getBoolean(
                                TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES));
+               //configurator.setMatchMode(eu.etaxonomy.cdm.persistence.query.MatchMode.valueOf(getPreferenceStore().getString(TAXON_SERVICE_CONFIGURATOR_MATCH_MODE)));
 
                return configurator;
        }
@@ -396,6 +450,19 @@ public class PreferencesUtil implements IPreferenceKeys {
                getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_WIDTH, "1000");
                getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_HEIGHT, "1000");
                getPreferenceStore().setDefault(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE, false);
+               getPreferenceStore().setDefault(CHECKLIST_ID_IN_VOCABULARY, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_AUTHORSHIP, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_HYBRID, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_LSID, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NAMECACHE, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_PROTOLOGUE, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_RANK, true);
+               getPreferenceStore().setDefault(SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION, true);
        }
 
        /**
@@ -407,7 +474,7 @@ public class PreferencesUtil implements IPreferenceKeys {
                // First time Editor is opened, no nomenclatural code has been set
 
 
-               if (PreferencesUtil.getPreferredNomenclaturalCode() == null) {
+               if (PreferencesUtil.getPreferredNomenclaturalCode(true) == null) {
                        PreferencesUtil.setPreferredNomenclaturalCode(NomenclaturalCode.ICNAFP);
                        /*
 
@@ -835,6 +902,24 @@ public class PreferencesUtil implements IPreferenceKeys {
         getPreferenceStore().setValue(IS_SHOW_UP_WIDGET_IS_DISPOSED, selection);
     }
 
+    /**
+     * @return
+     */
+    public static boolean isShowIdInVocabularyInChecklistEditor() {
+       return getPreferenceStore().getBoolean(IPreferenceKeys.CHECKLIST_ID_IN_VOCABULARY);
+    }
+    public static void setShowIdInVocabularyInChecklistEditor(boolean selection) {
+        getPreferenceStore().setValue(CHECKLIST_ID_IN_VOCABULARY, selection);
+    }
 
+    /**
+     * @return
+     */
+    public static boolean isShowRankInChecklistEditor() {
+        return getPreferenceStore().getBoolean(IPreferenceKeys.CHECKLIST_SHOW_RANK);
+    }
+    public static void setShowRankInChecklistEditor(boolean selection) {
+        getPreferenceStore().setValue(CHECKLIST_SHOW_RANK, selection);
+    }
 
 }
index df1f5128cea951bdbc6d2ca62b2b6b5d5f002e90..38f5377ab9ccfcd47974859754a44979198f0c55 100644 (file)
@@ -13,9 +13,19 @@ package eu.etaxonomy.taxeditor.preference;
 import org.eclipse.jface.preference.BooleanFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
 import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
+import eu.etaxonomy.cdm.persistence.query.MatchMode;
+
 /**
  * <p>
  * TaxonomicEditorGeneralPreferences class.
@@ -60,6 +70,44 @@ public class TaxonomicEditorGeneralPreferences extends
                addField(new BooleanFieldEditor(IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS,
                        "Open search results in separate windows",
                        getFieldEditorParent()));
+//             addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION,
+//                "Show only a simple name details view",
+//                getFieldEditorParent()));
+
+               Composite composite = new Composite(getFieldEditorParent(), SWT.NULL);
+        composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
+        composite.setLayout(new RowLayout(1));
+
+//        final Label label = new Label(composite, SWT.NONE);
+//        label.setText("Choose the prefered match mode for searches.");
+//
+//        final Combo combo_MatchMode = new Combo(composite, SWT.NONE);
+//
+//        MatchMode[] matchModes = MatchMode.values();
+//        int currentSelectionIndex = 0;
+//        for(int i = 0; i < matchModes.length; i++){
+//            MatchMode mode = matchModes[i];
+//            combo_MatchMode.add(mode.name(),i);
+//            //TODO:the correct preselection is needed here!!
+//            if (mode.equals(PreferencesUtil.getSearchConfigurator().getMatchMode())){
+//                currentSelectionIndex = i;
+//            }
+//        }
+//
+//        combo_MatchMode.select(currentSelectionIndex);
+//
+//        combo_MatchMode.addSelectionListener(new SelectionAdapter() {
+//            /* (non-Javadoc)
+//             * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+//             */
+//            @Override
+//            public void widgetSelected(SelectionEvent e) {
+//                int selectionIndex = combo_MatchMode.getSelectionIndex();
+//                PreferencesUtil.getSearchConfigurator().setMatchMode(MatchMode.valueOf(combo_MatchMode.getItem(selectionIndex)));
+//            }
+//        });
+
+
 
 
        }
index b53b064e53d61cdab87f79c7912b08fa4083b318..10ac9e270fe8f0c21f92ae2f32f3a8eb2d314d30 100644 (file)
@@ -79,7 +79,7 @@ public class AvailableDistributionPage extends WizardPage implements ICdmEntityS
         IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
         String checkedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
         String grayedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
-        setTitle("Select areas for ChecklistEditor");
+        setTitle("Select areas for Distribution Editor");
         setDescription("In order to be able to modify and see the distribution status of taxa,\n"
                 + "you have to select the areas which you like to see.");
         Composite composite = new Composite(parent, SWT.NULL);
@@ -247,6 +247,7 @@ public class AvailableDistributionPage extends WizardPage implements ICdmEntityS
             this.viewer.setGrayed(element, false);
             int length = tcp.getChildren(element).length;
             if(length>1){
+                this.viewer.expandToLevel(element, CheckboxTreeViewer.ALL_LEVELS);
                 this.viewer.setSubtreeChecked(element, checked);
             }
         }
index e5cad6866ca04b6a4b26a59a166fb1a31ac28cd7..2ed42b85b4a8abb4419df3ffa335da12fc48b57c 100644 (file)
@@ -265,9 +265,8 @@ public class CdmStore {
     static void setInstance(ICdmApplicationConfiguration applicationController,
             ICdmSource cdmSource) {
         instance = new CdmStore(applicationController, cdmSource);
-        if(getCurrentSessionManager().isRemoting()) {
-            CdmApplicationState.setCdmServiceCacher(new CdmServiceCacher());
-        }
+        CdmApplicationState.setCdmServiceCacher(new CdmServiceCacher());
+        
     }
 
     private CdmStore(ICdmApplicationConfiguration applicationController,
index e4dab75eb03d872b5ea8c8efe57cb9b3bf3c3fb5..91b01474850d455960760baab9e1008b16f49c9a 100644 (file)
@@ -18,6 +18,7 @@ import java.util.UUID;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Display;
 
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.api.service.IMediaService;
@@ -43,6 +44,7 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
@@ -55,14 +57,16 @@ public class SearchManager {
 
        public static final List NO_RESULTS = Arrays.asList(new Object[]{});
 
-       public static final String WILDCARD = "*";
+       public static final String WILDCARD = "*"; //$NON-NLS-1$
 
        public static int NO_COUNT = -1;
 
+
        // TODO make this configurable via preferences
        private static final int MAX_RESULTS_BEFORE_WARNING = 500;
 
-       public List<TaxonNameBase> findNames(IIdentifiableEntityServiceConfigurator configurator){
+       public List<TaxonNameBase> findNames(IIdentifiableEntityServiceConfigurator configurator, ConversationHolder conversation){
+
                if(checkLargeResult(CdmStore.getService(INameService.class).countByTitle(configurator))){
                        List<TaxonNameBase> records = CdmStore.getService(INameService.class).findByTitle(configurator).getRecords();
                        addUuidSearchResults(records, configurator, INameService.class);
@@ -121,7 +125,7 @@ public class SearchManager {
         String titleSearchString = configurator.getTitleSearchString();
                try {
                    UUID uuid = UUID.fromString(titleSearchString);
-                   T foundRecord = CdmStore.getService(service).find(uuid);
+                   T foundRecord = CdmStore.getService(service).load(uuid, configurator.getPropertyPaths());
                    if(foundRecord!=null){
                        records.add(foundRecord);
                    }
@@ -163,25 +167,25 @@ public class SearchManager {
        public List<SpecimenOrObservationBase> findOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator, boolean showFieldUnits){
            List<SpecimenOrObservationBase> records = new ArrayList<SpecimenOrObservationBase>();
                final List<String> BASE_OCCURRENCE_INIT_STRATEGY = Arrays.asList(new String[] {
-                       "collection",
-                       "descriptions",
-                       "identifiers",
-                       "derivationEvents.originals",
-                       "derivedFrom.originals",
-                       "gatheringEvent.country.representations",
-                       "gatheringEvent.collector",
-                       "gatheringEvent.locality",
-                       "descriptions.descriptionElements",
-                       "kindOfUnit",
-                       "amplificationResults",
-                       "sequences.singleReadAlignments",
-                       "mediaSpecimen"
+                       "collection", //$NON-NLS-1$
+                       "descriptions", //$NON-NLS-1$
+                       "identifiers", //$NON-NLS-1$
+                       "derivationEvents.originals", //$NON-NLS-1$
+                       "derivedFrom.originals", //$NON-NLS-1$
+                       "gatheringEvent.country.representations", //$NON-NLS-1$
+                       "gatheringEvent.collector", //$NON-NLS-1$
+                       "gatheringEvent.locality", //$NON-NLS-1$
+                       "descriptions.descriptionElements", //$NON-NLS-1$
+                       "kindOfUnit", //$NON-NLS-1$
+                       "amplificationResults", //$NON-NLS-1$
+                       "sequences.singleReadAlignments", //$NON-NLS-1$
+                       "mediaSpecimen" //$NON-NLS-1$
                });
 
                List<String> occurrencePropertyPaths = new ArrayList<String>();
                occurrencePropertyPaths.addAll(BASE_OCCURRENCE_INIT_STRATEGY);
                for(String propertyPath:BASE_OCCURRENCE_INIT_STRATEGY) {
-                   occurrencePropertyPaths.add("derivationEvents.derivatives." + propertyPath);
+                   occurrencePropertyPaths.add("derivationEvents.derivatives." + propertyPath); //$NON-NLS-1$
                }
                configurator.setPropertyPaths(occurrencePropertyPaths);
 
@@ -216,16 +220,15 @@ public class SearchManager {
 
        private boolean checkLargeResult(int count, int maxBeforWarning) {
                if(count > maxBeforWarning){
-                       return MessageDialog.openConfirm(Display.getDefault().getActiveShell(), "Large result expected",
-                                       String.format("The current search will return %s objects. This will " +
-                                                       "take a long time and/or might render the editor unusable. Please consider refining your search.", count));
+                       return MessageDialog.openConfirm(Display.getDefault().getActiveShell(), Messages.SearchManager_LARGE_RESULT_EXPECTED,
+                                       String.format(Messages.SearchManager_LONG_SEARCH_WARNING, count));
                }else{
                        return true;
                }
        }
 
        private String sqlizeTitleSearchString(IIdentifiableEntityServiceConfigurator configurator){
-               return configurator.getTitleSearchString().replace(WILDCARD, "%");
+               return configurator.getTitleSearchString().replace(WILDCARD, "%"); //$NON-NLS-1$
        }
 
        public List findTaxa(IIdentifiableEntityServiceConfigurator configurator) {
index 4e78d2c4e213b95f4e0be26ff43a66acbc6bd148..43bb78dcade61171a4158b6e0f4a0773c1c42905 100644 (file)
@@ -14,24 +14,30 @@ import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.RootElement;
+import eu.etaxonomy.taxeditor.webapp.ICDMServerError;
 
 /**
  * @author pplitzner
  * @date Mar 30, 2016
  *
  */
-public abstract class AbstractEntityCollectionElementWizardPage extends WizardPage implements
+public abstract class AbstractEntityCollectionElementWizardPage extends WizardPage implements 
 IPropertyChangeListener {
 
     protected CdmFormFactory formFactory;
+    
 
     protected RootElement rootElement;
 
     protected AbstractEntityCollectionElementWizardPage(String pageName) {
         super(pageName);
+        
     }
 
     /**
@@ -59,6 +65,7 @@ IPropertyChangeListener {
     public void dispose() {
         rootElement.removeElements();
         formFactory.removePropertyChangeListener(this);
+       
         super.dispose();
     }
 
index 38ae7193bb78ca5a632f2c114595fbd2d8e132e2..c0486d07d83b5a174067655aff90eb1f606781a3 100644 (file)
@@ -69,11 +69,10 @@ public class AuthenticatedUserBar extends WorkbenchWindowControlContribution imp
         if(authenticatedUser == null) {
             text = "Not logged in              " ;
         } else {
-            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                CdmRemoteSource source = (CdmRemoteSource) CdmStore.getActiveCdmSource();
-                String loginInfo = authenticatedUser.getUsername() + "@" + source.getName() + ":" + source.getContextPath();
-                PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setText(ApplicationUtil.getTitle() + " " + loginInfo);
-            }
+            CdmRemoteSource source = (CdmRemoteSource) CdmStore.getActiveCdmSource();
+            String loginInfo = authenticatedUser.getUsername() + "@" + source.getName() + ":" + source.getContextPath();
+            PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setText(ApplicationUtil.getTitle() + " " + loginInfo);
+            
             text = "Logged in as: " + authenticatedUser.getUsername() + "         ";
         }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/AbstractComboElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/AbstractComboElement.java
new file mode 100644 (file)
index 0000000..c4623cc
--- /dev/null
@@ -0,0 +1,130 @@
+// $Id$
+/**
+* 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.ui.combo;
+
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
+import eu.etaxonomy.taxeditor.ui.element.ISelectable;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+
+/**
+ * @author pplitzner
+ * @date Aug 11, 2016
+ *
+ */
+public abstract class AbstractComboElement<T> extends
+AbstractCdmFormElement implements SelectionListener,
+IEnableableFormElement, ISelectable,
+DisposeListener {
+
+    protected static final int DEFAULT_VISIBLE_ITEMS = 10;
+
+    protected T selection;
+
+    protected Label label;
+
+    protected final Combo combo;
+
+
+    public AbstractComboElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+
+        label = formFactory.createLabel(getLayoutComposite(), "");
+        addControl(label);
+
+        // create combo
+        ComboViewer viewer = new ComboViewer(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY );
+        combo = viewer.getCombo();
+        addControl(combo);
+        TableWrapData fill_HORIZONTALLY = LayoutConstants.FILL_HORIZONTALLY();
+        combo.setLayoutData(fill_HORIZONTALLY);
+        fill_HORIZONTALLY.maxWidth = 50;
+        combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setBackground(Color color) {
+        if (label != null) {
+            label.setBackground(color);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setIrrelevant(boolean irrelevant) {
+        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
+                : Resources.COLOR_COMPOSITE_BACKGROUND;
+
+        Color color = AbstractUtility.getColor(colorId);
+        combo.setBackground(color);
+    }
+
+    public void setVisibleItemCount(int count){
+        combo.setVisibleItemCount(count);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setSelected(boolean selected) {
+        setBackground(selected ? SELECTED : getPersistentBackground());
+    }
+
+    public T getSelection() {
+        return selection;
+    }
+
+    public void addSelectionListener(SelectionListener listener) {
+        combo.addSelectionListener(listener);
+    }
+
+    public void removeSelectionListener(SelectionListener listener) {
+        combo.removeSelectionListener(listener);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void widgetDisposed(DisposeEvent e) {
+        PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);
+    }
+
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return combo.isEnabled();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setEnabled(boolean enabled) {
+        combo.setEnabled(enabled);
+    }
+
+    public abstract void setSelection(T selection);
+}
index 363629cc281822a8bd272174320d508b49d3b8ac..cf746ebe184699f7bc61c580ebb3f97d170ff5e3 100644 (file)
@@ -17,12 +17,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map.Entry;
 
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.model.common.IEnumTerm;
 import eu.etaxonomy.cdm.model.common.OriginalSourceType;
@@ -30,35 +25,24 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.cdm.model.reference.ReferenceType;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectable;
-import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 
 /**
- * <p>
- * Abstract AbstractEnumComboElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Mar 16, 2010
  * @version 1.0
  */
 public class EnumComboElement<T extends IEnumTerm<T>> extends
-               AbstractCdmFormElement implements SelectionListener,
-               IEnableableFormElement, ISelectable {
+               AbstractComboElement<T>  {
 
        //TODO RL
        public void setVisible(boolean b){
                combo.setVisible(b);
        }
 
-       
+
        private static CdmEnumDataHolder[] cdmEnumDataHolders = {
                new CdmEnumDataHolder<NomenclaturalCode>(){
 
@@ -135,45 +119,15 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
 
        };
 
-       private static final int DEFAULT_VISIBLE_ITEMS = 10;
-
-       protected T selection;
-
        protected List<T> elementTypeList = new ArrayList<T>();
 
-       private final Label label;
-       protected Combo combo;
-
        private final Class<T> enumType;
 
-       /**
-        * <p>
-        * Constructor for AbstractEnumComboElement.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param labelString
-        *            a {@link java.lang.String} object.
-        * @param <T>
-        *            a T object.
-        */
        public EnumComboElement(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, Class<T> enumType, int style) {
                super(formFactory, parentElement);
                this.enumType = enumType;
-               label = formFactory.createLabel(getLayoutComposite(), getDefaultLabelString());
-               addControl(label);
-
-               // create combo
-               combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
-               addControl(combo);
-               combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
-               setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+               label.setText(getDefaultLabelString());
 
                populateTypes();
 
@@ -193,11 +147,6 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
                return "No Label";
        }
 
-       /**
-        * <p>
-        * populateTypes
-        * </p>
-        */
     private void populateTypes(){
         Collection<T> elementsForClass = getElementsForClass(enumType);
         // special hierarchical order for specimens
@@ -217,81 +166,11 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
         }
        }
 
-       /**
-        * <p>
-        * Setter for the field <code>selection</code>.
-        * </p>
-        *
-        * @param selection
-        *            the selection to set
-        */
-       public void setSelection(T selection) {
+       @Override
+    public void setSelection(T selection) {
                this.selection = selection;
                combo.select(elementTypeList.indexOf(selection));
        }
-
-       /**
-        * <p>
-        * addSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
-       public void addSelectionListener(SelectionListener listener) {
-               combo.addSelectionListener(listener);
-       }
-
-       /**
-        * <p>
-        * removeSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
-       public void removeSelectionListener(SelectionListener listener) {
-               combo.removeSelectionListener(listener);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void setSelected(boolean selected) {
-               setBackground(selected ? SELECTED : getPersistentBackground());
-       }
-
-       /**
-        * <p>
-        * Getter for the field <code>selection</code>.
-        * </p>
-        *
-        * @return the selection
-        */
-       public T getSelection() {
-               return selection;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void setEnabled(boolean enabled) {
-               combo.setEnabled(enabled);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
-        */
-       @Override
-       public boolean isEnabled() {
-           return combo.isEnabled();
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
-        * .events.SelectionEvent)
-        */
        /** {@inheritDoc} */
        @Override
     public void widgetSelected(SelectionEvent e) {
@@ -299,31 +178,6 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
        }
 
-       /** {@inheritDoc} */
-       @Override
-    public void setIrrelevant(boolean irrelevant) {
-               String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
-                               : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-               Color color = StoreUtil.getColor(colorId);
-               combo.setBackground(color);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void setBackground(Color color) {
-               label.setBackground(color);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void widgetDefaultSelected(SelectionEvent e) {
-       }
-
-       public void setVisibleItemCount(int visibleItems){
-               combo.setVisibleItemCount(visibleItems);
-       }
-
        private Collection<T> getElementsForClass(Class<T> clazz){
                CdmEnumDataHolder<T> dataHolder = getCdmEnumDataHolderForClass(clazz);
                if (dataHolder != null) {
index 02243a6cbad7f7be6c1f6005b2ab0911b4b69261..c2f5a806fef4c5ae3996bae2492e8478bffbb5bf 100644 (file)
@@ -11,13 +11,7 @@ import java.util.List;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
 
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
@@ -26,42 +20,24 @@ import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.store.TermManager;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectable;
-import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 
 /**
- * <p>
- * Abstract AbstractTermComboElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Nov 5, 2009
  * @version 1.0
  * @param <T>
  */
 public class TermComboElement<T extends DefinedTermBase>
-               extends AbstractCdmFormElement implements SelectionListener,
-               DisposeListener, IEnableableFormElement, ISelectable {
-
-       private static final int DEFAULT_VISIBLE_ITEMS = 10;
-
-       private T selection;
+               extends AbstractComboElement<T> {
 
        private T emptyElement;
        private static String EMPTY_ELEMENT_LABEL = "";
 
-       protected Label label;
-       private final Combo combo;
-
        private ArrayList<T> terms;
 
        private Comparator<T> termComparator;
@@ -72,47 +48,47 @@ public class TermComboElement<T extends DefinedTermBase>
 
        private List<T> customPreferredTerms;
 
+       private boolean useAbbrevLabel = false;
        private boolean addEmptyElement;
 
        public TermComboElement(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, TermType termType, String labelString, T selection, boolean addEmptyElement,
-                       int style) {
-               this(formFactory, parentElement, null, termType, null, labelString, selection, addEmptyElement, style);
+                       int style, boolean useAbbrevLabel) {
+               this(formFactory, parentElement, null, termType, null, labelString, selection, addEmptyElement, style, useAbbrevLabel);
        }
 
        public TermComboElement(CdmFormFactory formFactory,
                ICdmFormElement parentElement, TermVocabulary<?> termVocabulary, String labelString, T selection, boolean addEmptyElement,
                int style) {
-           this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, addEmptyElement, style);
+           this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, addEmptyElement, style, false);
        }
 
     public TermComboElement(CdmFormFactory formFactory,
             ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection, boolean addEmptyElement,
             int style) {
-        this(formFactory, parentElement, termClass, null, null, labelString, selection, addEmptyElement, style);
+        this(formFactory, parentElement, termClass, null, null, labelString, selection, addEmptyElement, style, false);
+    }
+    public TermComboElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection, boolean addEmptyElement,
+            int style, boolean useAbbrevLabel) {
+        this(formFactory, parentElement, termClass, null, null, labelString, selection, addEmptyElement, style, useAbbrevLabel);
+       
     }
 
        private TermComboElement(CdmFormFactory formFactory,
                ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, String labelString, T selection, boolean addEmptyElement,
-               int style) {
+               int style, boolean useAbbrevLabel) {
         super(formFactory, parentElement);
 
         this.termType = termType;
         this.termVocabulary = termVocabulary;
         this.termClass = termClass;
         this.addEmptyElement = addEmptyElement;
-
+        this.useAbbrevLabel = useAbbrevLabel;
         if (labelString != null) {
-            label = formFactory.createLabel(getLayoutComposite(), labelString);
-            addControl(label);
+            label.setText(labelString);
         }
 
-        // create combo
-        combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY );//FIXME: removed this parameter seems break windows version: | style
-        addControl(combo);
-        combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
-        combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
-
         if(termType!=null){
             //TODO try to remove generic T and avoid classes to be used
             populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
@@ -133,17 +109,6 @@ public class TermComboElement<T extends DefinedTermBase>
         }
        }
 
-       /**
-        * <p>
-        * Getter for the field <code>selection</code>.
-        * </p>
-        *
-        * @return a T object.
-        */
-       public T getSelection() {
-               return selection;
-       }
-
        /**
         * <p>Sets the selection of the combo to the given T object.</p>
         * <p>Passing <code>null</code> to this method will set the selection to
@@ -152,7 +117,8 @@ public class TermComboElement<T extends DefinedTermBase>
         * @param selection
         *            a T object or <code>null</code> to clear the selection
         */
-       public void setSelection(T selection) {
+       @Override
+    public void setSelection(T selection) {
                this.selection = selection;
 
                Listener[] listeners = combo.getListeners(SWT.Selection);
@@ -237,31 +203,6 @@ public class TermComboElement<T extends DefinedTermBase>
                combo.select(index);
        }
 
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void setEnabled(boolean enabled) {
-               combo.setEnabled(enabled);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
-        */
-       @Override
-       public boolean isEnabled() {
-           return combo.isEnabled();
-       }
-
-       /**
-        * <p>
-        * preferredTerms
-        * </p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        protected List<T> getPreferredTerms(){
            List<T> preferredTerms = new ArrayList<T>();
                if (customPreferredTerms != null){
@@ -291,10 +232,22 @@ public class TermComboElement<T extends DefinedTermBase>
                if (term == null){
                        return "";
                }else{
-                       String termLabel = term.getLabel(CdmStore.getDefaultLanguage());
+                       String termLabel = null;
+                       if (useAbbrevLabel){
+                               termLabel = term.getIdInVocabulary();
+                       }else{
+                               termLabel = term.getLabel(CdmStore.getDefaultLanguage());
+                       }
+                       if (termLabel == null){
+                           termLabel = term.getLabel();
+                       }
                        if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS)
                            && term.getVocabulary()!=null){
-                           termLabel += " ["+term.getVocabulary().getLabel(CdmStore.getDefaultLanguage())+"]";
+                           String vocLabel = term.getVocabulary().getLabel(CdmStore.getDefaultLanguage());
+                           if (vocLabel == null){
+                               vocLabel = term.getVocabulary().getLabel();
+                           }
+                           termLabel += " ["+vocLabel+"]";
                        }
             return termLabel;
                }
@@ -313,37 +266,6 @@ public class TermComboElement<T extends DefinedTermBase>
                populateTerms(preferredTerms);
        }
 
-       /**
-        * <p>
-        * addSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
-       public void addSelectionListener(SelectionListener listener) {
-               combo.addSelectionListener(listener);
-       }
-
-       /**
-        * <p>
-        * removeSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
-       public void removeSelectionListener(SelectionListener listener) {
-               combo.removeSelectionListener(listener);
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
-        * .events.SelectionEvent)
-        */
        /** {@inheritDoc} */
        @Override
     public void widgetSelected(SelectionEvent e) {
@@ -351,12 +273,6 @@ public class TermComboElement<T extends DefinedTermBase>
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see java.beans.PropertyChangeListener#propertyChange(java.beans.
-        * PropertyChangeEvent)
-        */
        /** {@inheritDoc} */
        @Override
     public void propertyChange(PropertyChangeEvent event) {
@@ -368,65 +284,14 @@ public class TermComboElement<T extends DefinedTermBase>
                }
        }
 
-       /** {@inheritDoc} */
-       @Override
-    public void setSelected(boolean selected) {
-               setBackground(selected ? SELECTED : getPersistentBackground());
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void widgetDisposed(DisposeEvent e) {
-               PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);
-       }
-
-       // not used
-       /** {@inheritDoc} */
-       @Override
-    public void widgetDefaultSelected(SelectionEvent e) {
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void setIrrelevant(boolean irrelevant) {
-               String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
-                               : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-               Color color = StoreUtil.getColor(colorId);
-               combo.setBackground(color);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void setBackground(Color color) {
-               if (label != null) {
-            label.setBackground(color);
-        }
-       }
-
-       /**
-        *
-        */
        protected TermManager getTermManager() {
                return CdmStore.getTermManager();
        }
 
-       /**
-        *
-        * @return
-        */
        public int getVisibleItemCount(){
                return combo.getVisibleItemCount();
        }
 
-       /**
-        *
-        * @param count
-        */
-       public void setVisibleItemCount(int count){
-               combo.setVisibleItemCount(count);
-       }
-
        /**
         * <p>A {@link List} of term objects may be passed to this combo box. In this case, the default behaviour
         * of displaying the preferred terms for the T type will be overridden and the combo will only display the
index bc920ea69b6501b01c33444eb8b5e4d1ea8e4401..7ffafdee96f9deea7d0b0dd52c61d301b83716ca 100644 (file)
@@ -10,13 +10,7 @@ import java.util.List;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
 
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
@@ -25,42 +19,24 @@ import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.store.TermManager;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectable;
-import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 
 /**
- * <p>
- * Abstract AbstractTermComboElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Nov 5, 2009
  * @version 1.0
  * @param <VOC>
  */
 public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC extends TermVocabulary<TERM>>
-               extends AbstractCdmFormElement implements SelectionListener,
-               DisposeListener, IEnableableFormElement, ISelectable {
-
-       private static final int DEFAULT_VISIBLE_ITEMS = 10;
-
-       private VOC selection;
+               extends AbstractComboElement<VOC> {
 
        private VOC emptyElement;
        private static String EMPTY_ELEMENT_LABEL = "";
 
-       protected Label label;
-       private final Combo combo;
-
        private ArrayList<VOC> terms;
 
        private Comparator<VOC> vocComparator;
@@ -74,17 +50,6 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
 
         this.termType = termType;
 
-        if (labelString != null) {
-            label = formFactory.createLabel(getLayoutComposite(), labelString);
-            addControl(label);
-        }
-
-        // create combo
-        combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY );//FIXME: removed this parameter seems break windows version: | style
-        addControl(combo);
-        combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
-        combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
-
         populateTerms(getVocabularies());
 
         combo.addSelectionListener(this);
@@ -96,17 +61,6 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
         }
        }
 
-       /**
-        * <p>
-        * Getter for the field <code>selection</code>.
-        * </p>
-        *
-        * @return a T object.
-        */
-       public VOC getSelection() {
-               return selection;
-       }
-
        /**
         * <p>Sets the selection of the combo to the given T object.</p>
         * <p>Passing <code>null</code> to this method will set the selection to
@@ -115,7 +69,8 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
         * @param selection
         *            a T object or <code>null</code> to clear the selection
         */
-       public void setSelection(VOC selection) {
+       @Override
+    public void setSelection(VOC selection) {
                this.selection = selection;
 
                this.selection = selection;
@@ -200,31 +155,6 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                combo.select(index);
        }
 
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void setEnabled(boolean enabled) {
-               combo.setEnabled(enabled);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
-        */
-       @Override
-       public boolean isEnabled() {
-           return combo.isEnabled();
-       }
-
-       /**
-        * <p>
-        * preferredTerms
-        * </p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        protected List<VOC> getVocabularies(){
            List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termType);
                return (List<VOC>) list;
@@ -246,11 +176,6 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                }
        }
 
-       /**
-        *
-        *
-        * @param term
-        */
        private void createTermNotInPreferredTerms(VOC term) {
                List<VOC> preferredTerms = getVocabularies();
 
@@ -259,37 +184,6 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                populateTerms(preferredTerms);
        }
 
-       /**
-        * <p>
-        * addSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
-       public void addSelectionListener(SelectionListener listener) {
-               combo.addSelectionListener(listener);
-       }
-
-       /**
-        * <p>
-        * removeSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
-       public void removeSelectionListener(SelectionListener listener) {
-               combo.removeSelectionListener(listener);
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
-        * .events.SelectionEvent)
-        */
        /** {@inheritDoc} */
        @Override
     public void widgetSelected(SelectionEvent e) {
@@ -297,12 +191,6 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see java.beans.PropertyChangeListener#propertyChange(java.beans.
-        * PropertyChangeEvent)
-        */
        /** {@inheritDoc} */
        @Override
     public void propertyChange(PropertyChangeEvent event) {
@@ -314,65 +202,14 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                }
        }
 
-       /** {@inheritDoc} */
-       @Override
-    public void setSelected(boolean selected) {
-               setBackground(selected ? SELECTED : getPersistentBackground());
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void widgetDisposed(DisposeEvent e) {
-               PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);
-       }
-
-       // not used
-       /** {@inheritDoc} */
-       @Override
-    public void widgetDefaultSelected(SelectionEvent e) {
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void setIrrelevant(boolean irrelevant) {
-               String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
-                               : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-               Color color = StoreUtil.getColor(colorId);
-               combo.setBackground(color);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void setBackground(Color color) {
-               if (label != null) {
-            label.setBackground(color);
-        }
-       }
-
-       /**
-        *
-        */
        protected TermManager getTermManager() {
                return CdmStore.getTermManager();
        }
 
-       /**
-        *
-        * @return
-        */
        public int getVisibleItemCount(){
                return combo.getVisibleItemCount();
        }
 
-       /**
-        *
-        * @param count
-        */
-       public void setVisibleItemCount(int count){
-               combo.setVisibleItemCount(count);
-       }
-
     public void removeEmptyElement(){
         terms.remove(emptyElement);
         combo.remove(EMPTY_ELEMENT_LABEL);
index f77ab9033e6f0999af056fcea59ccd95eec11f02..ff0f874576ebee9ef756cec7f7c8a919afaaf40d 100644 (file)
@@ -57,6 +57,7 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
+import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -81,7 +82,8 @@ import eu.etaxonomy.taxeditor.webapp.ICDMServerError;
  */
 public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
-    protected Object result;
+    private static final String UBUNTU = "Ubuntu"; //$NON-NLS-1$
+       protected Object result;
     protected Shell shlConnect;
     private Text txtCdmServerStatus;
     private Text txtCdmInstanceStatus;
@@ -91,31 +93,31 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
     private final Map<String, CdmServerInfo> csiiMap = new HashMap<String, CdmServerInfo>();
 
-    private final static String STATUS_AVAILABLE = "Available";
-    private final static String STATUS_NOT_AVAILABLE = "Not Available";
-    private final static String STATUS_STARTED = "Started";
-    private final static String STATUS_NOT_STARTED = "Not Started";
-    private final static String STATUS_RETRIEVING = "Retrieving ...";
-    private final static String STATUS_CHECKING_AVAILABILITY = "Checking ...";
-    private final static String STATUS_NO_INSTANCES = "No Instances Found";
-    private final static String STATUS_ERROR = "Error";
-    private final static String STATUS_REMOTING_NOT_ACTIVATED = "Remoting not activated";
-    private final static String STATUS_NOT_COMPATIBLE = "Not Compatible";
+    private final static String STATUS_AVAILABLE = Messages.RemotingLoginDialog_STATUS_AVAILABLE;
+    private final static String STATUS_NOT_AVAILABLE = Messages.RemotingLoginDialog_STATUS_NOT_AVAILABLE;
+    private final static String STATUS_STARTED = Messages.RemotingLoginDialog_STATUS_STARTED;
+    private final static String STATUS_NOT_STARTED = Messages.RemotingLoginDialog_STATUS_NOT_STARTED;
+    private final static String STATUS_RETRIEVING = Messages.RemotingLoginDialog_STATUS_RETRIEVING;
+    private final static String STATUS_CHECKING_AVAILABILITY = Messages.RemotingLoginDialog_STATUS_CHECKING;
+    private final static String STATUS_NO_INSTANCES = Messages.RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND;
+    private final static String STATUS_ERROR = Messages.RemotingLoginDialog_STATUS_ERROR;
+    private final static String STATUS_REMOTING_NOT_ACTIVATED = Messages.RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED;
+    private final static String STATUS_NOT_COMPATIBLE = Messages.RemotingLoginDialog_STATUS_NOT_COMPATIBLE;
 
-    private final static String MESG_COMPATIBLE_EDITOR_OLD = "Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible cdm-server";
-    private final static String MESG_COMPATIBLE_SERVER_OLD = "Please choose a compatible cdm-server or update the chosen cdm-server";
+    private final static String MESG_COMPATIBLE_EDITOR_OLD = Messages.RemotingLoginDialog_UPDATE_EDITOR;
+    private final static String MESG_COMPATIBLE_SERVER_OLD = Messages.RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER;
 
-    private final static String STORE_PREFERENCES_NODE = "eu.etaxonomy.taxeditor.store";
+    private final static String STORE_PREFERENCES_NODE = "eu.etaxonomy.taxeditor.store"; //$NON-NLS-1$
 
-    private final static String LOGIN_NODE = "login";
-    private final static String USERNAME_SUFFIX = "_username";
-    private final static String PASSWORD_SUFFIX = "_password";
+    private final static String LOGIN_NODE = "login"; //$NON-NLS-1$
+    private final static String USERNAME_SUFFIX = "_username"; //$NON-NLS-1$
+    private final static String PASSWORD_SUFFIX = "_password"; //$NON-NLS-1$
 
-    private final static String LAST_SERVER_INSTANCE_NODE = "lastServerInstance";
-    private final static String LAST_SERVER_KEY = "lastServerKey";
-    private final static String LAST_INSTANCE_KEY = "lastInstanceKey";
+    private final static String LAST_SERVER_INSTANCE_NODE = "lastServerInstance"; //$NON-NLS-1$
+    private final static String LAST_SERVER_KEY = "lastServerKey"; //$NON-NLS-1$
+    private final static String LAST_INSTANCE_KEY = "lastInstanceKey"; //$NON-NLS-1$
 
-    private final static String REFRESH_LABEL = "Refresh";
+    private final static String REFRESH_LABEL = Messages.RemotingLoginDialog_LABEL_REFRESH;
 
     private Composite remotingComposite;
     private CdmServerInfo selectedCsii;
@@ -161,14 +163,14 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
      */
     public RemotingLoginDialog(Shell parent, int style) {
         super(parent, style);
-        setText("Login");
+        setText(Messages.RemotingLoginDialog_LABEL_LOGIN);
     }
 
     public Object open(CdmRemoteSource source, boolean loadLoginPrefs, boolean autoConnect) {
         this.loadLoginPrefs = loadLoginPrefs;
         this.serverName = source.getName();
         String contextPath = source.getContextPath();
-        this.instanceName = contextPath.substring(contextPath.lastIndexOf("/") + 1);
+        this.instanceName = contextPath.substring(contextPath.lastIndexOf("/") + 1); //$NON-NLS-1$
         return open(serverName, instanceName, loadLoginPrefs, autoConnect);
     }
 
@@ -217,7 +219,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         shlConnect = new Shell(getParent(), SWT.DIALOG_TRIM);
         shlConnect.setMinimumSize(new Point(MIN_WIDTH, MIN_HEIGHT));
         shlConnect.setSize(MIN_WIDTH, MIN_HEIGHT);
-        shlConnect.setText("Connect");
+        shlConnect.setText(Messages.RemotingLoginDialog_LABEL_CONNECT);
         shlConnect.setLayout(new FillLayout(SWT.HORIZONTAL));
 
         remotingComposite = new Composite(shlConnect, SWT.NONE);
@@ -230,8 +232,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         cdmServerComposite.setLayout(new GridLayout(4, false));
 
         Label lblCdmServer = new Label(cdmServerComposite, SWT.NONE);
-        lblCdmServer.setText("CDM Server : ");
-        lblCdmServer.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblCdmServer.setText(Messages.RemotingLoginDialog_LABEL_CDM_SERVER);
+        lblCdmServer.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
         lblCdmServer.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
 
         comboCdmServer = new Combo(cdmServerComposite, SWT.READ_ONLY);
@@ -262,14 +264,14 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
             }
         });
         btnCdmServerRefresh.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
-        btnCdmServerRefresh.setText("Refresh");
+        btnCdmServerRefresh.setText(Messages.RemotingLoginDialog_LABEL_REFRESH);
 
         Label lblCdmInstance = new Label(cdmServerComposite, SWT.NONE);
         GridData gd_lblCdmInstance = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
         gd_lblCdmInstance.heightHint = 30;
         lblCdmInstance.setLayoutData(gd_lblCdmInstance);
-        lblCdmInstance.setText("CDM Instance : ");
-        lblCdmInstance.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblCdmInstance.setText(Messages.RemotingLoginDialog_LABEL_CDM_INSTANCE);
+        lblCdmInstance.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
 
         comboCdmInstance = new Combo(cdmServerComposite, SWT.READ_ONLY);
         comboCdmInstance.addSelectionListener(new SelectionAdapter() {
@@ -301,7 +303,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         gd_btnCdmInstanceRefresh.widthHint = 110;
         gd_btnCdmInstanceRefresh.heightHint = 30;
         btnCdmInstanceRefresh.setLayoutData(gd_btnCdmInstanceRefresh);
-        btnCdmInstanceRefresh.setText("Refresh");
+        btnCdmInstanceRefresh.setText(Messages.RemotingLoginDialog_LABEL_REFRESH);
 
         loginComposite = new Composite(remotingComposite, SWT.NONE);
         GridData gd_loginComposite = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
@@ -316,8 +318,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         GridData gd_lblLogin = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
         gd_lblLogin.widthHint = 50;
         lblLogin.setLayoutData(gd_lblLogin);
-        lblLogin.setText("Login : ");
-        lblLogin.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblLogin.setText(Messages.RemotingLoginDialog_LABEL_LOGIN_COLON);
+        lblLogin.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
 
         txtLogin = new Text(loginComposite, SWT.BORDER);
         GridData gd_txtLogin = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
@@ -328,8 +330,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
         lblPassword = new Label(loginComposite, SWT.CENTER);
         lblPassword.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-        lblPassword.setText("Password : ");
-        lblPassword.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblPassword.setText(Messages.RemotingLoginDialog_LABEL_PASSWORD);
+        lblPassword.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
 
         txtPassword = new Text(loginComposite, SWT.BORDER | SWT.PASSWORD);
         GridData gd_txtPassword = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
@@ -351,14 +353,13 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
                 }
             }
         });
-        btnConnect.setText("Connect");
+        btnConnect.setText(Messages.RemotingLoginDialog_LABEL_CONNECT);
 
         btnRememberMe = new Button(loginComposite, SWT.CHECK);
         btnRememberMe.setSelection(true);
         GridData gd_btnRememberMe = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1);
-        gd_btnRememberMe.widthHint = 107;
         btnRememberMe.setLayoutData(gd_btnRememberMe);
-        btnRememberMe.setText("Remember Me");
+        btnRememberMe.setText(Messages.RemotingLoginDialog_LABEL_REMEMBER_ME);
         new Label(loginComposite, SWT.NONE);
         new Label(loginComposite, SWT.NONE);
         new Label(loginComposite, SWT.NONE);
@@ -367,7 +368,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         styledTxtMessage = new StyledText(remotingComposite, SWT.NONE);
         styledTxtMessage.setBackground(SWTResourceManager.getColor(SWT.COLOR_INFO_BACKGROUND));
         styledTxtMessage.setForeground(SWTResourceManager.getColor(SWT.COLOR_DARK_RED));
-        styledTxtMessage.setFont(SWTResourceManager.getFont("Ubuntu", 12, SWT.BOLD));
+        styledTxtMessage.setFont(SWTResourceManager.getFont(UBUNTU, 12, SWT.BOLD));
         styledTxtMessage.setSelectionBackground(SWTResourceManager.getColor(SWT.COLOR_LIST_SELECTION_TEXT));
         styledTxtMessage.setSelectionForeground(SWTResourceManager.getColor(SWT.COLOR_DARK_RED));
         styledTxtMessage.setDoubleClickEnabled(false);
@@ -397,7 +398,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
             public void expansionStateChanging(ExpansionEvent e) {
             }
         });
-        xpndblcmpstAdvanced.setText("advanced");
+        xpndblcmpstAdvanced.setText(Messages.RemotingLoginDialog_LABEL_ADVANCED);
         xpndblcmpstAdvanced.setExpanded(true);
 
         compAdvanced = new Composite(xpndblcmpstAdvanced, SWT.NONE);
@@ -407,8 +408,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         lblPort = new Label(compAdvanced, SWT.CENTER);
         lblPort.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
         lblPort.setSize(0, 0);
-        lblPort.setText("Port : ");
-        lblPort.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblPort.setText(Messages.RemotingLoginDialog_LABEL_PORT);
+        lblPort.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
 
         txtPort = new Text(compAdvanced, SWT.BORDER);
         GridData gd_txtPort = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
@@ -418,8 +419,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
         lblServerVersion = new Label(compAdvanced, SWT.CENTER);
         lblServerVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-        lblServerVersion.setText("Server Cdmlib Version :");
-        lblServerVersion.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblServerVersion.setText(Messages.RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION);
+        lblServerVersion.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
 
         txtServerVersion = new Text(compAdvanced, SWT.BORDER);
         txtServerVersion.setEditable(false);
@@ -432,12 +433,12 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
                 stopManagedServer();
             }
         });
-        btnStopServer.setText("Stop Managed Server");
+        btnStopServer.setText(Messages.RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER);
 
         lblEditorVersion = new Label(compAdvanced, SWT.CENTER);
         lblEditorVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-        lblEditorVersion.setText("Editor Cdmlib Version :");
-        lblEditorVersion.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblEditorVersion.setText(Messages.RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION);
+        lblEditorVersion.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
 
         txtEditorVersion = new Text(compAdvanced, SWT.BORDER);
         txtEditorVersion.setEditable(false);
@@ -447,8 +448,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
         lblServerCDMVersion = new Label(compAdvanced, SWT.CENTER);
         lblServerCDMVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-        lblServerCDMVersion.setText("Server CDM Version :");
-        lblServerCDMVersion.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblServerCDMVersion.setText(Messages.RemotingLoginDialog_LABEL_SERVER_CDM_VERSION);
+        lblServerCDMVersion.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
 
         txtServerCDMVersion = new Text(compAdvanced, SWT.BORDER);
         txtServerCDMVersion.setEditable(false);
@@ -458,8 +459,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
         lblEditorCDMVersion = new Label(compAdvanced, SWT.CENTER);
         lblEditorCDMVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-        lblEditorCDMVersion.setText("Editor CDM Version :");
-        lblEditorCDMVersion.setFont(SWTResourceManager.getFont("Ubuntu", 9, SWT.NORMAL));
+        lblEditorCDMVersion.setText(Messages.RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION);
+        lblEditorCDMVersion.setFont(SWTResourceManager.getFont(UBUNTU, 9, SWT.NORMAL));
 
         txtEditorCDMVersion = new Text(compAdvanced, SWT.BORDER);
         txtEditorCDMVersion.setEditable(false);
@@ -470,7 +471,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
 
     private void populateCdmServerCombo() {
-        Job job = new Job("Retrieve Server Instances") {
+        Job job = new Job(Messages.RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES) {
             @Override
             protected IStatus run(IProgressMonitor monitor) {
                 Display.getDefault().syncExec(new Runnable() {
@@ -493,8 +494,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
                         CdmRemoteSource devRemoteSource = CdmServerInfo.getDevServerRemoteSource();
                         if(devRemoteSource != null) {
                             isDevRemoteSource = true;
-                            String username = System.getProperty("cdm.server.dev.username");
-                            String password = System.getProperty("cdm.server.dev.password");
+                            String username = System.getProperty("cdm.server.dev.username"); //$NON-NLS-1$
+                            String password = System.getProperty("cdm.server.dev.password"); //$NON-NLS-1$
                             if(username != null && !username.isEmpty() && password != null && !password.isEmpty()) {
                                 txtLogin.setText(username);
                                 txtPassword.setText(password);
@@ -551,7 +552,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
             port = Integer.valueOf(txtPort.getText());
         } catch (NumberFormatException nfe) {
             if(!CdmServerInfo.NULL_PORT_STRING.equals(txtPort.getText())) {
-                setMessage("Port should be an integer");
+                setMessage(Messages.RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER);
             }
         }
         return port;
@@ -567,7 +568,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
                 txtCdmServerStatus.setText(STATUS_AVAILABLE);
                 populateCdmInstanceCombo(true);
                 String serverVersionTimestamp = generateLastModifiedTooltip(selectedCsii.getCdmlibLastModified());
-                txtServerVersion.setText(selectedCsii.getCdmlibServicesVersion() + ":" + serverVersionTimestamp);
+                txtServerVersion.setText(selectedCsii.getCdmlibServicesVersion() + ":" + serverVersionTimestamp); //$NON-NLS-1$
             } else {
                 txtCdmServerStatus.setText(STATUS_NOT_AVAILABLE);
                 comboCdmInstance.removeAll();
@@ -585,7 +586,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         txtCdmInstanceStatus.setText(STATUS_RETRIEVING);
         txtCdmInstanceStatus.setToolTipText("");
 
-        serverJob = new Job("Retrieve Server Instances") {
+        serverJob = new Job(Messages.RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES) {
             @Override
             protected IStatus run(IProgressMonitor monitor) {
                 try {
@@ -715,21 +716,21 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         }
 
 
-        Job job = new Job("Managed CDM Server Launch") {
+        Job job = new Job(Messages.RemotingLoginDialog_JOB_SERVER_LAUNCH) {
 
             @Override
             public IStatus run(IProgressMonitor monitor) {
-                String mgdServerConfigFileName = "mgd.datasources.xml";
+                String mgdServerConfigFileName = "mgd.datasources.xml"; //$NON-NLS-1$
                 String config = CDMServerUtils.convertEditorToServerConfig();
                 File managedServerConfigFile;
                 int maxUnits = 50;
-                monitor.beginTask("Launching Managed CDM Server", maxUnits);
+                monitor.beginTask(Messages.RemotingLoginDialog_TASK_LAUNCHING_SERVER, maxUnits);
                 try {
-                    monitor.subTask("Generating datasources config file for " + selectedCdmInstance.getName());
+                    monitor.subTask(String.format(Messages.RemotingLoginDialog_GENERATING_CONFIG_FILE, selectedCdmInstance.getName()));
                     managedServerConfigFile = CDMServerUtils.writeManagedServerConfig(config, mgdServerConfigFileName);
                     monitor.worked(1);
                     CdmStore.setManagedServer(new CDMServer(selectedCdmInstance.getName(), managedServerConfigFile));
-                    monitor.subTask("Starting Managed CDM Server. This may take a while.");
+                    monitor.subTask(Messages.RemotingLoginDialog_STARTING_MGD_SERVER);
                     CdmStore.getManagedServer().start(false, RemotingLoginDialog.this);
                     int serverUnits = 0;
 
@@ -754,14 +755,14 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
                             }
                     });
                 } catch (IOException ioe) {
-                    MessagingUtils.errorDialog("Error generating server config file",
+                    MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE,
                             this,
                             ioe.getMessage(),
                             TaxeditorStorePlugin.PLUGIN_ID,
                             ioe,
                             true);
                 } catch (CDMEmbeddedServerException cse) {
-                    MessagingUtils.errorDialog("Error starting managed server",
+                    MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_STARTING_SERVER,
                             this,
                             cse.getMessage(),
                             TaxeditorStorePlugin.PLUGIN_ID,
@@ -786,9 +787,9 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         try {
             CdmStore.getManagedServer().stop();
         } catch (Exception e) {
-            MessagingUtils.errorDialog("Error stopping managed server",
+            MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_STOPPING_SERVER,
                     this,
-                    "Could not stop managed server running at port " + CdmStore.getManagedServer().getPort() + ". Please stop it manually",
+                    String.format(Messages.RemotingLoginDialog_COULD_NOT_STOP_SERVER, CdmStore.getManagedServer().getPort()),
                     TaxeditorStorePlugin.PLUGIN_ID,
                     e,
                     true);
@@ -836,7 +837,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
                     } else {
                         status =  STATUS_AVAILABLE;
                         available = true;
-                        message = "";
+                        message = ""; //$NON-NLS-1$
                     }
                 }
             } catch (Exception e) {
@@ -909,9 +910,9 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         String username, password;
         IEclipsePreferences preferences = ConfigurationScope.INSTANCE.getNode(STORE_PREFERENCES_NODE);
         Preferences credentialsPrefs = preferences.node(LOGIN_NODE);
-        username = credentialsPrefs.get(getUsernamePrefKey(), "");
+        username = credentialsPrefs.get(getUsernamePrefKey(), ""); //$NON-NLS-1$
         txtLogin.setText(username);
-        password = credentialsPrefs.get(getPasswordPrefKey(),"");
+        password = credentialsPrefs.get(getPasswordPrefKey(),""); //$NON-NLS-1$
         txtPassword.setText(password);
         if(username.isEmpty() || password.isEmpty()) {
             autoConnect = false;
@@ -941,11 +942,11 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
     private boolean validateLogin(ICdmRemoteSource remoteSource) {
         if(getUsername() == null || getUsername().isEmpty()) {
-            setMessage("User login cannot be empty");
+            setMessage(Messages.RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY);
             return false;
         }
         if(getPassword() == null || getPassword().isEmpty()) {
-            setMessage("Password cannot be empty");
+            setMessage(Messages.RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY);
             return false;
         }
 
@@ -979,7 +980,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         if(message != null && !message.isEmpty()) {
             if(message.length() > 60) {
                 styledTxtMessage.setToolTipText(message);
-                message = message.substring(0, 60) + "...";
+                message = message.substring(0, 60) + "..."; //$NON-NLS-1$
             }
             styledTxtMessage.setText(message);
             styledTxtMessage.setVisible(true);
@@ -987,7 +988,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
             shlConnect.setSize(MIN_WIDTH, getHeightWithoutMessage() + MESSAGE_HEIGHT);
             shlConnect.setMinimumSize(MIN_WIDTH, getHeightWithoutMessage() + MESSAGE_HEIGHT);
         } else {
-            styledTxtMessage.setText("");
+            styledTxtMessage.setText(""); //$NON-NLS-1$
             styledTxtMessage.setVisible(false);
             ((GridData)styledTxtMessage.getLayoutData()).exclude = true;
             shlConnect.setSize(MIN_WIDTH, getHeightWithoutMessage());
@@ -1033,11 +1034,11 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
     private String generateLastModifiedTooltip(String cdmlibLastModified) {
         if(StringUtils.isBlank(cdmlibLastModified)) {
-            return "";
+            return ""; //$NON-NLS-1$
         }
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd.HH.mm.z");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd.HH.mm.z"); //$NON-NLS-1$
         Date cdmlibLastModifiedDate;
-        String cdmlibLastModifiedTimestamp = "";
+        String cdmlibLastModifiedTimestamp = ""; //$NON-NLS-1$
 
         cdmlibLastModifiedDate = new Date(Long.valueOf(cdmlibLastModified));
         cdmlibLastModifiedTimestamp = sdf.format(cdmlibLastModifiedDate);
@@ -1048,24 +1049,24 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
     private void setEditorInfo() {
         txtEditorCDMVersion.setText(CdmMetaData.getDbSchemaVersion());
         String editorVersionTimestamp = generateLastModifiedTooltip(CdmApplicationState.getCdmlibLastModified());
-        txtEditorVersion.setText(CdmApplicationState.getCdmlibVersion() + ":" + editorVersionTimestamp);
+        txtEditorVersion.setText(CdmApplicationState.getCdmlibVersion() + ":" + editorVersionTimestamp); //$NON-NLS-1$
     }
 
     private void clearOnServerChange() {
-        setMessage("");
-        txtServerCDMVersion.setText("");
-        txtServerVersion.setText("");
-        txtServerVersion.setToolTipText("");
-        txtServerCDMVersion.setText("");
+        setMessage(""); //$NON-NLS-1$
+        txtServerCDMVersion.setText(""); //$NON-NLS-1$
+        txtServerVersion.setText(""); //$NON-NLS-1$
+        txtServerVersion.setToolTipText(""); //$NON-NLS-1$
+        txtServerCDMVersion.setText(""); //$NON-NLS-1$
         comboCdmInstance.removeAll();
-        txtCdmInstanceStatus.setText("");
+        txtCdmInstanceStatus.setText(""); //$NON-NLS-1$
         txtPort.setEditable(false);
         txtPort.setEnabled(false);
     }
 
     private void clearOnInstanceChange() {
-        setMessage("");
-        txtServerCDMVersion.setText("");
+        setMessage(""); //$NON-NLS-1$
+        txtServerCDMVersion.setText(""); //$NON-NLS-1$
     }
 
     /**
@@ -1079,7 +1080,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
             public void run() {
                 serverJob.cancel();
 
-                String title = "CDM Server launch error";
+                String title = Messages.RemotingLoginDialog_SERVER_LAUNCH_ERROR;
                 String  message = t.getMessage();
 
 
index a3988f6c18e05dee7d0eba260436eb022ce03ae0..93477123e2bdfb02dbbf4551a5289a2cb695749a 100644 (file)
@@ -41,9 +41,6 @@ public class DeleteConfiguratorDialog extends MessageDialog{
         this.configurator = configurator;
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.MessageDialog#createCustomArea(org.eclipse.swt.widgets.Composite)
-     */
     @Override
     protected Control createCustomArea(Composite parent) {
         DeleteConfiguratorComposite composite = new DeleteConfiguratorComposite(parent, NONE);
@@ -67,19 +64,12 @@ public class DeleteConfiguratorDialog extends MessageDialog{
         return dialog.open() == 0;
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#isResizable()
-     */
     @Override
     protected boolean isResizable() {
         return true;
     }
 
 
-    /**
-     * @param kind
-     * @return
-     */
     protected static String[] getButtonLabels(int kind) {
         String[] dialogButtonLabels;
         switch (kind) {
index c2efefbb14b18314f1dffb9cb4e66f29a4cf6a24..675ed5a004fc672d277ceba74e2c7ee05b8aa997 100644 (file)
@@ -83,7 +83,7 @@ public class DeleteTaxonBaseConfiguratorComposite extends Composite implements S
         setBackground(getBackground());
 
         btnDeleteTaxonName = new Button(this, SWT.CHECK);
-        btnDeleteTaxonName.setText("Delete taxon name if possible");
+        btnDeleteTaxonName.setText("Delete name if possible");
         btnDeleteTaxonName.setSelection(true);
         btnDeleteTaxonName.addListener(SWT.Selection, new Listener() {
                @Override
index a22f14454b57b8fe06cad6624edb8ee1e1ce9153..e274fe48f58069d666ceb66259393e3cce3115ca 100644 (file)
@@ -14,6 +14,7 @@ import java.lang.reflect.Field;
 import java.text.Collator;
 import java.util.Comparator;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 import java.util.UUID;
@@ -39,7 +40,6 @@ import org.eclipse.swt.widgets.Link;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IMemento;
-import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
@@ -62,14 +62,15 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
  * @version 1.0
  */
 public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmBase> extends
-               FilteredItemsSelectionDialog implements IConversationEnabled {
+               CdmFilteredItemsSelectionDialog implements IConversationEnabled {
 
        private final ConversationHolder conversation;
 
        protected List<UuidAndTitleCache<T>> model;
        private final Set<T> transientCdmObjects = new HashSet<T>();
        private final String settings;
-
+       protected final int limitOfInitialElements = 100;
+       
        protected T cdmBaseToBeFiltered;
 
 
@@ -98,9 +99,9 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                initModel();
                shell.setCursor(cursor);
                String objectTitle = getTitle(cdmObject);
-               if (objectTitle != null) {
-                       setInitialPattern(objectTitle);
-               }
+//             if (objectTitle != null) {
+//                     setInitialPattern(objectTitle);
+//             }
 
                setListLabelProvider(createListLabelProvider());
                setDetailsLabelProvider(createDetailsLabelProvider());
@@ -223,15 +224,10 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        /** {@inheritDoc} */
        @Override
        public void refresh() {
-               initModel();
-               filterExcludedObjects();
                super.refresh();
        }
 
-       /**
-        * <p>initModel</p>
-        */
-       abstract protected void initModel();
+
 
        /* (non-Javadoc)
         * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter()
@@ -302,6 +298,8 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                ((Text) getPatternControl()).setText(pattern);
        }
 
+
+
        /* (non-Javadoc)
        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
        */
@@ -313,7 +311,11 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                try {
                        if(model != null){
                                progressMonitor.beginTask("Looking for entities", model.size());
-                               for(UuidAndTitleCache<T> element : model){
+                               filterExcludedObjects();
+                               Iterator<UuidAndTitleCache<T>> iterator = model.iterator();
+                               UuidAndTitleCache<T> element;
+                               while(iterator.hasNext()){
+                                   element = iterator.next();
                                        contentProvider.add(element, itemsFilter);
                                        if (progressMonitor.isCanceled()) {
                                                throw new OperationCanceledException();
@@ -487,9 +489,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                                    if (status == IStatus.OK) {
 
                                        T entity = (T) wizard.getEntity();
-                                       model.add(new UuidAndTitleCache<T>(entity.getUuid(),
-                                               entity.getId(),
-                                               getTitle(entity)));
+                                      // model.add(new UuidAndTitleCache<T>(entity.getUuid(), entity.getId(), getTitle(entity)));
                                        refresh();
                                        setPattern(entity);
                                        getConversationHolder().bind();
index 3891c897ea0b493522571b6ea314cc59191e9040..6c7b9e294f80d4980cf9b9e5ed49ae4771c8b1dc 100644 (file)
@@ -14,7 +14,9 @@ import java.util.UUID;
 
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IAgentService;
@@ -39,11 +41,13 @@ public class AgentSelectionDialog extends
        /**
         *
         */
-       private static final String PERSON = "Person";
+       protected static final String PERSON = "Person";
        /**
         *
         */
-       private static final String TEAM = "Team";
+       protected static final String TEAM = "Team";
+       
+       protected static boolean selectTeamMember;
 
        /**
         * <p>select</p>
@@ -53,9 +57,9 @@ public class AgentSelectionDialog extends
         * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
         * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
         */
-       public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity) {
+       public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity, boolean selectTeamMember) {
                AgentSelectionDialog dialog = new AgentSelectionDialog(shell, conversation,
-                               "Choose Agent", false, AgentSelectionDialog.class.getCanonicalName(), entity);
+                               "Choose Agent", false, AgentSelectionDialog.class.getCanonicalName(), entity, selectTeamMember);
                return getSelectionFromDialog(dialog);
        }
 
@@ -69,8 +73,9 @@ public class AgentSelectionDialog extends
         * @param multi a boolean.
         * @param settings a {@link java.lang.String} object.
         */
-       protected AgentSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, String settings, AgentBase agent) {
+       protected AgentSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, String settings, AgentBase agent, boolean selectTeamMember) {
                super(shell, conversation, title, multi, settings, agent);
+               this.selectTeamMember = selectTeamMember;
        }
 
 
@@ -120,6 +125,9 @@ public class AgentSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected String getNewWizardLinkText() {
+               if (this.selectTeamMember){
+                       return String.format("Create a new <a>%1s</a>", PERSON);
+               }
                return String.format("Create a new <a>%1s</a> or <a>%2s</a>", TEAM, PERSON);
        }
 
@@ -134,7 +142,14 @@ public class AgentSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(IAgentService.class).getUuidAndTitleCache();
+           Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+
+               model = CdmStore.getService(IAgentService.class).getUuidAndTitleCache(limitOfInitialElements, pattern);
        }
 
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CdmFilteredItemsSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CdmFilteredItemsSelectionDialog.java
new file mode 100644 (file)
index 0000000..b0883e1
--- /dev/null
@@ -0,0 +1,3444 @@
+// $Id$
+/**
+* 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.ui.dialog.selection;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.ProgressMonitorWrapper;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.LegacyActionTools;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.ContentViewer;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IColorProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.IFontProvider;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ILazyContentProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.ACC;
+import org.eclipse.swt.accessibility.AccessibleAdapter;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.custom.ViewForm;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.TraverseEvent;
+import org.eclipse.swt.events.TraverseListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.ActiveShellExpression;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IWorkbenchCommandConstants;
+import org.eclipse.ui.IWorkbenchPreferenceConstants;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.XMLMemento;
+import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
+import org.eclipse.ui.dialogs.SearchPattern;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+import org.eclipse.ui.handlers.IHandlerActivation;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
+import org.eclipse.ui.internal.WorkbenchImages;
+import org.eclipse.ui.internal.WorkbenchMessages;
+import org.eclipse.ui.internal.WorkbenchPlugin;
+import org.eclipse.ui.progress.UIJob;
+import org.eclipse.ui.statushandlers.StatusManager;
+
+/**
+ * @author k.luther
+ * @date 10.06.2016
+ *
+ * This is a class copied from FilteredItemsSelectionDialog and adapted to the Cdm use case. The original
+ * dialog gets all items when opening the dialog and then apply the filter on all items.
+ * In our case we need a possibility to filter the items already when getting them from the DB, so we adapt the
+ * original class
+ * the abstract method initMOdel was added and the method applyFilter was modified
+ * original description:
+ * Shows a list of items to the user with a text entry field for a string
+ * pattern used to filter the list of items.
+ *
+ *
+ */
+
+public abstract class CdmFilteredItemsSelectionDialog extends SelectionStatusDialog {
+
+
+
+        private static final String DIALOG_BOUNDS_SETTINGS = "DialogBoundsSettings"; //$NON-NLS-1$
+
+        private static final String SHOW_STATUS_LINE = "ShowStatusLine"; //$NON-NLS-1$
+
+        private static final String HISTORY_SETTINGS = "History"; //$NON-NLS-1$
+
+        private static final String DIALOG_HEIGHT = "DIALOG_HEIGHT"; //$NON-NLS-1$
+
+        private static final String DIALOG_WIDTH = "DIALOG_WIDTH"; //$NON-NLS-1$
+
+        /**
+         * Represents an empty selection in the pattern input field (used only for
+         * initial pattern).
+         */
+        public static final int NONE = 0;
+
+        /**
+         * Pattern input field selection where caret is at the beginning (used only
+         * for initial pattern).
+         */
+        public static final int CARET_BEGINNING = 1;
+
+        /**
+         * Represents a full selection in the pattern input field (used only for
+         * initial pattern).
+         */
+        public static final int FULL_SELECTION = 2;
+
+        private Text pattern;
+
+        private TableViewer list;
+
+        private DetailsContentViewer details;
+
+        /**
+         * It is a duplicate of a field in the CLabel class in DetailsContentViewer.
+         * It is maintained, because the <code>setDetailsLabelProvider()</code>
+         * could be called before content area is created.
+         */
+        private ILabelProvider detailsLabelProvider;
+
+        private ItemsListLabelProvider itemsListLabelProvider;
+
+        private MenuManager menuManager;
+
+        private MenuManager contextMenuManager;
+
+        private final boolean multi;
+
+        private ToolBar toolBar;
+
+        private ToolItem toolItem;
+
+        private Label progressLabel;
+
+        private ToggleStatusLineAction toggleStatusLineAction;
+
+        private RemoveHistoryItemAction removeHistoryItemAction;
+
+        private ActionContributionItem removeHistoryActionContributionItem;
+
+        private IStatus status;
+
+        private final RefreshCacheJob refreshCacheJob;
+
+        private final RefreshProgressMessageJob refreshProgressMessageJob = new RefreshProgressMessageJob();
+
+        private Object[] currentSelection;
+
+        private final ContentProvider contentProvider;
+
+        private final FilterHistoryJob filterHistoryJob;
+
+        private final FilterJob filterJob;
+
+        private ItemsFilter filter;
+
+        private List lastCompletedResult;
+
+        private ItemsFilter lastCompletedFilter;
+
+        private String initialPatternText;
+
+        private int selectionMode;
+
+        private ItemsListSeparator itemsListSeparator;
+
+        private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
+        private boolean refreshWithLastSelection = false;
+
+        private IHandlerActivation showViewHandler;
+
+        /**
+         * Creates a new instance of the class.
+         *
+         * @param shell
+         *            shell to parent the dialog on
+         * @param multi
+         *            indicates whether dialog allows to select more than one
+         *            position in its list of items
+         */
+        public CdmFilteredItemsSelectionDialog(Shell shell, boolean multi) {
+            super(shell);
+            this.multi = multi;
+            filterHistoryJob = new FilterHistoryJob();
+            filterJob = new FilterJob();
+            contentProvider = new ContentProvider();
+            refreshCacheJob = new RefreshCacheJob();
+            itemsListSeparator = new ItemsListSeparator(
+                    WorkbenchMessages.FilteredItemsSelectionDialog_separatorLabel);
+            selectionMode = NONE;
+        }
+
+        /**
+         * Creates a new instance of the class. Created dialog won't allow to select
+         * more than one item.
+         *
+         * @param shell
+         *            shell to parent the dialog on
+         */
+        public CdmFilteredItemsSelectionDialog(Shell shell) {
+            this(shell, false);
+        }
+
+        /**
+         * Adds viewer filter to the dialog items list.
+         *
+         * @param filter
+         *            the new filter
+         */
+        protected void addListFilter(ViewerFilter filter) {
+            contentProvider.addFilter(filter);
+        }
+
+        /**
+         * Sets a new label provider for items in the list. If the label provider
+         * also implements {@link
+         * org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider
+         * .IStyledLabelProvider}, the style text labels provided by it will be used
+         * provided that the corresponding preference is set.
+         *
+         * @see IWorkbenchPreferenceConstants#USE_COLORED_LABELS
+         *
+         * @param listLabelProvider
+         *      the label provider for items in the list
+         */
+        public void setListLabelProvider(ILabelProvider listLabelProvider) {
+            getItemsListLabelProvider().setProvider(listLabelProvider);
+        }
+
+        /**
+         * Returns the label decorator for selected items in the list.
+         *
+         * @return the label decorator for selected items in the list
+         */
+        private ILabelDecorator getListSelectionLabelDecorator() {
+            return getItemsListLabelProvider().getSelectionDecorator();
+        }
+
+        /**
+         * Sets the label decorator for selected items in the list.
+         *
+         * @param listSelectionLabelDecorator
+         *            the label decorator for selected items in the list
+         */
+        public void setListSelectionLabelDecorator(
+                ILabelDecorator listSelectionLabelDecorator) {
+            getItemsListLabelProvider().setSelectionDecorator(
+                    listSelectionLabelDecorator);
+        }
+
+        /**
+         * Returns the item list label provider.
+         *
+         * @return the item list label provider
+         */
+        private ItemsListLabelProvider getItemsListLabelProvider() {
+            if (itemsListLabelProvider == null) {
+                itemsListLabelProvider = new ItemsListLabelProvider(
+                        new LabelProvider(), null);
+            }
+            return itemsListLabelProvider;
+        }
+
+        /**
+         * Sets label provider for the details field.
+         *
+         * For a single selection, the element sent to
+         * {@link ILabelProvider#getImage(Object)} and
+         * {@link ILabelProvider#getText(Object)} is the selected object, for
+         * multiple selection a {@link String} with amount of selected items is the
+         * element.
+         *
+         * @see #getSelectedItems() getSelectedItems() can be used to retrieve
+         *      selected items and get the items count.
+         *
+         * @param detailsLabelProvider
+         *            the label provider for the details field
+         */
+        public void setDetailsLabelProvider(ILabelProvider detailsLabelProvider) {
+            this.detailsLabelProvider = detailsLabelProvider;
+            if (details != null) {
+                details.setLabelProvider(detailsLabelProvider);
+            }
+        }
+
+        private ILabelProvider getDetailsLabelProvider() {
+            if (detailsLabelProvider == null) {
+                detailsLabelProvider = new LabelProvider();
+            }
+            return detailsLabelProvider;
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see org.eclipse.jface.window.Window#create()
+         */
+        @Override
+        public void create() {
+            super.create();
+            pattern.setFocus();
+        }
+
+        /**
+         * Restores dialog using persisted settings. The default implementation
+         * restores the status of the details line and the selection history.
+         *
+         * @param settings
+         *            settings used to restore dialog
+         */
+        protected void restoreDialog(IDialogSettings settings) {
+            boolean toggleStatusLine = true;
+
+            if (settings.get(SHOW_STATUS_LINE) != null) {
+                toggleStatusLine = settings.getBoolean(SHOW_STATUS_LINE);
+            }
+
+            toggleStatusLineAction.setChecked(toggleStatusLine);
+
+            details.setVisible(toggleStatusLine);
+
+            String setting = settings.get(HISTORY_SETTINGS);
+            if (setting != null) {
+                try {
+                    IMemento memento = XMLMemento.createReadRoot(new StringReader(
+                            setting));
+                    this.contentProvider.loadHistory(memento);
+                } catch (WorkbenchException e) {
+                    // Simply don't restore the settings
+                    StatusManager
+                            .getManager()
+                            .handle(
+                                    new Status(
+                                            IStatus.ERROR,
+                                            PlatformUI.PLUGIN_ID,
+                                            IStatus.ERROR,
+                                            WorkbenchMessages.FilteredItemsSelectionDialog_restoreError,
+                                            e));
+                }
+            }
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see org.eclipse.jface.window.Window#close()
+         */
+        @Override
+        public boolean close() {
+            this.filterJob.cancel();
+            this.refreshCacheJob.cancel();
+            this.refreshProgressMessageJob.cancel();
+            if (showViewHandler != null) {
+                IHandlerService service = (IHandlerService) PlatformUI
+                        .getWorkbench().getService(IHandlerService.class);
+                service.deactivateHandler(showViewHandler);
+                showViewHandler.getHandler().dispose();
+                showViewHandler = null;
+            }
+            if (menuManager != null) {
+                menuManager.dispose();
+            }
+            if (contextMenuManager != null) {
+                contextMenuManager.dispose();
+            }
+            storeDialog(getDialogSettings());
+            return super.close();
+        }
+
+        /**
+         * Stores dialog settings.
+         *
+         * @param settings
+         *            settings used to store dialog
+         */
+        protected void storeDialog(IDialogSettings settings) {
+            settings.put(SHOW_STATUS_LINE, toggleStatusLineAction.isChecked());
+
+            XMLMemento memento = XMLMemento.createWriteRoot(HISTORY_SETTINGS);
+            this.contentProvider.saveHistory(memento);
+            StringWriter writer = new StringWriter();
+            try {
+                memento.save(writer);
+                settings.put(HISTORY_SETTINGS, writer.getBuffer().toString());
+            } catch (IOException e) {
+                // Simply don't store the settings
+                StatusManager
+                        .getManager()
+                        .handle(
+                                new Status(
+                                        IStatus.ERROR,
+                                        PlatformUI.PLUGIN_ID,
+                                        IStatus.ERROR,
+                                        WorkbenchMessages.FilteredItemsSelectionDialog_storeError,
+                                        e));
+            }
+        }
+
+        /**
+         * Create a new header which is labelled by headerLabel.
+         *
+         * @param parent
+         * @return Label the label of the header
+         */
+        private Label createHeader(Composite parent) {
+            Composite header = new Composite(parent, SWT.NONE);
+
+            GridLayout layout = new GridLayout();
+            layout.numColumns = 2;
+            layout.marginWidth = 0;
+            layout.marginHeight = 0;
+            header.setLayout(layout);
+
+            Label headerLabel = new Label(header, SWT.NONE);
+            headerLabel.setText((getMessage() != null && getMessage().trim()
+                    .length() > 0) ? getMessage()
+                    : WorkbenchMessages.FilteredItemsSelectionDialog_patternLabel);
+            headerLabel.addTraverseListener(new TraverseListener() {
+                @Override
+                public void keyTraversed(TraverseEvent e) {
+                    if (e.detail == SWT.TRAVERSE_MNEMONIC && e.doit) {
+                        e.detail = SWT.TRAVERSE_NONE;
+                        pattern.setFocus();
+                    }
+                }
+            });
+
+            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+            headerLabel.setLayoutData(gd);
+
+            createViewMenu(header);
+            header.setLayoutData(gd);
+            return headerLabel;
+        }
+
+        /**
+         * Create the labels for the list and the progress. Return the list label.
+         *
+         * @param parent
+         * @return Label
+         */
+        private Label createLabels(Composite parent) {
+            Composite labels = new Composite(parent, SWT.NONE);
+
+            GridLayout layout = new GridLayout();
+            layout.numColumns = 2;
+            layout.marginWidth = 0;
+            layout.marginHeight = 0;
+            labels.setLayout(layout);
+
+            Label listLabel = new Label(labels, SWT.NONE);
+            listLabel
+                    .setText(WorkbenchMessages.FilteredItemsSelectionDialog_listLabel);
+
+            listLabel.addTraverseListener(new TraverseListener() {
+                @Override
+                public void keyTraversed(TraverseEvent e) {
+                    if (e.detail == SWT.TRAVERSE_MNEMONIC && e.doit) {
+                        e.detail = SWT.TRAVERSE_NONE;
+                        getList().getTable().setFocus();
+                    }
+                }
+            });
+
+            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+            listLabel.setLayoutData(gd);
+
+            progressLabel = new Label(labels, SWT.RIGHT);
+            progressLabel.setLayoutData(gd);
+
+            labels.setLayoutData(gd);
+            return listLabel;
+        }
+
+        private void createViewMenu(Composite parent) {
+            toolBar = new ToolBar(parent, SWT.FLAT);
+            toolItem = new ToolItem(toolBar, SWT.PUSH, 0);
+
+            GridData data = new GridData();
+            data.horizontalAlignment = GridData.END;
+            toolBar.setLayoutData(data);
+
+            toolBar.addMouseListener(new MouseAdapter() {
+                @Override
+                public void mouseDown(MouseEvent e) {
+                    showViewMenu();
+                }
+            });
+
+            toolItem.setImage(WorkbenchImages
+                    .getImage(IWorkbenchGraphicConstants.IMG_LCL_VIEW_MENU));
+            toolItem
+                    .setToolTipText(WorkbenchMessages.FilteredItemsSelectionDialog_menu);
+            toolItem.addSelectionListener(new SelectionAdapter() {
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    showViewMenu();
+                }
+            });
+
+            menuManager = new MenuManager();
+
+            fillViewMenu(menuManager);
+
+            IHandlerService service = (IHandlerService) PlatformUI.getWorkbench()
+                    .getService(IHandlerService.class);
+            IHandler handler = new AbstractHandler() {
+                @Override
+                public Object execute(ExecutionEvent event) {
+                    showViewMenu();
+                    return null;
+                }
+            };
+            showViewHandler = service.activateHandler(
+                    IWorkbenchCommandConstants.WINDOW_SHOW_VIEW_MENU, handler,
+                    new ActiveShellExpression(getShell()));
+        }
+
+        /**
+         * Fills the menu of the dialog.
+         *
+         * @param menuManager
+         *            the menu manager
+         */
+        protected void fillViewMenu(IMenuManager menuManager) {
+            toggleStatusLineAction = new ToggleStatusLineAction();
+            menuManager.add(toggleStatusLineAction);
+        }
+
+        private void showViewMenu() {
+            Menu menu = menuManager.createContextMenu(getShell());
+            Rectangle bounds = toolItem.getBounds();
+            Point topLeft = new Point(bounds.x, bounds.y + bounds.height);
+            topLeft = toolBar.toDisplay(topLeft);
+            menu.setLocation(topLeft.x, topLeft.y);
+            menu.setVisible(true);
+        }
+
+        /**
+         * Hook that allows to add actions to the context menu.
+         * <p>
+         * Subclasses may extend in order to add other actions.</p>
+         *
+         * @param menuManager the context menu manager
+         * @since 3.5
+         */
+        protected void fillContextMenu(IMenuManager menuManager) {
+            List selectedElements= ((StructuredSelection)getList().getSelection()).toList();
+
+            Object item= null;
+
+            for (Iterator it= selectedElements.iterator(); it.hasNext();) {
+                item= it.next();
+                if (item instanceof ItemsListSeparator || !isHistoryElement(item)) {
+                    return;
+                }
+            }
+
+            if (selectedElements.size() > 0) {
+                removeHistoryItemAction.setText(WorkbenchMessages.FilteredItemsSelectionDialog_removeItemsFromHistoryAction);
+
+                menuManager.add(removeHistoryActionContributionItem);
+
+            }
+        }
+
+        private void createPopupMenu() {
+            removeHistoryItemAction = new RemoveHistoryItemAction();
+            removeHistoryActionContributionItem = new ActionContributionItem(
+                    removeHistoryItemAction);
+
+            contextMenuManager = new MenuManager();
+            contextMenuManager.setRemoveAllWhenShown(true);
+            contextMenuManager.addMenuListener(new IMenuListener() {
+                @Override
+                public void menuAboutToShow(IMenuManager manager) {
+                    fillContextMenu(manager);
+                }
+            });
+
+            final Table table = getList().getTable();
+            Menu menu= contextMenuManager.createContextMenu(table);
+            table.setMenu(menu);
+        }
+
+        /**
+         * Creates an extra content area, which will be located above the details.
+         *
+         * @param parent
+         *            parent to create the dialog widgets in
+         * @return an extra content area
+         */
+        protected abstract Control createExtendedContentArea(Composite parent);
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+         */
+        @Override
+        protected Control createDialogArea(Composite parent) {
+            Composite dialogArea = (Composite) super.createDialogArea(parent);
+
+            Composite content = new Composite(dialogArea, SWT.NONE);
+            GridData gd = new GridData(GridData.FILL_BOTH);
+            content.setLayoutData(gd);
+
+            GridLayout layout = new GridLayout();
+            layout.numColumns = 1;
+            layout.marginWidth = 0;
+            layout.marginHeight = 0;
+            content.setLayout(layout);
+
+            final Label headerLabel = createHeader(content);
+
+            pattern = new Text(content, SWT.SINGLE | SWT.BORDER | SWT.SEARCH | SWT.ICON_CANCEL);
+            pattern.getAccessible().addAccessibleListener(new AccessibleAdapter() {
+                @Override
+                public void getName(AccessibleEvent e) {
+                    e.result = LegacyActionTools.removeMnemonics(headerLabel
+                            .getText());
+                }
+            });
+            gd = new GridData(GridData.FILL_HORIZONTAL);
+            pattern.setLayoutData(gd);
+
+            final Label listLabel = createLabels(content);
+
+            setList(new TableViewer(content, (multi ? SWT.MULTI : SWT.SINGLE)
+                    | SWT.BORDER | SWT.V_SCROLL | SWT.VIRTUAL));
+            getList().getTable().getAccessible().addAccessibleListener(
+                    new AccessibleAdapter() {
+                        @Override
+                        public void getName(AccessibleEvent e) {
+                            if (e.childID == ACC.CHILDID_SELF) {
+                                e.result = LegacyActionTools
+                                        .removeMnemonics(listLabel.getText());
+                            }
+                        }
+                    });
+            getList().setContentProvider(contentProvider);
+            getList().setLabelProvider(getItemsListLabelProvider());
+            getList().setInput(new Object[0]);
+            getList().setItemCount(contentProvider.getNumberOfElements());
+            gd = new GridData(GridData.FILL_BOTH);
+            applyDialogFont(getList().getTable());
+            gd.heightHint= getList().getTable().getItemHeight() * 15;
+            getList().getTable().setLayoutData(gd);
+
+            createPopupMenu();
+
+            pattern.addModifyListener(new ModifyListener() {
+                @Override
+                public void modifyText(ModifyEvent e) {
+                    applyFilter();
+                }
+            });
+
+            pattern.addKeyListener(new KeyAdapter() {
+                @Override
+                public void keyPressed(KeyEvent e) {
+                    if (e.keyCode == SWT.ARROW_DOWN) {
+                        if (getList().getTable().getItemCount() > 0) {
+                            getList().getTable().setFocus();
+                        }
+                    }
+                }
+            });
+
+            getList().addSelectionChangedListener(new ISelectionChangedListener() {
+                @Override
+                public void selectionChanged(SelectionChangedEvent event) {
+                    StructuredSelection selection = (StructuredSelection) event
+                            .getSelection();
+                    handleSelected(selection);
+                }
+            });
+
+            getList().addDoubleClickListener(new IDoubleClickListener() {
+                @Override
+                public void doubleClick(DoubleClickEvent event) {
+                    handleDoubleClick();
+                }
+            });
+
+            getList().getTable().addKeyListener(new KeyAdapter() {
+                @Override
+                public void keyPressed(KeyEvent e) {
+
+                    if (e.keyCode == SWT.DEL) {
+
+                        List selectedElements = ((StructuredSelection) getList()
+                                .getSelection()).toList();
+
+                        Object item = null;
+                        boolean isSelectedHistory = true;
+
+                        for (Iterator it = selectedElements.iterator(); it
+                                .hasNext();) {
+                            item = it.next();
+                            if (item instanceof ItemsListSeparator
+                                    || !isHistoryElement(item)) {
+                                isSelectedHistory = false;
+                                break;
+                            }
+                        }
+                        if (isSelectedHistory) {
+                            removeSelectedItems(selectedElements);
+                        }
+
+                    }
+
+                    if (e.keyCode == SWT.ARROW_UP && (e.stateMask & SWT.SHIFT) != 0
+                            && (e.stateMask & SWT.CTRL) != 0) {
+                        StructuredSelection selection = (StructuredSelection) getList()
+                                .getSelection();
+
+                        if (selection.size() == 1) {
+                            Object element = selection.getFirstElement();
+                            if (element.equals(getList().getElementAt(0))) {
+                                pattern.setFocus();
+                            }
+                            if (getList().getElementAt(getList().getTable()
+                                    .getSelectionIndex() - 1) instanceof ItemsListSeparator) {
+                                getList().getTable().setSelection(
+                                        getList().getTable().getSelectionIndex() - 1);
+                            }
+                            getList().getTable().notifyListeners(SWT.Selection,
+                                    new Event());
+
+                        }
+                    }
+
+                    if (e.keyCode == SWT.ARROW_DOWN
+                            && (e.stateMask & SWT.SHIFT) != 0
+                            && (e.stateMask & SWT.CTRL) != 0) {
+
+                        if (getList()
+                                .getElementAt(getList().getTable().getSelectionIndex() + 1) instanceof ItemsListSeparator) {
+                            getList().getTable().setSelection(
+                                    getList().getTable().getSelectionIndex() + 1);
+                        }
+                        getList().getTable().notifyListeners(SWT.Selection, new Event());
+                    }
+
+                }
+            });
+
+            createExtendedContentArea(content);
+
+            details = new DetailsContentViewer(content, SWT.BORDER | SWT.FLAT);
+            details.setVisible(toggleStatusLineAction.isChecked());
+            details.setContentProvider(new NullContentProvider());
+            details.setLabelProvider(getDetailsLabelProvider());
+
+            applyDialogFont(content);
+
+            restoreDialog(getDialogSettings());
+
+            if (initialPatternText != null) {
+                pattern.setText(initialPatternText);
+            }
+
+            switch (selectionMode) {
+            case CARET_BEGINNING:
+                pattern.setSelection(0, 0);
+                break;
+            case FULL_SELECTION:
+                pattern.setSelection(0, initialPatternText.length());
+                break;
+            }
+
+            // apply filter even if pattern is empty (display history)
+            applyFilter();
+
+            return dialogArea;
+        }
+
+        /**
+         * This method is a hook for subclasses to override default dialog behavior.
+         * The <code>handleDoubleClick()</code> method handles double clicks on
+         * the list of filtered elements.
+         * <p>
+         * Current implementation makes double-clicking on the list do the same as
+         * pressing <code>OK</code> button on the dialog.
+         */
+        protected void handleDoubleClick() {
+            okPressed();
+        }
+
+        /**
+         * Refreshes the details field according to the current selection in the
+         * items list.
+         */
+        private void refreshDetails() {
+            StructuredSelection selection = getSelectedItems();
+
+            switch (selection.size()) {
+            case 0:
+                details.setInput(null);
+                break;
+            case 1:
+                details.setInput(selection.getFirstElement());
+                break;
+            default:
+                details
+                        .setInput(NLS
+                                .bind(
+                                        WorkbenchMessages.FilteredItemsSelectionDialog_nItemsSelected,
+                                        new Integer(selection.size())));
+                break;
+            }
+
+        }
+
+        /**
+         * Handle selection in the items list by updating labels of selected and
+         * unselected items and refresh the details field using the selection.
+         *
+         * @param selection
+         *            the new selection
+         */
+        protected void handleSelected(StructuredSelection selection) {
+            IStatus status = new Status(IStatus.OK, PlatformUI.PLUGIN_ID,
+                    IStatus.OK, EMPTY_STRING, null);
+
+            Object[] lastSelection = getCurrentSelection();
+
+            setCurrentSelection(selection.toArray());
+
+            if (selection.size() == 0) {
+                status = new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID,
+                        IStatus.ERROR, EMPTY_STRING, null);
+
+                if (lastSelection != null
+                        && getListSelectionLabelDecorator() != null) {
+                    getList().update(lastSelection, null);
+                }
+
+                setCurrentSelection(null);
+
+            } else {
+                status = new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID,
+                        IStatus.ERROR, EMPTY_STRING, null);
+
+                List items = selection.toList();
+
+                Object item = null;
+                IStatus tempStatus = null;
+
+                for (Iterator it = items.iterator(); it.hasNext();) {
+                    Object o = it.next();
+
+                    if (o instanceof ItemsListSeparator) {
+                        continue;
+                    }
+
+                    item = o;
+                    tempStatus = validateItem(item);
+
+                    if (tempStatus.isOK()) {
+                        status = new Status(IStatus.OK, PlatformUI.PLUGIN_ID,
+                                IStatus.OK, EMPTY_STRING, null);
+                    } else {
+                        status = tempStatus;
+                        // if any selected element is not valid status is set to
+                        // ERROR
+                        break;
+                    }
+                }
+
+                if (lastSelection != null
+                        && getListSelectionLabelDecorator() != null) {
+                    getList().update(lastSelection, null);
+                }
+
+                if (getListSelectionLabelDecorator() != null) {
+                    getList().update(getCurrentSelection(), null);
+                }
+            }
+
+            refreshDetails();
+            updateStatus(status);
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see org.eclipse.jface.window.Dialog#getDialogBoundsSettings()
+         */
+        @Override
+        protected IDialogSettings getDialogBoundsSettings() {
+            IDialogSettings settings = getDialogSettings();
+            IDialogSettings section = settings.getSection(DIALOG_BOUNDS_SETTINGS);
+            if (section == null) {
+                section = settings.addNewSection(DIALOG_BOUNDS_SETTINGS);
+                section.put(DIALOG_HEIGHT, 500);
+                section.put(DIALOG_WIDTH, 600);
+            }
+            return section;
+        }
+
+        /**
+         * Returns the dialog settings. Returned object can't be null.
+         *
+         * @return return dialog settings for this dialog
+         */
+        protected abstract IDialogSettings getDialogSettings();
+
+        /**
+         * Refreshes the dialog - has to be called in UI thread.
+         */
+        public void refresh() {
+            if (getList() != null && !getList().getTable().isDisposed()) {
+
+                List lastRefreshSelection = ((StructuredSelection) getList()
+                        .getSelection()).toList();
+                getList().getTable().deselectAll();
+
+                getList().setItemCount(contentProvider.getNumberOfElements());
+                getList().refresh();
+
+                if (getList().getTable().getItemCount() > 0) {
+                    // preserve previous selection
+                    if (refreshWithLastSelection && lastRefreshSelection != null
+                            && lastRefreshSelection.size() > 0) {
+                        getList().setSelection(new StructuredSelection(
+                                lastRefreshSelection));
+                    } else {
+                        refreshWithLastSelection = true;
+                        getList().getTable().setSelection(0);
+                        getList().getTable().notifyListeners(SWT.Selection, new Event());
+                    }
+                } else {
+                    getList().setSelection(StructuredSelection.EMPTY);
+                }
+
+            }
+
+            scheduleProgressMessageRefresh();
+        }
+
+        /**
+         * Updates the progress label.
+         *
+         * @deprecated
+         */
+        @Deprecated
+        public void updateProgressLabel() {
+            scheduleProgressMessageRefresh();
+        }
+
+        /**
+         * Notifies the content provider - fires filtering of content provider
+         * elements. During the filtering, a separator between history and workspace
+         * matches is added.
+         * <p>
+         * This is a long running operation and should be called in a job.
+         *
+         * @param checkDuplicates
+         *            <code>true</code> if data concerning elements duplication
+         *            should be computed - it takes much more time than the standard
+         *            filtering
+         * @param monitor
+         *            a progress monitor or <code>null</code> if no monitor is
+         *            available
+         */
+        public void reloadCache(boolean checkDuplicates, IProgressMonitor monitor) {
+            if (getList() != null && !getList().getTable().isDisposed()
+                    && contentProvider != null) {
+                contentProvider.reloadCache(checkDuplicates, monitor);
+            }
+        }
+
+        /**
+         * Schedule refresh job.
+         */
+        public void scheduleRefresh() {
+            refreshCacheJob.cancelAll();
+            refreshCacheJob.schedule();
+        }
+
+        /**
+         * Schedules progress message refresh.
+         */
+        public void scheduleProgressMessageRefresh() {
+            if (filterJob.getState() != Job.RUNNING
+                    && refreshProgressMessageJob.getState() != Job.RUNNING) {
+                refreshProgressMessageJob.scheduleProgressRefresh(null);
+            }
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see org.eclipse.ui.dialogs.SelectionStatusDialog#computeResult()
+         */
+        @Override
+        protected void computeResult() {
+
+            List selectedElements = ((StructuredSelection) getList().getSelection())
+                    .toList();
+
+            List objectsToReturn = new ArrayList();
+
+            Object item = null;
+
+            for (Iterator it = selectedElements.iterator(); it.hasNext();) {
+                item = it.next();
+
+                if (!(item instanceof ItemsListSeparator)) {
+                    accessedHistoryItem(item);
+                    objectsToReturn.add(item);
+                }
+            }
+
+            setResult(objectsToReturn);
+        }
+
+        /*
+         * @see org.eclipse.ui.dialogs.SelectionStatusDialog#updateStatus(org.eclipse.core.runtime.IStatus)
+         */
+        @Override
+        protected void updateStatus(IStatus status) {
+            this.status = status;
+            super.updateStatus(status);
+        }
+
+        /*
+         * @see Dialog#okPressed()
+         */
+        @Override
+        protected void okPressed() {
+            if (status != null
+                    && (status.isOK() || status.getCode() == IStatus.INFO)) {
+                super.okPressed();
+            }
+        }
+
+        /**
+         * Sets the initial pattern used by the filter. This text is copied into the
+         * selection input on the dialog. A full selection is used in the pattern
+         * input field.
+         *
+         * @param text
+         *            initial pattern for the filter
+         * @see FilteredItemsSelectionDialog#FULL_SELECTION
+         */
+        public void setInitialPattern(String text) {
+            setInitialPattern(text, FULL_SELECTION);
+        }
+
+        /**
+         * Sets the initial pattern used by the filter. This text is copied into the
+         * selection input on the dialog. The <code>selectionMode</code> is used
+         * to choose selection type for the input field.
+         *
+         * @param text
+         *            initial pattern for the filter
+         * @param selectionMode
+         *            one of: {@link FilteredItemsSelectionDialog#NONE},
+         *            {@link FilteredItemsSelectionDialog#CARET_BEGINNING},
+         *            {@link FilteredItemsSelectionDialog#FULL_SELECTION}
+         */
+        public void setInitialPattern(String text, int selectionMode) {
+            this.initialPatternText = text;
+            this.selectionMode = selectionMode;
+        }
+
+        /**
+         * Gets initial pattern.
+         *
+         * @return initial pattern, or <code>null</code> if initial pattern is not
+         *         set
+         */
+        protected String getInitialPattern() {
+            return this.initialPatternText;
+        }
+
+        /**
+         * Returns the current selection.
+         *
+         * @return the current selection
+         */
+        protected StructuredSelection getSelectedItems() {
+
+            StructuredSelection selection = (StructuredSelection) getList()
+                    .getSelection();
+
+            List selectedItems = selection.toList();
+            Object itemToRemove = null;
+
+            for (Iterator it = selection.iterator(); it.hasNext();) {
+                Object item = it.next();
+                if (item instanceof ItemsListSeparator) {
+                    itemToRemove = item;
+                    break;
+                }
+            }
+
+            if (itemToRemove == null) {
+                return new StructuredSelection(selectedItems);
+            }
+            // Create a new selection without the collision
+            List newItems = new ArrayList(selectedItems);
+            newItems.remove(itemToRemove);
+            return new StructuredSelection(newItems);
+
+        }
+
+        /**
+         * Validates the item. When items on the items list are selected or
+         * deselected, it validates each item in the selection and the dialog status
+         * depends on all validations.
+         *
+         * @param item
+         *            an item to be checked
+         * @return status of the dialog to be set
+         */
+        protected abstract IStatus validateItem(Object item);
+
+        /**
+         * Creates an instance of a filter.
+         *
+         * @return a filter for items on the items list. Can be <code>null</code>,
+         *         no filtering will be applied then, causing no item to be shown in
+         *         the list.
+         */
+        protected abstract ItemsFilter createFilter();
+
+        /**
+         *
+         * Applies the filter created by <code>createFilter()</code> method to the
+         * items list. When new filter is different than previous one it will cause
+         * refiltering.
+         */
+        protected void applyFilter() {
+            // to get an already filtered selection of the database we added the initModel() method here.
+            initModel();
+            ItemsFilter newFilter = createFilter();
+
+            // don't apply filtering for patterns which mean the same, for example:
+            // *a**b and ***a*b
+            if (filter != null && filter.equalsFilter(newFilter)) {
+                return;
+            }
+
+            filterHistoryJob.cancel();
+            filterJob.cancel();
+
+            this.filter = newFilter;
+
+            if (this.filter != null) {
+                filterHistoryJob.schedule();
+            }
+        }
+
+        /**
+         * Returns comparator to sort items inside content provider. Returned object
+         * will be probably created as an anonymous class. Parameters passed to the
+         * <code>compare(java.lang.Object, java.lang.Object)</code> are going to
+         * be the same type as the one used in the content provider.
+         *
+         * @return comparator to sort items content provider
+         */
+        protected abstract Comparator getItemsComparator();
+
+        /**
+         * Fills the content provider with matching items.
+         *
+         * @param contentProvider
+         *            collector to add items to.
+         *            {@link FilteredItemsSelectionDialog.AbstractContentProvider#add(Object, FilteredItemsSelectionDialog.ItemsFilter)}
+         *            only adds items that pass the given <code>itemsFilter</code>.
+         * @param itemsFilter
+         *            the items filter
+         * @param progressMonitor
+         *            must be used to report search progress. The state of this
+         *            progress monitor reflects the state of the filtering process.
+         * @throws CoreException
+         */
+        protected abstract void fillContentProvider(
+                AbstractContentProvider contentProvider, ItemsFilter itemsFilter,
+                IProgressMonitor progressMonitor) throws CoreException;
+
+        /**
+         * Removes selected items from history.
+         *
+         * @param items
+         *            items to be removed
+         */
+        private void removeSelectedItems(List items) {
+            for (Iterator iter = items.iterator(); iter.hasNext();) {
+                Object item = iter.next();
+                removeHistoryItem(item);
+            }
+            refreshWithLastSelection = false;
+            contentProvider.refresh();
+        }
+
+        /**
+         * Removes an item from history.
+         *
+         * @param item
+         *            an item to remove
+         * @return removed item
+         */
+        protected Object removeHistoryItem(Object item) {
+            return contentProvider.removeHistoryElement(item);
+        }
+
+        /**
+         * Adds item to history.
+         *
+         * @param item
+         *            the item to be added
+         */
+        protected void accessedHistoryItem(Object item) {
+            contentProvider.addHistoryElement(item);
+        }
+
+        /**
+         * Returns a history comparator.
+         *
+         * @return decorated comparator
+         */
+        private Comparator getHistoryComparator() {
+            return new HistoryComparator();
+        }
+
+        /**
+         * Returns the history of selected elements.
+         *
+         * @return history of selected elements, or <code>null</code> if it is not
+         *         set
+         */
+        protected SelectionHistory getSelectionHistory() {
+            return this.contentProvider.getSelectionHistory();
+        }
+
+        /**
+         * Sets new history.
+         *
+         * @param selectionHistory
+         *            the history
+         */
+        protected void setSelectionHistory(SelectionHistory selectionHistory) {
+            if (this.contentProvider != null) {
+                this.contentProvider.setSelectionHistory(selectionHistory);
+            }
+        }
+
+        /**
+         * Indicates whether the given item is a history item.
+         *
+         * @param item
+         *            the item to be investigated
+         * @return <code>true</code> if the given item exists in history,
+         *         <code>false</code> otherwise
+         */
+        public boolean isHistoryElement(Object item) {
+            return this.contentProvider.isHistoryElement(item);
+        }
+
+        /**
+         * Indicates whether the given item is a duplicate.
+         *
+         * @param item
+         *            the item to be investigated
+         * @return <code>true</code> if the item is duplicate, <code>false</code>
+         *         otherwise
+         */
+        public boolean isDuplicateElement(Object item) {
+            return this.contentProvider.isDuplicateElement(item);
+        }
+
+        /**
+         * Sets separator label
+         *
+         * @param separatorLabel
+         *            the label showed on separator
+         */
+        public void setSeparatorLabel(String separatorLabel) {
+            this.itemsListSeparator = new ItemsListSeparator(separatorLabel);
+        }
+
+        /**
+         * Returns name for then given object.
+         *
+         * @param item
+         *            an object from the content provider. Subclasses should pay
+         *            attention to the passed argument. They should either only pass
+         *            objects of a known type (one used in content provider) or make
+         *            sure that passed parameter is the expected one (by type
+         *            checking like <code>instanceof</code> inside the method).
+         * @return name of the given item
+         */
+        public abstract String getElementName(Object item);
+
+        private class ToggleStatusLineAction extends Action {
+
+            /**
+             * Creates a new instance of the class.
+             */
+            public ToggleStatusLineAction() {
+                super(
+                        WorkbenchMessages.FilteredItemsSelectionDialog_toggleStatusAction,
+                        IAction.AS_CHECK_BOX);
+            }
+
+            @Override
+            public void run() {
+                details.setVisible(isChecked());
+            }
+        }
+
+        /**
+         * Only refreshes UI on the basis of an already sorted and filtered set of
+         * items.
+         * <p>
+         * Standard invocation scenario:
+         * <ol>
+         * <li>filtering job (<code>FilterJob</code> class extending
+         * <code>Job</code> class)</li>
+         * <li>cache refresh without checking for duplicates (<code>RefreshCacheJob</code>
+         * class extending <code>Job</code> class)</li>
+         * <li>UI refresh (<code>RefreshJob</code> class extending
+         * <code>UIJob</code> class)</li>
+         * <li>cache refresh with checking for duplicates (<cod>CacheRefreshJob</code>
+         * class extending <code>Job</code> class)</li>
+         * <li>UI refresh (<code>RefreshJob</code> class extending <code>UIJob</code>
+         * class)</li>
+         * </ol>
+         * The scenario is rather complicated, but it had to be applied, because:
+         * <ul>
+         * <li> refreshing cache is rather a long action and cannot be run in the UI -
+         * cannot be run in a UIJob</li>
+         * <li> refreshing cache checking for duplicates is twice as long as
+         * refreshing cache without checking for duplicates; results of the search
+         * could be displayed earlier</li>
+         * <li> refreshing the UI have to be run in a UIJob</li>
+         * </ul>
+         *
+         * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.FilterJob
+         * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.RefreshJob
+         * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.RefreshCacheJob
+         */
+        private class RefreshJob extends UIJob {
+
+            /**
+             * Creates a new instance of the class.
+             */
+            public RefreshJob() {
+                super(CdmFilteredItemsSelectionDialog.this.getParentShell()
+                        .getDisplay(),
+                        WorkbenchMessages.FilteredItemsSelectionDialog_refreshJob);
+                setSystem(true);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
+             */
+            @Override
+            public IStatus runInUIThread(IProgressMonitor monitor) {
+                if (monitor.isCanceled()) {
+                    return new Status(IStatus.OK, WorkbenchPlugin.PI_WORKBENCH,
+                            IStatus.OK, EMPTY_STRING, null);
+                }
+
+                if (CdmFilteredItemsSelectionDialog.this != null) {
+                    CdmFilteredItemsSelectionDialog.this.refresh();
+                }
+
+                return new Status(IStatus.OK, PlatformUI.PLUGIN_ID, IStatus.OK,
+                        EMPTY_STRING, null);
+            }
+
+        }
+
+        /**
+         * Refreshes the progress message cyclically with 500 milliseconds delay.
+         * <code>RefreshProgressMessageJob</code> is strictly connected with
+         * <code>GranualProgressMonitor</code> and use it to to get progress
+         * message and to decide about break of cyclical refresh.
+         */
+        private class RefreshProgressMessageJob extends UIJob {
+
+            private GranualProgressMonitor progressMonitor;
+
+            /**
+             * Creates a new instance of the class.
+             */
+            public RefreshProgressMessageJob() {
+                super(
+                        CdmFilteredItemsSelectionDialog.this.getParentShell()
+                                .getDisplay(),
+                        WorkbenchMessages.FilteredItemsSelectionDialog_progressRefreshJob);
+                setSystem(true);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
+             */
+            @Override
+            public IStatus runInUIThread(IProgressMonitor monitor) {
+
+                if (!progressLabel.isDisposed()) {
+                    progressLabel.setText(progressMonitor != null ? progressMonitor
+                            .getMessage() : EMPTY_STRING);
+                }
+
+                if (progressMonitor == null || progressMonitor.isDone()) {
+                    return new Status(IStatus.CANCEL, PlatformUI.PLUGIN_ID,
+                            IStatus.CANCEL, EMPTY_STRING, null);
+                }
+
+                // Schedule cyclical with 500 milliseconds delay
+                schedule(500);
+
+                return new Status(IStatus.OK, PlatformUI.PLUGIN_ID, IStatus.OK,
+                        EMPTY_STRING, null);
+            }
+
+            /**
+             * Schedule progress refresh job.
+             *
+             * @param progressMonitor
+             *            used during refresh progress label
+             */
+            public void scheduleProgressRefresh(
+                    GranualProgressMonitor progressMonitor) {
+                this.progressMonitor = progressMonitor;
+                // Schedule with initial delay to avoid flickering when the user
+                // types quickly
+                schedule(200);
+            }
+
+        }
+
+        /**
+         * A job responsible for computing filtered items list presented using
+         * <code>RefreshJob</code>.
+         *
+         * @see FilteredItemsSelectionDialog.RefreshJob
+         *
+         */
+        private class RefreshCacheJob extends Job {
+
+            private final RefreshJob refreshJob = new RefreshJob();
+
+            /**
+             * Creates a new instance of the class.
+             */
+            public RefreshCacheJob() {
+                super(
+                        WorkbenchMessages.FilteredItemsSelectionDialog_cacheRefreshJob);
+                setSystem(true);
+            }
+
+            /**
+             * Stops the job and all sub-jobs.
+             */
+            public void cancelAll() {
+                cancel();
+                refreshJob.cancel();
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
+             */
+            @Override
+            protected IStatus run(IProgressMonitor monitor) {
+                if (monitor.isCanceled()) {
+                    return new Status(IStatus.CANCEL, WorkbenchPlugin.PI_WORKBENCH,
+                            IStatus.CANCEL, EMPTY_STRING, null);
+                }
+
+                if (CdmFilteredItemsSelectionDialog.this != null) {
+                    GranualProgressMonitor wrappedMonitor = new GranualProgressMonitor(
+                            monitor);
+                    CdmFilteredItemsSelectionDialog.this.reloadCache(true,
+                            wrappedMonitor);
+                }
+
+                if (!monitor.isCanceled()) {
+                    refreshJob.schedule();
+                }
+
+                return new Status(IStatus.OK, PlatformUI.PLUGIN_ID, IStatus.OK,
+                        EMPTY_STRING, null);
+
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.jobs.Job#canceling()
+             */
+            @Override
+            protected void canceling() {
+                super.canceling();
+                contentProvider.stopReloadingCache();
+            }
+
+        }
+
+        private class RemoveHistoryItemAction extends Action {
+
+            /**
+             * Creates a new instance of the class.
+             */
+            public RemoveHistoryItemAction() {
+                super(
+                        WorkbenchMessages.FilteredItemsSelectionDialog_removeItemsFromHistoryAction);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.action.Action#run()
+             */
+            @Override
+            public void run() {
+                List selectedElements = ((StructuredSelection) getList().getSelection())
+                        .toList();
+                removeSelectedItems(selectedElements);
+            }
+        }
+
+        protected static boolean showColoredLabels() {
+            return PlatformUI.getPreferenceStore().getBoolean(IWorkbenchPreferenceConstants.USE_COLORED_LABELS);
+        }
+
+        private class ItemsListLabelProvider extends StyledCellLabelProvider
+                implements ILabelProviderListener {
+            private ILabelProvider provider;
+
+            private ILabelDecorator selectionDecorator;
+
+            // Need to keep our own list of listeners
+            private final ListenerList listeners = new ListenerList();
+
+            /**
+             * Creates a new instance of the class.
+             *
+             * @param provider
+             *            the label provider for all items, not <code>null</code>
+             * @param selectionDecorator
+             *            the decorator for selected items, can be <code>null</code>
+             */
+            public ItemsListLabelProvider(ILabelProvider provider,
+                    ILabelDecorator selectionDecorator) {
+                Assert.isNotNull(provider);
+                this.provider = provider;
+                this.selectionDecorator = selectionDecorator;
+
+                setOwnerDrawEnabled(showColoredLabels() && provider instanceof IStyledLabelProvider);
+
+                provider.addListener(this);
+
+                if (selectionDecorator != null) {
+                    selectionDecorator.addListener(this);
+                }
+            }
+
+            /**
+             * Sets new selection decorator.
+             *
+             * @param newSelectionDecorator
+             *            new label decorator for selected items in the list
+             */
+            public void setSelectionDecorator(ILabelDecorator newSelectionDecorator) {
+                if (selectionDecorator != null) {
+                    selectionDecorator.removeListener(this);
+                    selectionDecorator.dispose();
+                }
+
+                selectionDecorator = newSelectionDecorator;
+
+                if (selectionDecorator != null) {
+                    selectionDecorator.addListener(this);
+                }
+            }
+
+            /**
+             * Gets selection decorator.
+             *
+             * @return the label decorator for selected items in the list
+             */
+            public ILabelDecorator getSelectionDecorator() {
+                return selectionDecorator;
+            }
+
+            /**
+             * Sets new label provider.
+             *
+             * @param newProvider
+             *            new label provider for items in the list, not
+             *            <code>null</code>
+             */
+            public void setProvider(ILabelProvider newProvider) {
+                Assert.isNotNull(newProvider);
+                provider.removeListener(this);
+                provider.dispose();
+
+                provider = newProvider;
+
+                if (provider != null) {
+                    provider.addListener(this);
+                }
+
+                setOwnerDrawEnabled(showColoredLabels() && provider instanceof IStyledLabelProvider);
+            }
+
+            private Image getImage(Object element) {
+                if (element instanceof ItemsListSeparator) {
+                    return WorkbenchImages
+                            .getImage(IWorkbenchGraphicConstants.IMG_OBJ_SEPARATOR);
+                }
+
+                return provider.getImage(element);
+            }
+
+            private boolean isSelected(Object element) {
+                if (element != null && getCurrentSelection() != null) {
+                    for (int i = 0; i < getCurrentSelection().length; i++) {
+                        if (element.equals(getCurrentSelection()[i])) {
+                            return true;
+                        }
+                    }
+                }
+                return false;
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
+             */
+            private String getText(Object element) {
+                if (element instanceof ItemsListSeparator) {
+                    return getSeparatorLabel(((ItemsListSeparator) element)
+                            .getName());
+                }
+
+                String str = provider.getText(element);
+                if (selectionDecorator != null && isSelected(element)) {
+                    return selectionDecorator.decorateText(str.toString(), element);
+                }
+
+                return str;
+            }
+
+            private StyledString getStyledText(Object element,
+                    IStyledLabelProvider provider) {
+                StyledString string = provider.getStyledText(element);
+
+                if (selectionDecorator != null && isSelected(element)) {
+                    String decorated = selectionDecorator.decorateText(string
+                            .getString(), element);
+                    return StyledCellLabelProvider.styleDecoratedString(decorated, null, string);
+                    // no need to add colors when element is selected
+                }
+                return string;
+            }
+
+            @Override
+            public void update(ViewerCell cell) {
+                Object element = cell.getElement();
+
+                if (!(element instanceof ItemsListSeparator)
+                        && provider instanceof IStyledLabelProvider) {
+                    IStyledLabelProvider styledLabelProvider = (IStyledLabelProvider) provider;
+                    StyledString styledString = getStyledText(element,
+                            styledLabelProvider);
+
+                    cell.setText(styledString.getString());
+                    cell.setStyleRanges(styledString.getStyleRanges());
+                    cell.setImage(styledLabelProvider.getImage(element));
+                } else {
+                    cell.setText(getText(element));
+                    cell.setImage(getImage(element));
+                }
+                cell.setFont(getFont(element));
+                cell.setForeground(getForeground(element));
+                cell.setBackground(getBackground(element));
+
+                super.update(cell);
+            }
+
+            private String getSeparatorLabel(String separatorLabel) {
+                Rectangle rect = getList().getTable().getBounds();
+
+                int borderWidth = getList().getTable().computeTrim(0, 0, 0, 0).width;
+
+                int imageWidth = WorkbenchImages.getImage(
+                        IWorkbenchGraphicConstants.IMG_OBJ_SEPARATOR).getBounds().width;
+
+                int width = rect.width - borderWidth - imageWidth;
+
+                GC gc = new GC(getList().getTable());
+                gc.setFont(getList().getTable().getFont());
+
+                int fSeparatorWidth = gc.getAdvanceWidth('-');
+                int fMessageLength = gc.textExtent(separatorLabel).x;
+
+                gc.dispose();
+
+                StringBuffer dashes = new StringBuffer();
+                int chars = (((width - fMessageLength) / fSeparatorWidth) / 2) - 2;
+                for (int i = 0; i < chars; i++) {
+                    dashes.append('-');
+                }
+
+                StringBuffer result = new StringBuffer();
+                result.append(dashes);
+                result.append(" " + separatorLabel + " "); //$NON-NLS-1$//$NON-NLS-2$
+                result.append(dashes);
+                return result.toString().trim();
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+             */
+            @Override
+            public void addListener(ILabelProviderListener listener) {
+                listeners.add(listener);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+             */
+            @Override
+            public void dispose() {
+                provider.removeListener(this);
+                provider.dispose();
+
+                if (selectionDecorator != null) {
+                    selectionDecorator.removeListener(this);
+                    selectionDecorator.dispose();
+                }
+
+                super.dispose();
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
+             *      java.lang.String)
+             */
+            @Override
+            public boolean isLabelProperty(Object element, String property) {
+                if (provider.isLabelProperty(element, property)) {
+                    return true;
+                }
+                if (selectionDecorator != null
+                        && selectionDecorator.isLabelProperty(element, property)) {
+                    return true;
+                }
+                return false;
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+             */
+            @Override
+            public void removeListener(ILabelProviderListener listener) {
+                listeners.remove(listener);
+            }
+
+            private Color getBackground(Object element) {
+                if (element instanceof ItemsListSeparator) {
+                    return null;
+                }
+                if (provider instanceof IColorProvider) {
+                    return ((IColorProvider) provider).getBackground(element);
+                }
+                return null;
+            }
+
+            private Color getForeground(Object element) {
+                if (element instanceof ItemsListSeparator) {
+                    return Display.getCurrent().getSystemColor(
+                            SWT.COLOR_WIDGET_NORMAL_SHADOW);
+                }
+                if (provider instanceof IColorProvider) {
+                    return ((IColorProvider) provider).getForeground(element);
+                }
+                return null;
+            }
+
+            private Font getFont(Object element) {
+                if (element instanceof ItemsListSeparator) {
+                    return null;
+                }
+                if (provider instanceof IFontProvider) {
+                    return ((IFontProvider) provider).getFont(element);
+                }
+                return null;
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.ILabelProviderListener#labelProviderChanged(org.eclipse.jface.viewers.LabelProviderChangedEvent)
+             */
+            @Override
+            public void labelProviderChanged(LabelProviderChangedEvent event) {
+                Object[] l = listeners.getListeners();
+                for (int i = 0; i < listeners.size(); i++) {
+                    ((ILabelProviderListener) l[i]).labelProviderChanged(event);
+                }
+            }
+        }
+
+        /**
+         * Used in ItemsListContentProvider, separates history and non-history
+         * items.
+         */
+        protected class ItemsListSeparator {
+
+            private final String name;
+
+            /**
+             * Creates a new instance of the class.
+             *
+             * @param name
+             *            the name of the separator
+             */
+            public ItemsListSeparator(String name) {
+                this.name = name;
+            }
+
+            /**
+             * Returns the name of this separator.
+             *
+             * @return the name of the separator
+             */
+            public String getName() {
+                return name;
+            }
+        }
+
+        /**
+         * GranualProgressMonitor is used for monitoring progress of filtering
+         * process. It is used by <code>RefreshProgressMessageJob</code> to
+         * refresh progress message. State of this monitor illustrates state of
+         * filtering or cache refreshing process.
+         *
+         */
+        private class GranualProgressMonitor extends ProgressMonitorWrapper {
+
+            private String name;
+
+            private String subName;
+
+            private int totalWork;
+
+            private double worked;
+
+            private boolean done;
+
+            /**
+             * Creates instance of <code>GranualProgressMonitor</code>.
+             *
+             * @param monitor
+             *            progress to be wrapped
+             */
+            public GranualProgressMonitor(IProgressMonitor monitor) {
+                super(monitor);
+            }
+
+            /**
+             * Checks if filtering has been done
+             *
+             * @return true if filtering work has been done false in other way
+             */
+            public boolean isDone() {
+                return done;
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.ProgressMonitorWrapper#setTaskName(java.lang.String)
+             */
+            @Override
+            public void setTaskName(String name) {
+                super.setTaskName(name);
+                this.name = name;
+                this.subName = null;
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.ProgressMonitorWrapper#subTask(java.lang.String)
+             */
+            @Override
+            public void subTask(String name) {
+                super.subTask(name);
+                this.subName = name;
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.ProgressMonitorWrapper#beginTask(java.lang.String,
+             *      int)
+             */
+            @Override
+            public void beginTask(String name, int totalWork) {
+                super.beginTask(name, totalWork);
+                if (this.name == null) {
+                    this.name = name;
+                }
+                this.totalWork = totalWork;
+                refreshProgressMessageJob.scheduleProgressRefresh(this);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.ProgressMonitorWrapper#worked(int)
+             */
+            @Override
+            public void worked(int work) {
+                super.worked(work);
+                internalWorked(work);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.ProgressMonitorWrapper#done()
+             */
+            @Override
+            public void done() {
+                done = true;
+                super.done();
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.ProgressMonitorWrapper#setCanceled(boolean)
+             */
+            @Override
+            public void setCanceled(boolean b) {
+                done = b;
+                super.setCanceled(b);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.ProgressMonitorWrapper#internalWorked(double)
+             */
+            @Override
+            public void internalWorked(double work) {
+                worked = worked + work;
+            }
+
+            private String getMessage() {
+                if (done) {
+                    return ""; //$NON-NLS-1$
+                }
+
+                String message;
+
+                if (name == null) {
+                    message = subName == null ? "" : subName; //$NON-NLS-1$
+                } else {
+                    message = subName == null ? name
+                            : NLS
+                                    .bind(
+                                            WorkbenchMessages.FilteredItemsSelectionDialog_subtaskProgressMessage,
+                                            new Object[] { name, subName });
+                }
+                if (totalWork == 0) {
+                    return message;
+                }
+
+                return NLS
+                        .bind(
+                                WorkbenchMessages.FilteredItemsSelectionDialog_taskProgressMessage,
+                                new Object[] {
+                                        message,
+                                        new Integer(
+                                                (int) ((worked * 100) / totalWork)) });
+
+            }
+
+        }
+
+        /**
+         * Filters items history and schedule filter job.
+         */
+        private class FilterHistoryJob extends Job {
+
+            /**
+             * Filter used during the filtering process.
+             */
+            private ItemsFilter itemsFilter;
+
+            /**
+             * Creates new instance of receiver.
+             */
+            public FilterHistoryJob() {
+                super(WorkbenchMessages.FilteredItemsSelectionDialog_jobLabel);
+                setSystem(true);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
+             */
+            @Override
+            protected IStatus run(IProgressMonitor monitor) {
+
+                this.itemsFilter = filter;
+
+                contentProvider.reset();
+
+                refreshWithLastSelection = false;
+
+                contentProvider.addHistoryItems(itemsFilter);
+
+                if (!(lastCompletedFilter != null && lastCompletedFilter
+                        .isSubFilter(this.itemsFilter))) {
+                    contentProvider.refresh();
+                }
+
+                filterJob.schedule();
+
+                return Status.OK_STATUS;
+            }
+
+        }
+
+        /**
+         * Filters items in indicated set and history. During filtering, it
+         * refreshes the dialog (progress monitor and elements list).
+         *
+         * Depending on the filter, <code>FilterJob</code> decides which kind of
+         * search will be run inside <code>filterContent</code>. If the last
+         * filtering is done (last completed filter), is not null, and the new
+         * filter is a sub-filter ({@link FilteredItemsSelectionDialog.ItemsFilter#isSubFilter(FilteredItemsSelectionDialog.ItemsFilter)})
+         * of the last, then <code>FilterJob</code> only filters in the cache. If
+         * it is the first filtering or the new filter isn't a sub-filter of the
+         * last one, a full search is run.
+         */
+        private class FilterJob extends Job {
+
+            /**
+             * Filter used during the filtering process.
+             */
+            protected ItemsFilter itemsFilter;
+
+            /**
+             * Creates new instance of FilterJob
+             */
+            public FilterJob() {
+                super(WorkbenchMessages.FilteredItemsSelectionDialog_jobLabel);
+                setSystem(true);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
+             */
+            @Override
+            protected final IStatus run(IProgressMonitor parent) {
+                GranualProgressMonitor monitor = new GranualProgressMonitor(parent);
+                return doRun(monitor);
+            }
+
+            /**
+             * Executes job using the given filtering progress monitor. A hook for
+             * subclasses.
+             *
+             * @param monitor
+             *            progress monitor
+             * @return result of the execution
+             */
+            protected IStatus doRun(GranualProgressMonitor monitor) {
+                try {
+                    internalRun(monitor);
+                } catch (CoreException e) {
+                    cancel();
+                    return new Status(
+                            IStatus.ERROR,
+                            PlatformUI.PLUGIN_ID,
+                            IStatus.ERROR,
+                            WorkbenchMessages.FilteredItemsSelectionDialog_jobError,
+                            e);
+                }
+                return Status.OK_STATUS;
+            }
+
+            /**
+             * Main method for the job.
+             *
+             * @param monitor
+             * @throws CoreException
+             */
+            private void internalRun(GranualProgressMonitor monitor)
+                    throws CoreException {
+                try {
+                    if (monitor.isCanceled()) {
+                        return;
+                    }
+
+                    this.itemsFilter = filter;
+
+                    if (filter.getPattern().length() != 0) {
+                        filterContent(monitor);
+                    }
+
+                    if (monitor.isCanceled()) {
+                        return;
+                    }
+
+                    contentProvider.refresh();
+                } finally {
+                    monitor.done();
+                }
+            }
+
+            /**
+             * Filters items.
+             *
+             * @param monitor
+             *            for monitoring progress
+             * @throws CoreException
+             */
+            protected void filterContent(GranualProgressMonitor monitor)
+                    throws CoreException {
+
+//                if (lastCompletedFilter != null
+//                        && lastCompletedFilter.isSubFilter(this.itemsFilter)) {
+//
+//                    int length = lastCompletedResult.size() / 500;
+//                    monitor
+//                            .beginTask(
+//                                    WorkbenchMessages.FilteredItemsSelectionDialog_cacheSearchJob_taskName,
+//                                    length);
+//
+//                    for (int pos = 0; pos < lastCompletedResult.size(); pos++) {
+//
+//                        Object item = lastCompletedResult.get(pos);
+//                        if (monitor.isCanceled()) {
+//                            break;
+//                        }
+//                        contentProvider.add(item, itemsFilter);
+//
+//                        if ((pos % 500) == 0) {
+//                            monitor.worked(1);
+//                        }
+//                    }
+//
+//                } else {
+
+                    lastCompletedFilter = null;
+                    lastCompletedResult = null;
+
+                    SubProgressMonitor subMonitor = null;
+                    if (monitor != null) {
+                        monitor
+                                .beginTask(
+                                        WorkbenchMessages.FilteredItemsSelectionDialog_searchJob_taskName,
+                                        100);
+                        subMonitor = new SubProgressMonitor(monitor, 95);
+
+                    }
+
+                    fillContentProvider(contentProvider, itemsFilter, subMonitor);
+
+                    if (monitor != null && !monitor.isCanceled()) {
+                        monitor.worked(2);
+                        contentProvider.rememberResult(itemsFilter);
+                        monitor.worked(3);
+                    }
+                //}
+
+            }
+
+        }
+
+        /**
+         * History stores a list of key, object pairs. The list is bounded at a
+         * certain size. If the list exceeds this size the oldest element is removed
+         * from the list. An element can be added/renewed with a call to
+         * <code>accessed(Object)</code>.
+         * <p>
+         * The history can be stored to/loaded from an XML file.
+         */
+        protected static abstract class SelectionHistory {
+
+            private static final String DEFAULT_ROOT_NODE_NAME = "historyRootNode"; //$NON-NLS-1$
+
+            private static final String DEFAULT_INFO_NODE_NAME = "infoNode"; //$NON-NLS-1$
+
+            private static final int MAX_HISTORY_SIZE = 60;
+
+            private final Set historyList;
+
+            private final String rootNodeName;
+
+            private final String infoNodeName;
+
+            private SelectionHistory(String rootNodeName, String infoNodeName) {
+
+                historyList = Collections.synchronizedSet(new LinkedHashSet() {
+
+                    private static final long serialVersionUID = 0L;
+
+                    /*
+                     * (non-Javadoc)
+                     *
+                     * @see java.util.LinkedList#add(java.lang.Object)
+                     */
+                    @Override
+                    public boolean add(Object arg0) {
+                        if (this.size() >= MAX_HISTORY_SIZE) {
+                            Iterator iterator = this.iterator();
+                            iterator.next();
+                            iterator.remove();
+                        }
+                        return super.add(arg0);
+                    }
+
+                });
+
+                this.rootNodeName = rootNodeName;
+                this.infoNodeName = infoNodeName;
+            }
+
+            /**
+             * Creates new instance of <code>SelectionHistory</code>.
+             */
+            public SelectionHistory() {
+                this(DEFAULT_ROOT_NODE_NAME, DEFAULT_INFO_NODE_NAME);
+            }
+
+            /**
+             * Adds object to history.
+             *
+             * @param object
+             *            the item to be added to the history
+             */
+            public synchronized void accessed(Object object) {
+                historyList.remove(object);
+                historyList.add(object);
+            }
+
+            /**
+             * Returns <code>true</code> if history contains object.
+             *
+             * @param object
+             *            the item for which check will be executed
+             * @return <code>true</code> if history contains object
+             *         <code>false</code> in other way
+             */
+            public synchronized boolean contains(Object object) {
+                return historyList.contains(object);
+            }
+
+            /**
+             * Returns <code>true</code> if history is empty.
+             *
+             * @return <code>true</code> if history is empty
+             */
+            public synchronized boolean isEmpty() {
+                return historyList.isEmpty();
+            }
+
+            /**
+             * Remove element from history.
+             *
+             * @param element
+             *            to remove form the history
+             * @return <code>true</code> if this list contained the specified
+             *         element
+             */
+            public synchronized boolean remove(Object element) {
+                return historyList.remove(element);
+            }
+
+            /**
+             * Load history elements from memento.
+             *
+             * @param memento
+             *            memento from which the history will be retrieved
+             */
+            public void load(IMemento memento) {
+
+                XMLMemento historyMemento = (XMLMemento) memento
+                        .getChild(rootNodeName);
+
+                if (historyMemento == null) {
+                    return;
+                }
+
+                IMemento[] mementoElements = historyMemento
+                        .getChildren(infoNodeName);
+                for (int i = 0; i < mementoElements.length; ++i) {
+                    IMemento mementoElement = mementoElements[i];
+                    Object object = restoreItemFromMemento(mementoElement);
+                    if (object != null) {
+                        historyList.add(object);
+                    }
+                }
+            }
+
+            /**
+             * Save history elements to memento.
+             *
+             * @param memento
+             *            memento to which the history will be added
+             */
+            public void save(IMemento memento) {
+
+                IMemento historyMemento = memento.createChild(rootNodeName);
+
+                Object[] items = getHistoryItems();
+                for (int i = 0; i < items.length; i++) {
+                    Object item = items[i];
+                    IMemento elementMemento = historyMemento
+                            .createChild(infoNodeName);
+                    storeItemToMemento(item, elementMemento);
+                }
+
+            }
+
+            /**
+             * Gets array of history items.
+             *
+             * @return array of history elements
+             */
+            public synchronized Object[] getHistoryItems() {
+                return historyList.toArray();
+            }
+
+            /**
+             * Creates an object using given memento.
+             *
+             * @param memento
+             *            memento used for creating new object
+             *
+             * @return the restored object
+             */
+            protected abstract Object restoreItemFromMemento(IMemento memento);
+
+            /**
+             * Store object in <code>IMemento</code>.
+             *
+             * @param item
+             *            the item to store
+             * @param memento
+             *            the memento to store to
+             */
+            protected abstract void storeItemToMemento(Object item, IMemento memento);
+
+        }
+
+        /**
+         * Filters elements using SearchPattern by comparing the names of items with
+         * the filter pattern.
+         */
+        protected abstract class ItemsFilter {
+
+            protected SearchPattern patternMatcher;
+
+            /**
+             * Creates new instance of ItemsFilter.
+             */
+            public ItemsFilter() {
+                this(new SearchPattern());
+            }
+
+            /**
+             * Creates new instance of ItemsFilter.
+             *
+             * @param searchPattern
+             *            the pattern to be used when filtering
+             */
+            public ItemsFilter(SearchPattern searchPattern) {
+                patternMatcher = searchPattern;
+                String stringPattern = ""; //$NON-NLS-1$
+                if (pattern != null && !pattern.getText().equals("*")) { //$NON-NLS-1$
+                    stringPattern = pattern.getText();
+                }
+                patternMatcher.setPattern(stringPattern);
+            }
+
+            /**
+             * Check if the given filter is a sub-filter of this filter. The default
+             * implementation checks if the <code>SearchPattern</code> from the
+             * given filter is a sub-pattern of the one from this filter.
+             * <p>
+             * <i>WARNING: This method is <b>not</b> defined in reading order, i.e.
+             * <code>a.isSubFilter(b)</code> is <code>true</code> iff
+             * <code>b</code> is a sub-filter of <code>a</code>, and not
+             * vice-versa. </i>
+             * </p>
+             *
+             * @param filter
+             *            the filter to be checked, or <code>null</code>
+             * @return <code>true</code> if the given filter is sub-filter of this
+             *         filter, <code>false</code> if the given filter isn't a
+             *         sub-filter or is <code>null</code>
+             *
+             * @see org.eclipse.ui.dialogs.SearchPattern#isSubPattern(org.eclipse.ui.dialogs.SearchPattern)
+             */
+            public boolean isSubFilter(ItemsFilter filter) {
+                if (filter != null) {
+                    return this.patternMatcher.isSubPattern(filter.patternMatcher);
+                }
+                return false;
+            }
+
+            /**
+             * Checks whether the provided filter is equal to the current filter.
+             * The default implementation checks if <code>SearchPattern</code>
+             * from current filter is equal to the one from provided filter.
+             *
+             * @param filter
+             *            filter to be checked, or <code>null</code>
+             * @return <code>true</code> if the given filter is equal to current
+             *         filter, <code>false</code> if given filter isn't equal to
+             *         current one or if it is <code>null</code>
+             *
+             * @see org.eclipse.ui.dialogs.SearchPattern#equalsPattern(org.eclipse.ui.dialogs.SearchPattern)
+             */
+            public boolean equalsFilter(ItemsFilter filter) {
+                if (filter != null
+                        && filter.patternMatcher.equalsPattern(this.patternMatcher)) {
+                    return true;
+                }
+                return false;
+            }
+
+            /**
+             * Checks whether the pattern's match rule is camel case.
+             *
+             * @return <code>true</code> if pattern's match rule is camel case,
+             *         <code>false</code> otherwise
+             */
+            public boolean isCamelCasePattern() {
+                return patternMatcher.getMatchRule() == SearchPattern.RULE_CAMELCASE_MATCH;
+            }
+
+            /**
+             * Returns the pattern string.
+             *
+             * @return pattern for this filter
+             *
+             * @see SearchPattern#getPattern()
+             */
+            public String getPattern() {
+                return patternMatcher.getPattern();
+            }
+
+            /**
+             * Returns the rule to apply for matching keys.
+             *
+             * @return an implementation-specific match rule
+             *
+             * @see SearchPattern#getMatchRule() for match rules returned by the
+             *      default implementation
+             */
+            public int getMatchRule() {
+                return patternMatcher.getMatchRule();
+            }
+
+            /**
+             * Matches text with filter.
+             *
+             * @param text
+             *            the text to match with the filter
+             * @return <code>true</code> if text matches with filter pattern,
+             *         <code>false</code> otherwise
+             */
+            protected boolean matches(String text) {
+                return patternMatcher.matches(text);
+            }
+
+            /**
+             * General method for matching raw name pattern. Checks whether current
+             * pattern is prefix of name provided item.
+             *
+             * @param item
+             *            item to check
+             * @return <code>true</code> if current pattern is a prefix of name
+             *         provided item, <code>false</code> if item's name is shorter
+             *         than prefix or sequences of characters don't match.
+             */
+            public boolean matchesRawNamePattern(Object item) {
+                String prefix = patternMatcher.getPattern();
+                String text = getElementName(item);
+
+                if (text == null) {
+                    return false;
+                }
+
+                int textLength = text.length();
+                int prefixLength = prefix.length();
+                if (textLength < prefixLength) {
+                    return false;
+                }
+                for (int i = prefixLength - 1; i >= 0; i--) {
+                    if (Character.toLowerCase(prefix.charAt(i)) != Character
+                            .toLowerCase(text.charAt(i))) {
+                        return false;
+                    }
+                }
+                return true;
+            }
+
+            /**
+             * Matches an item against filter conditions.
+             *
+             * @param item
+             * @return <code>true<code> if item matches against filter conditions, <code>false</code>
+             *         otherwise
+             */
+            public abstract boolean matchItem(Object item);
+
+            /**
+             * Checks consistency of an item. Item is inconsistent if was changed or
+             * removed.
+             *
+             * @param item
+             * @return <code>true</code> if item is consistent, <code>false</code>
+             *         if item is inconsistent
+             */
+            public abstract boolean isConsistentItem(Object item);
+
+        }
+
+        /**
+         * An interface to content providers for
+         * <code>FilterItemsSelectionDialog</code>.
+         */
+        protected abstract class AbstractContentProvider {
+            /**
+             * Adds the item to the content provider iff the filter matches the
+             * item. Otherwise does nothing.
+             *
+             * @param item
+             *            the item to add
+             * @param itemsFilter
+             *            the filter
+             *
+             * @see FilteredItemsSelectionDialog.ItemsFilter#matchItem(Object)
+             */
+            public abstract void add(Object item, ItemsFilter itemsFilter);
+        }
+
+        /**
+         * Collects filtered elements. Contains one synchronized, sorted set for
+         * collecting filtered elements. All collected elements are sorted using
+         * comparator. Comparator is returned by getElementComparator() method.
+         * Implementation of <code>ItemsFilter</code> is used to filter elements.
+         * The key function of filter used in to filtering is
+         * <code>matchElement(Object item)</code>.
+         * <p>
+         * The <code>ContentProvider</code> class also provides item filtering
+         * methods. The filtering has been moved from the standard TableView
+         * <code>getFilteredItems()</code> method to content provider, because
+         * <code>ILazyContentProvider</code> and virtual tables are used. This
+         * class is responsible for adding a separator below history items and
+         * marking each items as duplicate if its name repeats more than once on the
+         * filtered list.
+         */
+        private class ContentProvider extends AbstractContentProvider implements
+                IStructuredContentProvider, ILazyContentProvider {
+
+            private SelectionHistory selectionHistory;
+
+            /**
+             * Raw result of the searching (unsorted, unfiltered).
+             * <p>
+             * Standard object flow:
+             * <code>items -> lastSortedItems -> lastFilteredItems</code>
+             */
+            private final Set items;
+
+            /**
+             * Items that are duplicates.
+             */
+            private final Set duplicates;
+
+            /**
+             * List of <code>ViewerFilter</code>s to be used during filtering
+             */
+            private List filters;
+
+            /**
+             * Result of the last filtering.
+             * <p>
+             * Standard object flow:
+             * <code>items -> lastSortedItems -> lastFilteredItems</code>
+             */
+            private List lastFilteredItems;
+
+            /**
+             * Result of the last sorting.
+             * <p>
+             * Standard object flow:
+             * <code>items -> lastSortedItems -> lastFilteredItems</code>
+             */
+            private final List lastSortedItems;
+
+            /**
+             * Used for <code>getFilteredItems()</code> method canceling (when the
+             * job that invoked the method was canceled).
+             * <p>
+             * Method canceling could be based (only) on monitor canceling
+             * unfortunately sometimes the method <code>getFilteredElements()</code>
+             * could be run with a null monitor, the <code>reset</code> flag have
+             * to be left intact.
+             */
+            private boolean reset;
+
+            /**
+             * Creates new instance of <code>ContentProvider</code>.
+             */
+            public ContentProvider() {
+                this.items = Collections.synchronizedSet(new HashSet(2048));
+                this.duplicates = Collections.synchronizedSet(new HashSet(256));
+                this.lastFilteredItems = new ArrayList();
+                this.lastSortedItems = Collections.synchronizedList(new ArrayList(
+                        2048));
+            }
+
+            /**
+             * Sets selection history.
+             *
+             * @param selectionHistory
+             *            The selectionHistory to set.
+             */
+            public void setSelectionHistory(SelectionHistory selectionHistory) {
+                this.selectionHistory = selectionHistory;
+            }
+
+            /**
+             * @return Returns the selectionHistory.
+             */
+            public SelectionHistory getSelectionHistory() {
+                return selectionHistory;
+            }
+
+            /**
+             * Removes all content items and resets progress message.
+             */
+            public void reset() {
+                reset = true;
+                this.items.clear();
+                this.duplicates.clear();
+                this.lastSortedItems.clear();
+            }
+
+            /**
+             * Stops reloading cache - <code>getFilteredItems()</code> method.
+             */
+            public void stopReloadingCache() {
+                reset = true;
+            }
+
+            /**
+             * Adds filtered item.
+             *
+             * @param item
+             * @param itemsFilter
+             */
+            @Override
+            public void add(Object item, ItemsFilter itemsFilter) {
+                if (itemsFilter == filter) {
+                    if (itemsFilter != null) {
+                        if (itemsFilter.matchItem(item)) {
+                            this.items.add(item);
+                        }
+                    } else {
+                        this.items.add(item);
+                    }
+                }
+            }
+
+            /**
+             * Add all history items to <code>contentProvider</code>.
+             *
+             * @param itemsFilter
+             */
+            public void addHistoryItems(ItemsFilter itemsFilter) {
+                if (this.selectionHistory != null) {
+                    Object[] items = this.selectionHistory.getHistoryItems();
+                    for (int i = 0; i < items.length; i++) {
+                        Object item = items[i];
+                        if (itemsFilter == filter) {
+                            if (itemsFilter != null) {
+                                if (itemsFilter.matchItem(item)) {
+                                    if (itemsFilter.isConsistentItem(item)) {
+                                        this.items.add(item);
+                                    } else {
+                                        this.selectionHistory.remove(item);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
+            /**
+             * Refresh dialog.
+             */
+            public void refresh() {
+                scheduleRefresh();
+            }
+
+            /**
+             * Removes items from history and refreshes the view.
+             *
+             * @param item
+             *            to remove
+             *
+             * @return removed item
+             */
+            public Object removeHistoryElement(Object item) {
+                if (this.selectionHistory != null) {
+                    this.selectionHistory.remove(item);
+                }
+                if (filter == null || filter.getPattern().length() == 0) {
+                    items.remove(item);
+                    duplicates.remove(item);
+                    this.lastSortedItems.remove(item);
+                }
+
+                synchronized (lastSortedItems) {
+                    Collections.sort(lastSortedItems, getHistoryComparator());
+                }
+                return item;
+            }
+
+            /**
+             * Adds item to history and refresh view.
+             *
+             * @param item
+             *            to add
+             */
+            public void addHistoryElement(Object item) {
+                if (this.selectionHistory != null) {
+                    this.selectionHistory.accessed(item);
+                }
+                if (filter == null || !filter.matchItem(item)) {
+                    this.items.remove(item);
+                    this.duplicates.remove(item);
+                    this.lastSortedItems.remove(item);
+                }
+                synchronized (lastSortedItems) {
+                    Collections.sort(lastSortedItems, getHistoryComparator());
+                }
+                this.refresh();
+            }
+
+            /**
+             * @param item
+             * @return <code>true</code> if given item is part of the history
+             */
+            public boolean isHistoryElement(Object item) {
+                if (this.selectionHistory != null) {
+                    return this.selectionHistory.contains(item);
+                }
+                return false;
+            }
+
+            /**
+             * Sets/unsets given item as duplicate.
+             *
+             * @param item
+             *            item to change
+             *
+             * @param isDuplicate
+             *            duplicate flag
+             */
+            public void setDuplicateElement(Object item, boolean isDuplicate) {
+                if (this.items.contains(item)) {
+                    if (isDuplicate) {
+                        this.duplicates.add(item);
+                    } else {
+                        this.duplicates.remove(item);
+                    }
+                }
+            }
+
+            /**
+             * Indicates whether given item is a duplicate.
+             *
+             * @param item
+             *            item to check
+             * @return <code>true</code> if item is duplicate
+             */
+            public boolean isDuplicateElement(Object item) {
+                return duplicates.contains(item);
+            }
+
+            /**
+             * Load history from memento.
+             *
+             * @param memento
+             *            memento from which the history will be retrieved
+             */
+            public void loadHistory(IMemento memento) {
+                if (this.selectionHistory != null) {
+                    this.selectionHistory.load(memento);
+                }
+            }
+
+            /**
+             * Save history to memento.
+             *
+             * @param memento
+             *            memento to which the history will be added
+             */
+            public void saveHistory(IMemento memento) {
+                if (this.selectionHistory != null) {
+                    this.selectionHistory.save(memento);
+                }
+            }
+
+            /**
+             * Gets sorted items.
+             *
+             * @return sorted items
+             */
+            private Object[] getSortedItems() {
+                if (lastSortedItems.size() != items.size()) {
+                    synchronized (lastSortedItems) {
+                        lastSortedItems.clear();
+                        lastSortedItems.addAll(items);
+                        Collections.sort(lastSortedItems, getHistoryComparator());
+                    }
+                }
+                return lastSortedItems.toArray();
+            }
+
+            /**
+             * Remember result of filtering.
+             *
+             * @param itemsFilter
+             */
+            public void rememberResult(ItemsFilter itemsFilter) {
+                List itemsList = Collections.synchronizedList(Arrays
+                        .asList(getSortedItems()));
+                // synchronization
+                if (itemsFilter == filter) {
+                    lastCompletedFilter = itemsFilter;
+                    lastCompletedResult = itemsList;
+                }
+
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+             */
+            @Override
+            public Object[] getElements(Object inputElement) {
+                //return items.toArray();
+                return lastFilteredItems.toArray();
+            }
+
+            public int getNumberOfElements() {
+
+               return lastFilteredItems.size();
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+             */
+            @Override
+            public void dispose() {
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
+             *      java.lang.Object, java.lang.Object)
+             */
+            @Override
+            public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.ILazyContentProvider#updateElement(int)
+             */
+            @Override
+            public void updateElement(int index) {
+
+                CdmFilteredItemsSelectionDialog.this.getList().replace((lastFilteredItems
+                        .size() > index) ? lastFilteredItems.get(index) : null,
+                        index);
+
+            }
+
+            /**
+             * Main method responsible for getting the filtered items and checking
+             * for duplicates. It is based on the
+             * {@link FilteredItemsSelectionDialog.ContentProvider#getFilteredItems(Object, IProgressMonitor)}.
+             *
+             * @param checkDuplicates
+             *            <code>true</code> if data concerning elements
+             *            duplication should be computed - it takes much more time
+             *            than standard filtering
+             *
+             * @param monitor
+             *            progress monitor
+             */
+            public void reloadCache(boolean checkDuplicates,
+                    IProgressMonitor monitor) {
+
+                reset = false;
+
+                if (monitor != null) {
+                    // the work is divided into two actions of the same length
+                    int totalWork = checkDuplicates ? 200 : 100;
+
+                    monitor
+                            .beginTask(
+                                    WorkbenchMessages.FilteredItemsSelectionDialog_cacheRefreshJob,
+                                    totalWork);
+                }
+
+                // the TableViewer's root (the input) is treated as parent
+
+                lastFilteredItems = Arrays.asList(getFilteredItems(getList().getInput(),
+                        monitor != null ? new SubProgressMonitor(monitor, 100)
+                                : null));
+
+                if (reset || (monitor != null && monitor.isCanceled())) {
+                    if (monitor != null) {
+                        monitor.done();
+                    }
+                    return;
+                }
+
+                if (checkDuplicates) {
+                    checkDuplicates(monitor);
+                }
+                if (monitor != null) {
+                    monitor.done();
+                }
+            }
+
+            private void checkDuplicates(IProgressMonitor monitor) {
+                synchronized (lastFilteredItems) {
+                    IProgressMonitor subMonitor = null;
+                    int reportEvery = lastFilteredItems.size() / 20;
+                    if (monitor != null) {
+                        subMonitor = new SubProgressMonitor(monitor, 100);
+                        subMonitor
+                                .beginTask(
+                                        WorkbenchMessages.FilteredItemsSelectionDialog_cacheRefreshJob_checkDuplicates,
+                                        5);
+                    }
+                    HashMap helperMap = new HashMap();
+                    for (int i = 0; i < lastFilteredItems.size(); i++) {
+                        if (reset
+                                || (subMonitor != null && subMonitor.isCanceled())) {
+                            return;
+                        }
+                        Object item = lastFilteredItems.get(i);
+
+                        if (!(item instanceof ItemsListSeparator)) {
+                            Object previousItem = helperMap.put(
+                                    getElementName(item), item);
+                            if (previousItem != null) {
+                                setDuplicateElement(previousItem, true);
+                                setDuplicateElement(item, true);
+                            } else {
+                                setDuplicateElement(item, false);
+                            }
+                        }
+
+                        if (subMonitor != null && reportEvery != 0
+                                && (i + 1) % reportEvery == 0) {
+                            subMonitor.worked(1);
+                        }
+                    }
+                    helperMap.clear();
+                }
+            }
+
+            /**
+             * Returns an array of items filtered using the provided
+             * <code>ViewerFilter</code>s with a separator added.
+             *
+             * @param parent
+             *            the parent
+             * @param monitor
+             *            progress monitor, can be <code>null</code>
+             * @return an array of filtered items
+             */
+            protected Object[] getFilteredItems(Object parent,
+                    IProgressMonitor monitor) {
+                int ticks = 100;
+                if (monitor == null) {
+                    monitor = new NullProgressMonitor();
+                }
+
+                monitor
+                        .beginTask(
+                                WorkbenchMessages.FilteredItemsSelectionDialog_cacheRefreshJob_getFilteredElements,
+                                ticks);
+                if (filters != null) {
+                    ticks /= (filters.size() + 2);
+                } else {
+                    ticks /= 2;
+                }
+
+                // get already sorted array
+                Object[] filteredElements = getSortedItems();
+
+                monitor.worked(ticks);
+
+                // filter the elements using provided ViewerFilters
+                if (filters != null && filteredElements != null) {
+                    for (Iterator iter = filters.iterator(); iter.hasNext();) {
+                        ViewerFilter f = (ViewerFilter) iter.next();
+                        filteredElements = f.filter(getList(), parent, filteredElements);
+                        monitor.worked(ticks);
+                    }
+                }
+
+                if (filteredElements == null || monitor.isCanceled()) {
+                    monitor.done();
+                    return new Object[0];
+                }
+
+                ArrayList preparedElements = new ArrayList();
+                boolean hasHistory = false;
+
+                if (filteredElements.length > 0) {
+                    if (isHistoryElement(filteredElements[0])) {
+                        hasHistory = true;
+                    }
+                }
+
+                int reportEvery = filteredElements.length / ticks;
+
+                // add separator
+                for (int i = 0; i < filteredElements.length; i++) {
+                    Object item = filteredElements[i];
+
+                    if (hasHistory && !isHistoryElement(item)) {
+                        preparedElements.add(itemsListSeparator);
+                        hasHistory = false;
+                    }
+
+                    preparedElements.add(item);
+
+                    if (reportEvery != 0 && ((i + 1) % reportEvery == 0)) {
+                        monitor.worked(1);
+                    }
+                }
+
+                monitor.done();
+
+                return preparedElements.toArray();
+            }
+
+            /**
+             * Adds a filter to this content provider. For an example usage of such
+             * filters look at the project <code>org.eclipse.ui.ide</code>, class
+             * <code>org.eclipse.ui.dialogs.FilteredResourcesSelectionDialog.CustomWorkingSetFilter</code>.
+             *
+             *
+             * @param filter
+             *            the filter to be added
+             */
+            public void addFilter(ViewerFilter filter) {
+                if (filters == null) {
+                    filters = new ArrayList();
+                }
+                filters.add(filter);
+                // currently filters are only added when dialog is restored
+                // if it is changed, refreshing the whole TableViewer should be
+                // added
+            }
+
+        }
+
+        /**
+         * A content provider that does nothing.
+         */
+        private class NullContentProvider implements IContentProvider {
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+             */
+            @Override
+            public void dispose() {
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
+             *      java.lang.Object, java.lang.Object)
+             */
+            @Override
+            public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+            }
+
+        }
+
+        /**
+         * DetailsContentViewer objects are wrappers for labels.
+         * DetailsContentViewer provides means to change label's image and text when
+         * the attached LabelProvider is updated.
+         */
+        private class DetailsContentViewer extends ContentViewer {
+
+            private final CLabel label;
+
+            /**
+             * Unfortunately, it was impossible to delegate displaying border to
+             * label. The <code>ViewForm</code> is used because
+             * <code>CLabel</code> displays shadow when border is present.
+             */
+            private final ViewForm viewForm;
+
+            /**
+             * Constructs a new instance of this class given its parent and a style
+             * value describing its behavior and appearance.
+             *
+             * @param parent
+             *            the parent component
+             * @param style
+             *            SWT style bits
+             */
+            public DetailsContentViewer(Composite parent, int style) {
+                viewForm = new ViewForm(parent, style);
+                GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+                gd.horizontalSpan = 2;
+                viewForm.setLayoutData(gd);
+                label = new CLabel(viewForm, SWT.FLAT);
+                label.setFont(parent.getFont());
+                viewForm.setContent(label);
+                hookControl(label);
+            }
+
+            /**
+             * Shows/hides the content viewer.
+             *
+             * @param visible
+             *            if the content viewer should be visible.
+             */
+            public void setVisible(boolean visible) {
+                GridData gd = (GridData) viewForm.getLayoutData();
+                gd.exclude = !visible;
+                viewForm.getParent().layout();
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.Viewer#inputChanged(java.lang.Object,
+             *      java.lang.Object)
+             */
+            @Override
+            protected void inputChanged(Object input, Object oldInput) {
+                if (oldInput == null) {
+                    if (input == null) {
+                        return;
+                    }
+                    refresh();
+                    return;
+                }
+
+                refresh();
+
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.ContentViewer#handleLabelProviderChanged(org.eclipse.jface.viewers.LabelProviderChangedEvent)
+             */
+            @Override
+            protected void handleLabelProviderChanged(
+                    LabelProviderChangedEvent event) {
+                if (event != null) {
+                    refresh(event.getElements());
+                }
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.Viewer#getControl()
+             */
+            @Override
+            public Control getControl() {
+                return label;
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.Viewer#getSelection()
+             */
+            @Override
+            public ISelection getSelection() {
+                // not supported
+                return null;
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.Viewer#refresh()
+             */
+            @Override
+            public void refresh() {
+                Object input = this.getInput();
+                if (input != null) {
+                    ILabelProvider labelProvider = (ILabelProvider) getLabelProvider();
+                    doRefresh(labelProvider.getText(input), labelProvider
+                            .getImage(input));
+                } else {
+                    doRefresh(null, null);
+                }
+            }
+
+            /**
+             * Sets the given text and image to the label.
+             *
+             * @param text
+             *            the new text or null
+             * @param image
+             *            the new image
+             */
+            private void doRefresh(String text, Image image) {
+                if ( text != null ) {
+                    text = LegacyActionTools.escapeMnemonics(text);
+                }
+                label.setText(text);
+                label.setImage(image);
+            }
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers.ISelection,
+             *      boolean)
+             */
+            @Override
+            public void setSelection(ISelection selection, boolean reveal) {
+                // not supported
+            }
+
+            /**
+             * Refreshes the label if currently chosen element is on the list.
+             *
+             * @param objs
+             *            list of changed object
+             */
+            private void refresh(Object[] objs) {
+                if (objs == null || getInput() == null) {
+                    return;
+                }
+                Object input = getInput();
+                for (int i = 0; i < objs.length; i++) {
+                    if (objs[i].equals(input)) {
+                        refresh();
+                        break;
+                    }
+                }
+            }
+        }
+
+        /**
+         * Compares items according to the history.
+         */
+        private class HistoryComparator implements Comparator {
+
+            /*
+             * (non-Javadoc)
+             *
+             * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+             */
+            @Override
+            public int compare(Object o1, Object o2) {
+                boolean h1 = isHistoryElement(o1);
+                boolean h2 = isHistoryElement(o2);
+                if (h1 == h2) {
+                    return getItemsComparator().compare(o1, o2);
+                }
+
+                if (h1) {
+                    return -2;
+                }
+                if (h2) {
+                    return +2;
+                }
+
+                return 0;
+            }
+
+        }
+
+
+        /**
+         * Get the control where the search pattern is entered. Any filtering should
+         * be done using an {@link ItemsFilter}. This control should only be
+         * accessed for listeners that wish to handle events that do not affect
+         * filtering such as custom traversal.
+         *
+         * @return Control or <code>null</code> if the pattern control has not
+         *         been created.
+         */
+        public Control getPatternControl() {
+            return pattern;
+        }
+
+        /**
+         * CDM IMPLEMENTATION
+         * we have to call the initModel() method in the applyFilter method, so we had to add this abstract method (moved from AbstractFilteredCdmResourceSelectionDialog)
+         * <p>initModel</p>
+         */
+        abstract protected void initModel();
+
+               public Object[] getCurrentSelection() {
+                       return currentSelection;
+               }
+
+               public void setCurrentSelection(Object[] currentSelection) {
+                       this.currentSelection = currentSelection;
+               }
+
+               public TableViewer getList() {
+                       return list;
+               }
+
+               public void setList(TableViewer list) {
+                       this.list = list;
+               }
+
+    }
+
+
index 46cdcaa5e5135ccc1d5f9dc9579adeea8b8c886a..6010690e3499b20008d746aeadf6a6e2cd0958c3 100644 (file)
@@ -1,9 +1,9 @@
 // $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.
  */
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
@@ -26,7 +27,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * <p>
  * FilteredClassificationSelectionDialog class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Sep 21, 2009
  * @version 1.0
@@ -38,13 +39,13 @@ public class ClassificationSelectionDialog extends
         * <p>
         * select
         * </p>
-        * 
+        *
         * @param shell
         *            a {@link org.eclipse.swt.widgets.Shell} object.
         * @param conversation
         *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *            object.
-        * @param curentSelection 
+        * @param curentSelection
         * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonomicTree} object.
         */
        public static Classification select(Shell shell,
@@ -58,7 +59,7 @@ public class ClassificationSelectionDialog extends
         * <p>
         * Constructor for FilteredClassificationSelectionDialog.
         * </p>
-        * 
+        *
         * @param shell
         *            a {@link org.eclipse.swt.widgets.Shell} object.
         * @param title
@@ -81,7 +82,7 @@ public class ClassificationSelectionDialog extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea
         * (org.eclipse.swt.widgets.Composite)
@@ -94,7 +95,7 @@ public class ClassificationSelectionDialog extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog
         * #getPersistentObject(java.util.UUID)
@@ -107,7 +108,7 @@ public class ClassificationSelectionDialog extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog
         * #initModel()
@@ -115,8 +116,15 @@ public class ClassificationSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
+           Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+
                model = CdmStore.getService(IClassificationService.class)
-                               .getUuidAndTitleCache();
+                               .getUuidAndTitleCache(limitOfInitialElements, pattern);
        }
 
        /** {@inheritDoc} */
index 6f084b1f1a0718e9df678419e8ab691b7dbb325d..202ba7370b8eea26104406e97e8f8cbab6986fc3 100644 (file)
@@ -76,7 +76,7 @@ public class CollectionSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(ICollectionService.class).getUuidAndTitleCache();
+               model = CdmStore.getService(ICollectionService.class).getUuidAndTitleCache(null, null);
        }
 
        /* (non-Javadoc)
index a0df66d8122820228aeeeac59e2ca2f1896263f0..b91471b49782c5bdfe7818e4a47efe96e57abd49 100644 (file)
@@ -60,7 +60,7 @@ AbstractFilteredCdmResourceSelectionDialog<Media> {
     /** {@inheritDoc} */
     @Override
     protected void initModel() {
-        model = CdmStore.getService(IMediaService.class).getUuidAndTitleCache();
+        model = CdmStore.getService(IMediaService.class).getUuidAndTitleCache(null, null);
     }
 
     /* (non-Javadoc)
index a3e52d6d9108d41ca618bb74722d44f604613891..86222d5a8b3e6bc104be05b0d5699fcf93665a90 100644 (file)
@@ -12,7 +12,9 @@ package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
 import java.util.UUID;
 
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.INameService;
@@ -47,7 +49,14 @@ public class NameSelectionDialog extends AbstractFilteredCdmResourceSelectionDia
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(INameService.class).getUuidAndTitleCache();
+           Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+
+               model = CdmStore.getService(INameService.class).getUuidAndTitleCache(limitOfInitialElements, pattern);
        }
 
        /** {@inheritDoc} */
index b671c35be679b75423e0aa11b4db97336683a9fc..024bdd6db4fb41b606cb530cfd6b51656eab2436 100644 (file)
@@ -34,6 +34,7 @@ import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -62,12 +63,14 @@ public class NamedAreaSelectionDialog extends
                        }else{
                                selectedVocabularies.remove(vocabulary);
                        }
+                       PreferencesUtil.getPreferenceStore().setValue(getPrefKey(vocabulary), !isChecked());
                        initModel();
                }
        }
 
-       private Collection<TermVocabulary> selectedVocabularies;
-    private ArrayList<TermVocabulary> preselectedVocabularies;
+       protected Collection<TermVocabulary> selectedVocabularies;
+    protected ArrayList<TermVocabulary> preselectedVocabularies;
+    private Object preferenceID;
 
 
        /**
@@ -78,26 +81,34 @@ public class NamedAreaSelectionDialog extends
         * @param namedArea
         *                              A namedArea that should be selected when the dialog opens
         * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        * @param preferenceId a class which is used for generating the preference key so that every 
+        * dialogs can be grouped to have their own preferences depending on this id
         * @param preselectedVocabularyUuids the {@link UUID}s of the pre-selected vocabularies
         * @return a {@link eu.etaxonomy.cdm.model.location.NamedArea} object.
         */
-       public static NamedArea select(Shell shell, ConversationHolder conversation, NamedArea namedArea, UUID... preselectedVocabularyUuids) {
+       public static NamedArea select(Shell shell, ConversationHolder conversation, NamedArea namedArea, String preferenceId, UUID... preselectedVocabularyUuids) {
                NamedAreaSelectionDialog dialog = new NamedAreaSelectionDialog(shell, conversation,
-                               "Choose an area", false, namedArea, preselectedVocabularyUuids);
+                               "Choose an area", false, namedArea, preferenceId, preselectedVocabularyUuids);
                return getSelectionFromDialog(dialog);
        }
 
-       protected NamedAreaSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, NamedArea namedArea, UUID... preselectedVocabularyUuids) {
+       protected NamedAreaSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, NamedArea namedArea, Object preferenceId, UUID... preselectedVocabularyUuids) {
                super(shell, conversation, title, multi, NamedAreaSelectionDialog.class.getCanonicalName(), namedArea);
-               if(preselectedVocabularyUuids.length>0){
-                   preselectedVocabularies = new ArrayList<TermVocabulary>();
-                   for(int i=0;i<preselectedVocabularyUuids.length;i++){
-                       TermVocabulary preselectedVocabulary = CdmStore.getService(IVocabularyService.class).find(preselectedVocabularyUuids[i]);
-                       preselectedVocabularies.add(preselectedVocabulary);
-                   }
-                   selectedVocabularies.retainAll(preselectedVocabularies);
-                   initModel();//re-init to consider pre-selected vocabularies
+               this.preferenceID = preferenceId;
+               preselectedVocabularies = new ArrayList<TermVocabulary>();
+               for(int i=0;i<preselectedVocabularyUuids.length;i++){
+                       TermVocabulary preselectedVocabulary = CdmStore.getService(IVocabularyService.class).find(preselectedVocabularyUuids[i]);
+                       preselectedVocabularies.add(preselectedVocabulary);
                }
+               Collection<TermVocabulary> tempSelectedVocabularies = new HashSet<>();
+               for(TermVocabulary vocabulary:selectedVocabularies){
+                       if(preselectedVocabularies.contains(vocabulary)
+                                       || !PreferencesUtil.getPreferenceStore().getBoolean(getPrefKey(vocabulary))){
+                               tempSelectedVocabularies.add(vocabulary);
+                       }
+               }
+               selectedVocabularies = tempSelectedVocabularies;
+               initModel();//re-init to consider pre-selected vocabularies
        }
 
        /** {@inheritDoc} */
@@ -109,11 +120,18 @@ public class NamedAreaSelectionDialog extends
                for(TermVocabulary<NamedArea> vocabulary : getAvailableVocabularies()){
                        IncludeNamedAreaVocabulary action = new IncludeNamedAreaVocabulary(vocabulary);
                        menuManager.add(action);
-                       if(preselectedVocabularies==null || preselectedVocabularies.isEmpty() || preselectedVocabularies.contains(vocabulary)) {
+                       if(preselectedVocabularies.contains(vocabulary)) {
                            action.setChecked(true);
                        }
+                       else{
+                               action.setChecked(!PreferencesUtil.getPreferenceStore().getBoolean(getPrefKey(vocabulary)));
+                       }
                }
        }
+       
+       private String getPrefKey(TermVocabulary vocabulary){
+               return "hide_"+NamedAreaSelectionDialog.class.getCanonicalName()+vocabulary.getUuid()+preferenceID;
+       }
 
        /** {@inheritDoc} */
        @Override
index 7aa0dd9ffa1ad504a2c1271ace890246b8980780..96104ab299f3e59aa2ad66e446b832eced264c1f 100644 (file)
@@ -9,13 +9,51 @@
 */
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+
+
+import java.text.Collator;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.jface.viewers.IColorProvider;
+import org.eclipse.jface.viewers.IFontProvider;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
+import org.eclipse.ui.internal.WorkbenchImages;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewPersonWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog.FilteredCdmResourceLabelProvider;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsFilter;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsListSeparator;
 
 /**
  * @author k.luther
@@ -34,15 +72,43 @@ public class NomenclaturalAuthorSelectionDialog extends AgentSelectionDialog {
      * @param agent
      */
     protected NomenclaturalAuthorSelectionDialog(Shell shell, ConversationHolder conversation, String title,
-            boolean multi, String settings, AgentBase agent) {
-        super(shell, conversation, title, multi, settings, agent);
+            boolean multi, String settings, AgentBase agent, boolean teamMemberSelection) {
+        super(shell, conversation, title, multi, settings, agent, teamMemberSelection);
         // TODO Auto-generated constructor stub
     }
 
     @Override
     protected void initModel() {
-        model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache();
+        Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+        model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern, null);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+        if(TEAM.equals(parameter)){
+            return new NewTeamWizard(true);
+        }
+        else if(PERSON.equals(parameter)){
+            return new NewPersonWizard();
+        }
+        else{
+            throw new IllegalArgumentException("Could not determine the desired wizard.");
+        }
     }
+    /**
+        *
+        * @return
+        */
+    @Override
+       protected ILabelProvider createListLabelProvider() {
+               return new FilteredCdmResourceAbbrevLabelProvider();
+       }
 
     /**
      * <p>select</p>
@@ -52,9 +118,9 @@ public class NomenclaturalAuthorSelectionDialog extends AgentSelectionDialog {
      * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
      * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
      */
-    public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity) {
+    public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity, boolean teamMemberSelection) {
         NomenclaturalAuthorSelectionDialog dialog = new NomenclaturalAuthorSelectionDialog(shell, conversation,
-                "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity);
+                "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity, teamMemberSelection);
         return getSelectionFromDialog(dialog);
     }
 
@@ -80,5 +146,97 @@ public class NomenclaturalAuthorSelectionDialog extends AgentSelectionDialog {
                 " supports cdmObject of type IIdentifiableEntity." +
                 " Please implement specific method in subclass.");
     }
+   
+    
+    
+    public class FilteredCdmResourceAbbrevLabelProvider extends LabelProvider {
+               @Override
+               public String getText(Object element) {
+                       if (element == null) {
+                               return null;
+                       }
+                       UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
+                       String titleCache = uuidAndTitleCache.getTitleCache();
+                       String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache();
+                       if (!titleCache.equals(abbrevTitleCache)){
+                               abbrevTitleCache += " - " + titleCache;
+                       }
+                       if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG)){
+                               abbrevTitleCache += " ["+uuidAndTitleCache.getId()+"]";
+                       }
+            return abbrevTitleCache;
+               }
+       };
+       
+       /** {@inheritDoc} */
+       @Override
+       protected ItemsFilter createFilter() {
+               return new ItemsFilter() {
+
+                       /**
+                        * Always returns false to enforce refiltering even if the pattern is equal
+                        */
+                       @Override
+                       public boolean equalsFilter(ItemsFilter filter) {
+                               return false;
+                       }
+
+                       @Override
+                       public boolean isConsistentItem(Object item) {
+                               return false;
+                       }
+
+                       @Override
+                       public boolean matchItem(Object item) {
+                               String textTitleCache = null;
+                               String abbrevTitleCache = null;
+                               if(item instanceof UuidAndTitleCache){
+                                       if (((UuidAndTitleCache) item).getAbbrevTitleCache() != null){
+                                               abbrevTitleCache = ((UuidAndTitleCache) item).getAbbrevTitleCache();
+                                       } 
+                                       if (((UuidAndTitleCache) item).getTitleCache() != null ){
+                                               textTitleCache = ((UuidAndTitleCache) item).getTitleCache();
+                                       }
+                               }else if(item instanceof String){
+                                       textTitleCache = (String) item;
+                               }
+                               
+                               return  (matches(textTitleCache) || matches(abbrevTitleCache)) ;
+                               
+                       }
+
+               };
+       }
+       
+       @Override
+       protected Comparator getItemsComparator() {
+               return new Comparator<UuidAndTitleCache>() {
+                       @Override
+                       public int compare(UuidAndTitleCache entity1,
+                                       UuidAndTitleCache entity2) {
+                               Collator collator = Collator.getInstance();
+                               String compareString1 = "";
+                               if (entity1.getAbbrevTitleCache() != null){
+                                       compareString1 = entity1.getAbbrevTitleCache();
+                               }
+                               if (entity1.getTitleCache() != null){
+                                       compareString1 += entity1.getTitleCache();
+                               }
+                               
+                               
+                               String compareString2 = "";
+                               if (entity2.getAbbrevTitleCache() != null){
+                                       compareString2 = entity2.getAbbrevTitleCache();
+                               }
+                               if (entity2.getTitleCache() != null){
+                                       compareString2 += entity2.getTitleCache();
+                               }
+                               
+                               
+                               return collator.compare(compareString1, compareString2);
+                       }
+               };
+       }
+
 
 }
index 5d9099441bbbafe58bd74977f4176d2dedf8c920..caa1e4cc6ff2f282e7722d7ca390d1f8d1135810 100644 (file)
@@ -12,10 +12,13 @@ package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
 import java.util.UUID;
 
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
@@ -30,7 +33,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class NomenclaturalAuthorTeamSelectionDialog extends
-       AbstractFilteredCdmResourceSelectionDialog<Team> {
+       AbstractFilteredCdmResourceSelectionDialog<AgentBase> {
 
        /**
         * <p>select</p>
@@ -43,7 +46,7 @@ public class NomenclaturalAuthorTeamSelectionDialog extends
        public static Team select(Shell shell, ConversationHolder conversation, Team team){
                NomenclaturalAuthorTeamSelectionDialog dialog = new NomenclaturalAuthorTeamSelectionDialog(shell, conversation,
                                "Choose Author Team", false, NomenclaturalAuthorTeamSelectionDialog.class.getCanonicalName(), team);
-               return getSelectionFromDialog(dialog);
+               return (Team)getSelectionFromDialog(dialog);
        }
 
        /**
@@ -64,7 +67,7 @@ public class NomenclaturalAuthorTeamSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
-               return new NewTeamWizard();
+               return new NewTeamWizard(true);
        }
 
        /** {@inheritDoc} */
@@ -76,7 +79,13 @@ public class NomenclaturalAuthorTeamSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(IAgentService.class).getTeamUuidAndNomenclaturalTitle();
+           Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+               model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern, Team.class);
        }
 
        /** {@inheritDoc} */
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalPersonAuthorSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalPersonAuthorSelectionDialog.java
new file mode 100644 (file)
index 0000000..9429d1f
--- /dev/null
@@ -0,0 +1,69 @@
+// $Id$
+/**
+* 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.ui.dialog.selection;
+
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @date 21.06.2016
+ *
+ */
+public class NomenclaturalPersonAuthorSelectionDialog extends NomenclaturalAuthorSelectionDialog {
+
+    /**
+     * @param shell
+     * @param conversation
+     * @param title
+     * @param multi
+     * @param settings
+     * @param agent
+     */
+    protected NomenclaturalPersonAuthorSelectionDialog(Shell shell, ConversationHolder conversation, String title,
+            boolean multi, String settings, AgentBase agent, boolean teamMemberSelection) {
+        super(shell, conversation, title, multi, settings, agent, teamMemberSelection);
+        // TODO Auto-generated constructor stub
+    }
+
+
+    /**
+     * <p>select</p>
+     *
+     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+     * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
+     * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
+     */
+    public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity, boolean teamMemberSelection) {
+        NomenclaturalPersonAuthorSelectionDialog dialog = new NomenclaturalPersonAuthorSelectionDialog(shell, conversation,
+                "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity,teamMemberSelection);
+        return getSelectionFromDialog(dialog);
+    }
+
+    @Override
+    protected void initModel() {
+        Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+        model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern, Person.class);
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalReferenceSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalReferenceSelectionDialog.java
new file mode 100755 (executable)
index 0000000..b112fe4
--- /dev/null
@@ -0,0 +1,181 @@
+package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+import java.text.Collator;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.jface.viewers.IColorProvider;
+import org.eclipse.jface.viewers.IFontProvider;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
+import org.eclipse.ui.internal.WorkbenchImages;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IReferenceService;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsFilter;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsListSeparator;
+
+public class NomenclaturalReferenceSelectionDialog extends
+               ReferenceSelectionDialog {
+
+       protected NomenclaturalReferenceSelectionDialog(Shell shell,
+                       ConversationHolder conversation, String title, boolean multi,
+                       Reference reference) {
+               super(shell, conversation, title, multi, reference);
+               // TODO Auto-generated constructor stub
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#initModel()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected void initModel() {
+           Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+
+               model = CdmStore.getService(IReferenceService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern);
+       }
+       
+       /**
+        *
+        * @return
+        */
+   @Override
+       protected ILabelProvider createListLabelProvider() {
+               return new FilteredCdmResourceAbbrevLabelProvider();
+       }
+       
+       /**
+        * <p>select</p>
+        *
+        * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
+        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
+        */
+       
+       public static Reference select(Shell shell, ConversationHolder conversation, Reference reference) {
+               NomenclaturalReferenceSelectionDialog dialog = new NomenclaturalReferenceSelectionDialog(shell, conversation,
+                               "Choose a reference", false, reference);
+               return getSelectionFromDialog(dialog);
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected ItemsFilter createFilter() {
+               return new ItemsFilter() {
+
+                       /**
+                        * Always returns false to enforce refiltering even if the pattern is equal
+                        */
+                       @Override
+                       public boolean equalsFilter(ItemsFilter filter) {
+                               return false;
+                       }
+
+                       @Override
+                       public boolean isConsistentItem(Object item) {
+                               return false;
+                       }
+
+                       @Override
+                       public boolean matchItem(Object item) {
+                               return true;
+//                             String text = null;
+//                             if(item instanceof UuidAndTitleCache){
+//                                     if (((UuidAndTitleCache) item).getAbbrevTitleCache() != null){
+//                                             text = ((UuidAndTitleCache) item).getAbbrevTitleCache();
+//                                     } else{
+//                                             text = ((UuidAndTitleCache) item).getTitleCache();
+//                                     }
+//                             }else if(item instanceof String){
+//                                     text = (String) item;
+//                             }
+//                             return text != null ? matches(text) : false;
+                       }
+
+               };
+       }
+       
+
+       
+       public class FilteredCdmResourceAbbrevLabelProvider extends LabelProvider {
+               @Override
+               public String getText(Object element) {
+                       if (element == null) {
+                               return null;
+                       }
+                       UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
+                       String titleCache = uuidAndTitleCache.getTitleCache();
+                       String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache();
+                       if (!abbrevTitleCache.equals(titleCache)){
+                               abbrevTitleCache += " - " + titleCache;
+                       }
+                       if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG)){
+                               abbrevTitleCache += " ["+uuidAndTitleCache.getId()+"]";
+                       }
+            return abbrevTitleCache;
+               }
+       };
+       
+       @Override
+       protected Comparator getItemsComparator() {
+               return new Comparator<UuidAndTitleCache>() {
+                       @Override
+                       public int compare(UuidAndTitleCache entity1,
+                                       UuidAndTitleCache entity2) {
+                               Collator collator = Collator.getInstance();
+                               String compareString1 = "";
+                               if (entity1.getAbbrevTitleCache() != null){
+                                       compareString1 = entity1.getAbbrevTitleCache();
+                               }
+                               if (entity1.getTitleCache() != null){
+                                       compareString1 += entity1.getTitleCache();
+                               }
+                               String compareString2 = "";
+                               if (entity2.getAbbrevTitleCache() != null){
+                                       compareString2 = entity2.getAbbrevTitleCache();
+                               }
+                               if (entity2.getTitleCache() != null){
+                                       compareString2 += entity2.getTitleCache();
+                               }
+                               return collator.compare(compareString1, compareString2);
+                       }
+               };
+       }
+
+
+
+}
index 3a31d6fc942726572538fb2f799ffd3feffd5da4..8accc6c3db16764732fa59db81ddcdf45a788dda 100644 (file)
@@ -61,7 +61,7 @@ public class PolytomousKeySelectionDialog extends
         */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(IPolytomousKeyService.class).getUuidAndTitleCache();
+               model = CdmStore.getService(IPolytomousKeyService.class).getUuidAndTitleCache(null, null);
        }
 
        /* (non-Javadoc)
index 0bba39ae2df1c5fc2c868f526ae89225acc046cd..187a6808791bee7f7a1a6e41ef282140f38f823b 100644 (file)
@@ -12,7 +12,9 @@ package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
 import java.util.UUID;
 
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
@@ -75,7 +77,14 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache();
+           Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
+
+               model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(limitOfInitialElements,pattern);
        }
 
 
@@ -84,11 +93,12 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
        protected String getTitle(Reference cdmObject) {
                if(cdmObject == null){
                        return "";
-               }else if(cdmObject.getAuthorship() == null){
-                       return super.getTitle(cdmObject);
                }else{
-                       return DefaultReferenceCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorship().getTitleCache());
+                       return super.getTitle(cdmObject);
                }
+//             }else{
+//                     return DefaultReferenceCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorship().getTitleCache());
+//             }
        }
 
        /** {@inheritDoc} */
index 70cdd0fb3e6533a2530fcb17043d661f52218f45..610334db0584e0e3a94ee820b3f6d30d1363f7f4 100644 (file)
@@ -44,7 +44,9 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
+import eu.etaxonomy.taxeditor.ui.section.agent.TeamMemberElement;
 import eu.etaxonomy.taxeditor.ui.section.name.AuthorshipDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;
 
 /**
  * @author n.hoffmann
@@ -74,9 +76,13 @@ public class SelectionDialogFactory {
                if(clazz.equals(TaxonNode.class)){
                        return (T) TaxonNodeSelectionDialog.select(shell, conversation, null, null, (TaxonNode) currentSelection, ((TaxonNode) currentSelection).getClassification());
                }
+               if(clazz.equals(Reference.class) && parentElement instanceof NomenclaturalReferenceDetailElement){
+                       return (T) NomenclaturalReferenceSelectionDialog.select(shell, conversation, (Reference) currentSelection);
+               }
                if(clazz.equals(Reference.class)){
                        return (T) ReferenceSelectionDialog.select(shell, conversation, (Reference) currentSelection);
                }
+               
                if(clazz.equals(TaxonNameBase.class)){
                        return (T) NameSelectionDialog.select(shell, conversation, (TaxonNameBase) currentSelection);
                }
@@ -84,14 +90,16 @@ public class SelectionDialogFactory {
                        return (T) TeamSelectionDialog.select(shell, conversation, (Team) currentSelection);
                }
                if(clazz.equals(TeamOrPersonBase.class) && parentElement instanceof AuthorshipDetailElement){
-            return (T) NomenclaturalAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+            return (T) NomenclaturalAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection, false);
         }else if(clazz.equals(TeamOrPersonBase.class)){
                    //TODO: add TeamOrPersonBaseSelectionDialog (see ticket #4545)
-                   return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+                   return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection, false);
                }
-
+               if(clazz.equals(Person.class) && parentElement instanceof TeamMemberElement){
+                   return (T) NomenclaturalPersonAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection, true);
+        }
                if(clazz.equals(AgentBase.class)){
-                       return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+                       return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection, false);
                }
                if(clazz.equals(Feature.class)){
                        return (T) FeatureSelectionDialog.select(shell, conversation, (Feature) currentSelection);
@@ -118,10 +126,10 @@ public class SelectionDialogFactory {
                }
                if(clazz.equals(NamedArea.class)){
                    if(parentElement instanceof IEntityElement && ((IEntityElement) parentElement).getEntity() instanceof DerivedUnitFacade){
-                       return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) currentSelection, Country.uuidCountryVocabulary);
+                       return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) currentSelection, DerivedUnit.class.getCanonicalName(), Country.uuidCountryVocabulary);
                    }
                    else{
-                       return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) currentSelection);
+                       return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) currentSelection, parentElement.getClass().getCanonicalName());
                    }
                }
                if(clazz.equals(Collection.class)){
index 589b08440cea7c7b0f4d1c5be9370d302556eebe..f99ce36778f4ae051b34fc8629223aed9267875d 100644 (file)
@@ -50,7 +50,7 @@ public class SpecimenOrObservationBaseSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(IOccurrenceService.class).getUuidAndTitleCache();
+               model = CdmStore.getService(IOccurrenceService.class).getUuidAndTitleCache(null, null);
        }
 
        /** {@inheritDoc} */
index a02f2c0e1d963681d507511e387ea2fe97dfd1d8..4b0549593c1ed059ed2da8cff4a41c924bcb82b9 100644 (file)
 
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+import java.util.List;
 import java.util.UUID;
 
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.newWizard.NewTaxonWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -67,17 +71,18 @@ public class TaxonBaseSelectionDialog extends AbstractFilteredCdmResourceSelecti
     }
 
     /** {@inheritDoc} */
-    @Override
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+       @Override
     protected void initModel() {
-        if(clazz == TaxonBase.class){
-            model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCache();
-        }
-        else if(clazz == Taxon.class){
-            model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCacheTaxon();
-        }
-        else if(clazz == Synonym.class){
-            model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCacheSynonym();
+        Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
         }
+
+
+
+        model = (List)CdmStore.getService(ITaxonService.class).getUuidAndTitleCache(Taxon.class, limitOfInitialElements, pattern);
     }
 
     /** {@inheritDoc} */
old mode 100644 (file)
new mode 100755 (executable)
index 3523937..5292eac
@@ -19,6 +19,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
@@ -126,6 +127,12 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
                // default to first tree
                // TODO this will be problematic and can only be seen as workaround
 
+           Control control = getPatternControl();
+        String pattern = null;
+        if (control != null){
+            pattern = ((Text)control).getText();
+        }
+
 
                if(classifications == null){
                        classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, null);
@@ -143,7 +150,9 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
                        }
                }
 
-               model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification.getUuid(), excludeTaxa);
+               //FIXME prelim
+               pattern = pattern + "*";
+               model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification.getUuid(),  limitOfInitialElements, pattern);
        }
 
        /** {@inheritDoc} */
index 1ef071eac9e2459747c492f0427ad7c43b04acee..009c0b9abd117b6291cc3d5673cd98d3170eef5d 100644 (file)
@@ -26,6 +26,8 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.TypedListener;
 import org.eclipse.swt.widgets.Widget;
 import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.events.IExpansionListener;
 import org.eclipse.ui.forms.widgets.Section;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 import org.eclipse.ui.forms.widgets.ToggleHyperlink;
@@ -35,6 +37,7 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * <p>
@@ -165,6 +168,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
         */
        public void setEntity(ENTITY entity) {
                this.entity = entity;
+               addExpandListener();
        }
 
        /*
@@ -591,11 +595,34 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /** {@inheritDoc} */
-
        @Override
     public void update(CdmDataChangeMap changeEvents) {
 
        }
+       
+    private class ExpandListener implements IExpansionListener{
+               @Override
+               public void expansionStateChanging(ExpansionEvent e) {
+               }
+               @Override
+               public void expansionStateChanged(ExpansionEvent e) {
+                       PreferencesUtil.getPreferenceStore().setValue(getPrefKey(), e.getState());
+               }
+    }
+
+    /**
+     * Adds a custom implementation of IExpansionListener to this section
+     * which stores the expansion state in the preferences
+     */
+       private void addExpandListener() {
+               PreferencesUtil.getPreferenceStore().setDefault(getPrefKey(), isExpanded());
+               setExpanded(PreferencesUtil.getPreferenceStore().getBoolean(getPrefKey()));
+               addExpansionListener(new ExpandListener());             
+       }
+
+       private String getPrefKey() {
+               return this.getClass().getCanonicalName()+";"+entity.getClass().getCanonicalName();
+       }
 
 
 }
index 8052c82f410c67ed1d40c7a2ca290f10e7e8f5bf..12f8a0af70c009be2d4ce584ca40748179034b1a 100644 (file)
@@ -62,6 +62,8 @@ import eu.etaxonomy.cdm.model.common.LSID;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.common.TermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
@@ -173,8 +175,6 @@ import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailElement;
@@ -299,6 +299,9 @@ import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.VersionElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.IdentifierElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.IdentifierSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessageElement;
 import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonBaseDetailElement;
@@ -589,6 +592,110 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+    /**
+     * <p>
+     * createMultiLanguageTextElement
+     * </p>
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     *
+     * @param Representation
+     *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+     * @param textHeight
+     *            a int.
+     * @param style
+     *            a int.
+     * @return a
+     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
+     *         object.
+     */
+    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, Representation representation, TermBase term,int textHeight, int style, boolean fillDetails) {
+        RepresentationElement element = new RepresentationElement(this, parentElement, representation, term, textHeight, style, fillDetails);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
+    /**
+     * <p>
+     * createMultiLanguageTextElement
+     * </p>
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     *
+     * @param Representation
+     *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+     * @param textHeight
+     *            a int.
+     * @param style
+     *            a int.
+     * @return a
+     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
+     *         object.
+     */
+    public TranslatableRepresentationElement createTranslatableRepresentationElement(ICdmFormElement parentElement, Representation representation, TermBase term,int textHeight, int style, boolean fillDetails) {
+        TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, representation, term, textHeight, style, fillDetails);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
+    /**
+     * <p>
+     * createMultiLanguageTextElement
+     * </p>
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     *
+     * @param term
+     *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+     * @param textHeight
+     *            a int.
+     * @param style
+     *            a int.
+     * @return a
+     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
+     *         object.
+     */
+    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style, boolean fillDetails) {
+        RepresentationElement element = new RepresentationElement(this, parentElement, term, textHeight, style, fillDetails);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
+    /**
+     * <p>
+     * createMultiLanguageTextElement
+     * </p>
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     *
+     * @param term
+     *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+     * @param textHeight
+     *            a int.
+     * @param style
+     *            a int.
+     * @return a
+     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
+     *         object.
+     */
+    public TranslatableRepresentationElement createTranslatableRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style, boolean fillDetails) {
+        TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, term, textHeight, style, fillDetails);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
     public KeyStatementElement createKeyStatementElement(ICdmFormElement parentElement, String labelString,
             KeyStatement keyStatement, int textHeight, int style) {
         KeyStatementElement element = new KeyStatementElement(this, parentElement, labelString, keyStatement,
@@ -807,7 +914,7 @@ public class CdmFormFactory extends FormToolkit {
             String labelString,
             T selection,
             int style) {
-        TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, true, style);
+        TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, true, style, false);
         adapt(element);
         parentElement.addElement(element);
         return element;
@@ -820,11 +927,24 @@ public class CdmFormFactory extends FormToolkit {
                        T selection,
                        boolean addEmptyElement,
                        int style) {
-               TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, addEmptyElement, style);
+               TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, addEmptyElement, style, false);
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+    public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+                       TermType termType,
+                       ICdmFormElement parentElement,
+                       String labelString,
+                       T selection,
+                       boolean addEmptyElement,
+                       int style, boolean useAbbrevLabel) {
+               TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, addEmptyElement, style, useAbbrevLabel);
                adapt(element);
                parentElement.addElement(element);
                return element;
        }
+    
 
     public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
             TermVocabulary<?> termVocabulary,
@@ -1966,8 +2086,8 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style){
-        TeamDetailElement element = new TeamDetailElement(this, parentElement, style);
+    public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style, boolean isNomenclatural){
+        TeamDetailElement element = new TeamDetailElement(this, parentElement, style, isNomenclatural);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -2163,8 +2283,8 @@ public class CdmFormFactory extends FormToolkit {
     }
 
     //--------EntityCollectionSection----------
-    public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style);
+    public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural){
+        TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style, isNomenclatural);
         addAndAdaptSection(parentElement, section);
         return section;
     }
@@ -2343,12 +2463,18 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    public IdentifierDetailSection createIdentifierDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        IdentifierDetailSection section = new IdentifierDetailSection(this, conversation, parentElement, style);
+    public IdentifierSection createIdentifierDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        IdentifierSection section = new IdentifierSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
+    public DerivedUnitFacadeIdentifierSection createDerivedUnitFacadeIdentifierSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+       DerivedUnitFacadeIdentifierSection section = new DerivedUnitFacadeIdentifierSection(this, conversation, parentElement, style);
+       addAndAdaptSection(parentElement, section);
+       return section;
+    }
+
     public CurrentSampleDesignationDetailSection createCurrentSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         CurrentSampleDesignationDetailSection section = new CurrentSampleDesignationDetailSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
@@ -2436,8 +2562,12 @@ public class CdmFormFactory extends FormToolkit {
 
         if (entity instanceof Annotation) {
             element = new AnnotationElement(this, parentElement, (Annotation) entity, removeListener, style);
-        }else if (entity instanceof Person) {
-            element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
+        }else if (entity instanceof Person ) {
+            boolean isNomenclatural = false;
+            if (parentElement instanceof TeamMemberSection){
+                isNomenclatural = ((TeamMemberSection) parentElement).isNomenclaturalTeam();
+            }
+            element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style, isNomenclatural);
         } else if (entity instanceof Credit) {
             element = new CreditElement(this, parentElement, (Credit) entity, removeListener, style);
         } else if (entity instanceof Extension) {
@@ -2565,7 +2695,7 @@ public class CdmFormFactory extends FormToolkit {
                 element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
             }
             else{
-                element = new IdentifierDetailElement(this, parentElement, (Identifier) entity, removeListener, style);
+                element = new IdentifierElement(this, parentElement, (Identifier) entity, removeListener, style);
             }
         } else if (entity instanceof TermVocabulary) {
             TermVocabulary<?> termVocabulary = (TermVocabulary<?>)entity;
@@ -2696,15 +2826,15 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public NomenclaturalAuthorTeamSelectionElement createNomenclaturalAuthorTeamSelectionElement(
-            ConversationHolder conversation, ICdmFormElement parentElement, String labelString, Team selection,
-            int mode, int style) {
-        NomenclaturalAuthorTeamSelectionElement element = new NomenclaturalAuthorTeamSelectionElement(this,
-                conversation, parentElement, labelString, selection, mode, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
+//    public NomenclaturalAuthorTeamSelectionElement createNomenclaturalAuthorTeamSelectionElement(
+//            ConversationHolder conversation, ICdmFormElement parentElement, String labelString, Team selection,
+//            int mode, int style) {
+//        NomenclaturalAuthorTeamSelectionElement element = new NomenclaturalAuthorTeamSelectionElement(this,
+//                conversation, parentElement, labelString, selection, mode, style);
+//        adapt(element);
+//        parentElement.addElement(element);
+//        return element;
+//    }
 
     /** {@inheritDoc} */
     public LabelElement createLabel(ICdmFormElement parentElement, String text) {
@@ -2825,4 +2955,16 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+    /**
+     * @param conversationHolder
+     * @param formElement
+     * @param expanded
+     * @return
+     */
+    public TeamMemberSection createNomenclaturalTeamMemberSection(ConversationHolder conversationHolder,
+            ICdmFormElement formElement, int expanded) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }
index 7f040a8680ade1770d7d2e0efcbd235db569e885..11a1e21d5a1baa0c85ba535b5a69420ee89d3633 100644 (file)
@@ -30,10 +30,12 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
+import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
 
 /**
@@ -65,8 +67,9 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                public void widgetSelected(SelectionEvent e) {
                        Map<Language, LanguageString> multilanguageText = getMultilanguageText();
 
-                       if (multilanguageText == null){
-                               MessagingUtils.warningDialog("No text to transalte", getClass(), "The text is empty and therefore can not be translated");
+                       if (multilanguageText.isEmpty()){
+                               MessagingUtils.warningDialog("No text to translate", getClass(), "The text is empty and therefore can not be translated");
+                               return;
                        }
 
                        TranslationWizard wizard = new TranslationWizard(multilanguageText);
@@ -86,6 +89,8 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
        protected LanguageStringWithLabelElement element_languageString;
 
        private Button button;
+       
+//     private Button removeRepresentation;
 
        private Map<Language, LanguageString> multilanguageText;
 
@@ -134,6 +139,13 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
                                                "", null, style);
                combo_language.addSelectionListener(this);
+//             removeRepresentation = formFactory.createButton(getLayoutComposite(), null,
+//                             SWT.PUSH);
+//             removeRepresentation.setImage(ImageResources
+//                             .getImage(ImageResources.TRASH_ICON));
+//             removeRepresentation.setToolTipText("Remove representation");
+//             addControl(removeRepresentation);
+//             removeRepresentation.addSelectionListener(new DeleteListener(this));
                addControl(formFactory.createLabel(getLayoutComposite(), ""));
                button = formFactory.createButton(getLayoutComposite(),
                                "Open In Translation Editor", SWT.PUSH);
@@ -253,4 +265,6 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
                }
        }
+       
+       
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java
new file mode 100755 (executable)
index 0000000..388f881
--- /dev/null
@@ -0,0 +1,358 @@
+// $Id$
+/**
+* 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.ui.element;
+
+/**
+ * @author k.luther
+ * @date 22.06.2016
+ *
+ */
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.common.TermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+
+
+public class RepresentationElement  extends AbstractCdmFormElement implements
+SelectionListener{
+
+        protected TermComboElement<Language> combo_language;
+
+        protected TextWithLabelElement element_Label;
+        protected TextWithLabelElement element_abbrevLabel;
+        protected TextWithLabelElement element_text;
+
+        protected Button button;
+       
+        protected Representation selectedRepresentation;
+        protected TermBase term;
+
+               private Button removeRepresentation;
+
+       // protected final boolean isTranslationWizard;
+
+
+        /**
+         * <p>
+         * Constructor for MultilanguageTextElement.
+         * </p>
+         *
+         * @param formFactory
+         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+         *            object.
+         * @param formElement
+         *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+         *            object.
+         *
+         * @param term
+         *            a {@link eu.etaxonomy.cdm.model.common.TermBase} object.
+         * @param textHeight
+         *            a {@link java.lang.Integer} object.
+         * @param style
+         *            a int.
+         */
+        public RepresentationElement(CdmFormFactory formFactory,
+                ICdmFormElement formElement, TermBase term,
+                Integer textHeight, int style, boolean fill) {
+            super(formFactory, formElement);
+
+            formFactory.addPropertyChangeListener(this);
+
+            element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
+            element_abbrevLabel = this.formFactory
+                    .createTextWithLabelElement(formElement, "abbrev. Label",
+                            null, style);
+            element_text = this.formFactory.createMultiLineTextWithLabel(formElement, "Description", textHeight, style);
+            if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+                createRepresentationEditingElements(formElement, style);
+            }
+            setTerm(term, fill);
+
+        }
+
+        /**
+         * <p>
+         * Constructor for MultilanguageTextElement.
+         * </p>
+         *
+         * @param formFactory
+         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+         *            object.
+         * @param formElement
+         *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+         *            object.
+         * @param representation
+         *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+         * @param term
+         *            a {@link eu.etaxonomy.cdm.model.common.TermBase} object.
+         * @param textHeight
+         *            a {@link java.lang.Integer} object.
+         * @param style
+         *            a int.
+         */
+        public RepresentationElement(CdmFormFactory formFactory,
+                ICdmFormElement formElement, Representation representation, TermBase term,
+                Integer textHeight, int style, boolean fill) {
+            super(formFactory, formElement);
+
+            formFactory.addPropertyChangeListener(this);
+
+            element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
+            element_abbrevLabel = this.formFactory
+                    .createTextWithLabelElement(formElement, "abbrev. Label",
+                            null, style);
+            element_text = this.formFactory.createMultiLineTextWithLabel(formElement, "Description", textHeight, style);
+            if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+                createRepresentationEditingElements(formElement, style);
+            }
+            setTerm(term, fill);
+            setSelectedRepresentation(representation);
+
+
+        }
+
+        protected void createRepresentationEditingElements(
+                ICdmFormElement formElement, int style) {
+               removeRepresentation = formFactory.createButton(getLayoutComposite(), null,
+                               SWT.PUSH);
+               removeRepresentation.setImage(ImageResources
+                               .getImage(ImageResources.TRASH_ICON));
+               removeRepresentation.setToolTipText("Remove representation");
+               removeRepresentation.addSelectionListener(new DeleteListener(this));
+               addControl(removeRepresentation);
+               
+            combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
+                            "", null, false, style);
+
+            combo_language.addSelectionListener(this);
+            
+            //addControl(formFactory.createLabel(getLayoutComposite(), ""));
+       }
+
+        public List<Language> getLanguages() {
+
+            ArrayList<Language> languageList = new ArrayList<Language>();
+            for (Representation rep: term.getRepresentations()){
+                languageList.add(rep.getLanguage());
+            }
+
+            Collections.sort(languageList, new DefaultTermComparator<Language>());
+
+            return languageList;
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see
+         * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
+         * .events.SelectionEvent)
+         */
+        /** {@inheritDoc} */
+        @Override
+        public void widgetSelected(SelectionEvent e) {
+            Language selectedLanguage = combo_language.getSelection();
+            if (selectedLanguage != null) {
+                selectedRepresentation = getTerm().getRepresentation(
+                        selectedLanguage);
+                if (selectedRepresentation == null){
+                    selectedRepresentation = Representation.NewInstance("", "", "", selectedLanguage);
+                }
+                element_Label.setText(selectedRepresentation.getLabel());
+                element_abbrevLabel.setText(selectedRepresentation.getAbbreviatedLabel());
+                element_text.setText(selectedRepresentation.getDescription());
+                
+            }else {
+                
+                element_Label.setEnabled(false);
+                 element_abbrevLabel.setEnabled(false);
+                 element_text.setEnabled(false);
+            }
+
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see
+         * org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse
+         * .swt.events.SelectionEvent)
+         */
+        /** {@inheritDoc} */
+        @Override
+        public void widgetDefaultSelected(SelectionEvent e) {
+        }
+
+        /**
+         * <p>
+         * Setter for the field <code>multilanguageText</code>.
+         * </p>
+         *
+         * @param multilanguageText
+         *            the multilanguageText to set
+         */
+        public void setTerm(
+                TermBase term, boolean update) {
+            this.term = term;
+            if (term.getRepresentations().isEmpty()){
+               //if the term has no representation at all, create a default one.
+               Representation rep = Representation.NewInstance("", "empty representation", "", PreferencesUtil.getGlobalLanguage());
+               term.addRepresentation(rep);
+            }
+
+            if (selectedRepresentation != null) {
+               combo_language.setTerms(getLanguages());
+               
+            } else{
+                element_Label.setEnabled(false);
+                 element_abbrevLabel.setEnabled(false);
+                 element_text.setEnabled(false);
+                 if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+                        removeRepresentation.setEnabled(false);
+                 }
+            }
+            if (update){
+               updateControls();
+            }
+        }
+
+        /**
+         *
+         */
+        protected void updateControls() {
+            Representation preferredRepresentation = term
+                    .getPreferredRepresentation(PreferencesUtil.getGlobalLanguage() );
+
+            element_Label.setText(preferredRepresentation.getLabel());
+            element_abbrevLabel.setText(preferredRepresentation.getAbbreviatedLabel());
+            element_text.setText(preferredRepresentation.getDescription());
+            selectedRepresentation = preferredRepresentation;
+            if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+                combo_language.setSelection(preferredRepresentation == null?CdmStore.getDefaultLanguage():preferredRepresentation.getLanguage());
+                boolean removePossible = term.getRepresentations().size() > 1 ;
+                removeRepresentation.setEnabled(removePossible);
+                
+            }
+        }
+
+        /**
+         * <p>
+         * Getter for the field <code>multilanguageText</code>.
+         * </p>
+         *
+         * @return the multilanguageText
+         */
+        public TermBase getTerm() {
+            return term;
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see
+         * eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org
+         * .eclipse.jface.util.PropertyChangeEvent)
+         */
+        /** {@inheritDoc} */
+        @Override
+        public void propertyChange(PropertyChangeEvent event) {
+            if (event == null) {
+                return;
+            }
+            Object eventSource = event.getSource();
+
+            if (eventSource == element_abbrevLabel) {
+                String abbrevLabel = ((TextWithLabelElement) eventSource)
+                        .getText();
+                selectedRepresentation.setAbbreviatedLabel(abbrevLabel);
+                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+            } else if (eventSource == element_Label){
+                String label = ((TextWithLabelElement) eventSource)
+                        .getText();
+                selectedRepresentation.setLabel(label);
+                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+            } else if (eventSource == element_text){
+                String text = ((TextWithLabelElement) eventSource)
+                        .getText();
+                selectedRepresentation.setText(text);
+                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+            } else if (eventSource == button){
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+            } else if (eventSource == combo_language){
+               if (combo_language.getSelection() != null){
+                       element_Label.setEnabled(true);
+                       element_abbrevLabel.setEnabled(true);
+                       element_text.setEnabled(true);
+                        boolean removePossible = term.getRepresentations().size() > 1 ;
+                     removeRepresentation.setEnabled(removePossible);
+               } else{
+                        element_Label.setEnabled(false);
+                     element_abbrevLabel.setEnabled(false);
+                     element_text.setEnabled(false);
+                     removeRepresentation.setEnabled(false);
+               }
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+            }
+        }
+
+        /**
+         * @return the selectedRepresentation
+         */
+        public Representation getSelectedRepresentation() {
+            return selectedRepresentation;
+        }
+
+        /**
+         * @param selectedRepresentation the selectedRepresentation to set
+         */
+        public void setSelectedRepresentation(Representation selectedRepresentation) {
+            if (selectedRepresentation == null){
+                selectedRepresentation = Representation.NewInstance("", "", "", null);
+            }
+            this.selectedRepresentation = selectedRepresentation;
+        }
+        
+        private class DeleteListener extends SelectionAdapter {
+
+               private final RepresentationElement element;
+
+               public DeleteListener(RepresentationElement element) {
+                       this.element = element;
+               }
+
+               @Override
+               public void widgetSelected(SelectionEvent e) {
+                       term.removeRepresentation(selectedRepresentation);
+                       firePropertyChangeEvent(new CdmPropertyChangeEvent(
+                                       this, e));
+                       updateControls();
+               }
+       }
+    }
+
+
index 039b54c0d7826c31c25ce617e039b2e4ae892e80..a0da22b1c4cfdd7c260546deb15844f6a4b2dca6 100644 (file)
@@ -138,7 +138,8 @@ public class TextWithLabelElement extends AbstractCdmFormElement implements Modi
      * @return a {@link java.lang.String} object.
      */
     public String getText() {
-        return text.getText();
+       
+      return CdmUtils.Nb(text.getText());
     }
 
     /**
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TranslatableRepresentationElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TranslatableRepresentationElement.java
new file mode 100755 (executable)
index 0000000..6a29983
--- /dev/null
@@ -0,0 +1,133 @@
+// $Id$
+/**
+* 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.ui.element;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.common.TermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
+
+/**
+ * @author k.luther
+ * @date 23.06.2016
+ *
+ */
+public class TranslatableRepresentationElement extends RepresentationElement {
+
+    /**
+     * @param formFactory
+     * @param formElement
+     * @param representation
+     * @param term
+     * @param textHeight
+     * @param style
+     * @param isTranslationWizard
+     */
+    public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
+            Representation representation, TermBase term, Integer textHeight, int style, boolean fill) {
+        super(formFactory, formElement, representation, term, textHeight, style, fill);
+        
+
+    }
+
+
+    /**
+     * @param cdmFormFactory
+     * @param parentElement
+     * @param term
+     * @param textHeight
+     * @param style
+     */
+    public TranslatableRepresentationElement(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
+            TermBase term, int textHeight, int style, boolean fill) {
+        super(cdmFormFactory, parentElement, term, textHeight, style, fill);
+    }
+
+
+    private class OpenTranslationWizard extends SelectionAdapter {
+
+        public OpenTranslationWizard() {
+            super();
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see
+         * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
+         * .swt.events.SelectionEvent)
+         */
+        @Override
+        public void widgetSelected(SelectionEvent e) {
+            TermBase term = getTerm();
+
+            if (term == null){
+                MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
+            }
+
+            TermTranslationWizard wizard = new TermTranslationWizard(term);
+            WizardDialog dialog = new WizardDialog(getLayoutComposite()
+                    .getShell(), wizard);
+
+            if (dialog.open() == Window.OK) {
+                combo_language.setTerms(getLanguages());
+                updateControls();
+            }
+            
+            firePropertyChangeEvent( e);
+
+        }
+    }
+    @Override
+    protected void createRepresentationEditingElements(ICdmFormElement formElement, int style) {
+        super.createRepresentationEditingElements(formElement, style );
+        button = formFactory.createButton(getLayoutComposite(),
+                "Open In Translation Editor", SWT.PUSH);
+        addControl(button);
+        button.setLayoutData(LayoutConstants.RIGHT());
+        button.addSelectionListener(new OpenTranslationWizard());
+
+    }
+
+    @Override
+    public void setTerm(
+            TermBase term, boolean update) {
+        super.setTerm(term, update);
+        if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+               button.setEnabled(false);
+        }
+        updateControls();
+    }
+
+
+    /**
+     *
+     */
+    @Override
+    protected void updateControls() {
+       super.updateControls();
+       if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+          button.setEnabled(true);
+          combo_language.setTerms(getLanguages());
+          combo_language.setSelection(selectedRepresentation.getLanguage());
+       }
+
+    }
+
+
+}
index 85df5d02ef7c05b7b6888661e6e1a4229683dbae..9ac5d8c502f8a3028a5d43a32d9d55e4435ed293 100644 (file)
@@ -1,9 +1,9 @@
 // $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.
 */
@@ -22,6 +22,7 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
@@ -40,59 +41,43 @@ public class EditPasswordElement extends AbstractCdmFormElement implements Selec
        private Button button;
 
        private ConversationHolder conversation;
-       
-       /**
-        * @param formFactory
-        * @param formElement
-        */
+
        public EditPasswordElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement, String labelString, User user, ConversationHolder conversation) {
                super(formFactory, formElement);
-               
+
                this.conversation = conversation;
                this.user = user;
-               
+
                Label label = formFactory.createLabel(getLayoutComposite(), null);
                addControl(label);
-               
-               String buttonLabelString = (labelString != null) ? labelString : "Change Password";
-               
+
+               String buttonLabelString = (labelString != null) ? labelString : Messages.PasswordWizardPage_CHANGE_PASSWORD;
+
                button = formFactory.createButton(getLayoutComposite(), buttonLabelString, SWT.PUSH);
                button.setLayoutData(LayoutConstants.RIGHT());
                addControl(button);
-               
+
                button.addSelectionListener(this);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-        */
        @Override
        public void widgetSelected(SelectionEvent e) {
                if(!CdmStore.getService(IUserService.class).userExists(user.getUsername())) {
-                       MessagingUtils.warningDialog("Username does not exist", this, "Please create or save user '" + user.getUsername() + "' before changing password");
+                       MessagingUtils.warningDialog(Messages.EditPasswordElement_USERNAME_DOES_NOT_EXIST, this, String.format(Messages.EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER, user.getUsername()));
                } else {
                        PasswordWizard wizard = new PasswordWizard(user, conversation);
-                       WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);                
+                       WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
                        dialog.open();
                }
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-        */
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {}
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-        */
        @Override
        public void update(CdmDataChangeMap arg0) {}
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-        */
        @Override
        public ConversationHolder getConversationHolder() {
                return conversation;
index 177a16a917db82ccab6e70126f11b7a7f0c3679b..da6134bab023df6ec5eac378cc6e61b0364c9030 100644 (file)
@@ -20,6 +20,7 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -43,11 +44,9 @@ public class PasswordWizard extends Wizard implements IConversationEnabled{
        public PasswordWizard(User user, ConversationHolder conversation){
                this.conversation = conversation;
                this.user = user;
+               setWindowTitle(Messages.PasswordWizardPage_CHANGE_PASSWORD);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#addPages()
-        */
        @Override
        public void addPages() {
                CdmFormFactory formFactory = new CdmFormFactory(Display.getDefault());
@@ -56,16 +55,15 @@ public class PasswordWizard extends Wizard implements IConversationEnabled{
                addPage(passwordPage);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
        @Override
        public boolean performFinish() {
 
                ConversationHolder internalConversation = CdmStore.getCurrentApplicationConfiguration().NewConversation();
            internalConversation.bind();
            internalConversation.startTransaction();
-               try{
+               String warningTitle = Messages.PasswordWizard_COULD_NOT_CHANGE_PWD;
+        String warningMessage = Messages.PasswordWizard_OLD_PWD_INCORRECT;
+        try{
                        if(passwordPage.isChangingOwnPassword()){
                            // change own password with validating of old one
                                CdmStore.getService(IUserService.class).changePassword(passwordPage.getOldPassword(), passwordPage.getNewPassword());
@@ -79,14 +77,14 @@ public class PasswordWizard extends Wizard implements IConversationEnabled{
                    internalConversation.close();
                        return true;
                }catch(AccessDeniedException e){
-                       MessagingUtils.warningDialog("Could not change password", this, "The old password is not correct.");
+                       MessagingUtils.warningDialog(warningTitle, this, warningMessage);
                        return false;
                }catch (AuthenticationException e){
-                       MessagingUtils.warningDialog("Could not change password", this, "The old password is not correct.");
+                       MessagingUtils.warningDialog(warningTitle, this, warningMessage);
 
                        return false;
                }catch(Exception e){
-                       MessagingUtils.warningDialog("Problem with changing password", this, "The password could not be changed. " + e.getMessage());
+                       MessagingUtils.warningDialog(Messages.PasswordWizard_PROBLEM_WITH_CHANGING_PWD, this, Messages.PasswordWizard_PWD_COULD_NOT_BE_CHANGED + e.getMessage());
                        return false;
                }finally{
                    if(conversation != null){
@@ -95,18 +93,10 @@ public class PasswordWizard extends Wizard implements IConversationEnabled{
                }
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-        */
        @Override
        public void update(CdmDataChangeMap arg0) {
-               // TODO Auto-generated method stub
-
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-        */
        @Override
        public ConversationHolder getConversationHolder() {
                return conversation;
index 1e5ce2f62720ea4908c70b30daeae0dffef1efcb..df8b005ac5f811fe64f0bbe73fd22eaa606c0549 100644 (file)
@@ -14,12 +14,13 @@ import org.eclipse.jface.dialogs.IInputValidator;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -29,40 +30,27 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- * <p>UserWizardPage class.</p>
- *
  * @author n.hoffmann
  * @created 02.07.2009
  * @version 1.0
  */
 public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implements ModifyListener{
 
-       /** Constant <code>NAME="USER_WIZARD_PAGE"</code> */
-       public static final String NAME = "USER_WIZARD_PAGE";
-
        private TextWithLabelElement text_oldPassword;
        private TextWithLabelElement text_password;
        private TextWithLabelElement text_passwordRepeat;
        private final PasswordValidator passwordValidator;
 
-       private final UniqueUserNameValidator uniqueUsernameValidator;
-
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param entity
-        */
        protected PasswordWizardPage(CdmFormFactory formFactory,
                        ConversationHolder conversation, User entity) {
                super(formFactory, conversation, entity);
 
                passwordValidator = new PasswordValidator();
-               uniqueUsernameValidator = new UniqueUserNameValidator();
+
+               setTitle(Messages.PasswordWizardPage_CHANGE_PASSWORD);
+               setDescription(Messages.PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#createControl(org.eclipse.swt.widgets.Composite)
-        */
        @Override
        public void createControl(Composite parent) {
                Composite control = formFactory.createComposite(parent);
@@ -74,13 +62,16 @@ public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implem
                WizardPageRootElement rootElement = new WizardPageRootElement(formFactory, control, getConversationHolder());
 
                if(isChangingOwnPassword()) {
-                   text_oldPassword = formFactory.createTextWithLabelElement(rootElement, "Old Password", null, SWT.PASSWORD);
+                   text_oldPassword = formFactory.createTextWithLabelElement(rootElement, Messages.PasswordWizardPage_OLD_PASSWORD, null, SWT.PASSWORD);
                }
-               text_password =  formFactory.createTextWithLabelElement(rootElement, "New Password", null, SWT.PASSWORD);
-               text_passwordRepeat =  formFactory.createTextWithLabelElement(rootElement, "Repeat Password", null, SWT.PASSWORD);
+               text_password =  formFactory.createTextWithLabelElement(rootElement, Messages.PasswordWizardPage_NEW_PASSWORD, null, SWT.PASSWORD);
+               text_passwordRepeat =  formFactory.createTextWithLabelElement(rootElement, Messages.PasswordWizardPage_REPEAT_PASSWORD, null, SWT.PASSWORD);
 
                ((Text)text_passwordRepeat.getMainControl()).addModifyListener(this);
 
+               Color bgColor = getShell().getBackground();
+               rootElement.setBackground(bgColor);
+               control.setBackground(bgColor);
                setControl(control);
        }
 
@@ -89,9 +80,6 @@ public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implem
     }
 
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement)
-        */
        @Override
        public AbstractCdmDetailElement<User> createElement(
                        ICdmFormElement rootElement) {
@@ -99,9 +87,6 @@ public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implem
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
-        */
        /** {@inheritDoc} */
        @Override
     public void modifyText(ModifyEvent e) {
@@ -121,41 +106,13 @@ public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implem
                setErrorMessage(message);
        }
 
-       private class UniqueUserNameValidator implements IInputValidator{
-
-               private static final String USER_EXISTS = "Username already exists";
-               private static final String NAME_TO_SHORT = "Username is empty";
-
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.dialogs.IInputValidator#isValid(java.lang.String)
-                */
-               @Override
-        public String isValid(String newText) {
-                       // query for username
-                       if(newText.length() < 1){
-                               setPageComplete(false);
-                               return NAME_TO_SHORT;
-                       }
-                       if(CdmStore.getService(IUserService.class).userExists(newText)){
-                               setPageComplete(false);
-                               return USER_EXISTS;
-                       }
-
-                       setPageComplete(true);
-                       return null;
-               }
-       }
-
        private class PasswordValidator implements IInputValidator{
 
-               private static final int PW_MIN_LENGTH = 5;
+               private final int PW_MIN_LENGTH = 5;
 
-               private static final String TO_SHORT = "Password has to have at least " + PW_MIN_LENGTH + " characters";
-               private static final String NO_MATCH = "The passwords do not match";
+               private final String TO_SHORT = String.format(Messages.PasswordWizardPage_PASSWORD_MIN_CHARACTER, PW_MIN_LENGTH);
+               private final String NO_MATCH = Messages.PasswordWizardPage_PASSWORDS_DO_NOT_MATCH;
 
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.dialogs.IInputValidator#isValid(java.lang.String)
-                */
                @Override
         public String isValid(String newText) {
                        if(newText.length() < PW_MIN_LENGTH){
@@ -180,16 +137,10 @@ public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implem
 
        }
 
-       /**
-        * @return
-        */
        public String getOldPassword() {
                return text_oldPassword.getText();
        }
 
-       /**
-        * @return
-        */
        public String getNewPassword() {
                return text_password.getText();
        }
index cf2a786c869a2fd781942d8c52231af1900b5fea..317549711b383b143aa26cd655b4ee3438f7b502 100644 (file)
@@ -21,8 +21,12 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -127,8 +131,24 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
 
        protected void setSectionTitle() {
                String title = "";
+               String label = "";
                if (getEntity() != null && (getEntity() instanceof IdentifiableEntity) && !(getEntity() instanceof SpecimenOrObservationBase)) {
-                       title = ": " + ((IdentifiableEntity) getEntity()).getTitleCache();
+                       if (getEntity() instanceof DefinedTermBase<?> ){
+                               label = ((DefinedTermBase<?>)getEntity()).getLabel(PreferencesUtil.getGlobalLanguage());
+                               if (label == null){
+                                       label = ((DefinedTermBase<?>)getEntity()).getLabel();
+                               }
+                               
+                       } else if (getEntity() instanceof TextData){
+                               label = ((TextData)getEntity()).getLanguageText(PreferencesUtil.getGlobalLanguage()).getText();
+                               if (label == null){
+                                       label = ((TextData)getEntity()).getLanguageText(Language.DEFAULT()).getText();
+                               }
+                       } else{
+                               label =((IdentifiableEntity) getEntity()).getTitleCache();
+                       }
+                       title = ": " + label;
+                       
                        // we have to duplicate ampersands otherwise they are treated as
                        // mnenomic (see Label.setText() documentation)
                        // see also #4302
index 482b9455ea46ab3de5a81d718770047a79672f49..693a54028bdb1c7e4a9849418f9105eabd084cb2 100644 (file)
@@ -142,7 +142,8 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
         * Override in subclasses if you want to have a different behaviour.
         */
        protected void setSectionTitle() {
-               if(getCollection(getEntity()) != null && getCollection(getEntity()).size() > 0){
+               Collection<ELEMENT> collection = getCollection(getEntity());
+               if(collection != null && collection.size() > 0){
                        this.setText(getTitleString() + " +");
                }else{
                        this.setText(getTitleString());
index 2541c85bd437284f6360dc746fc2f784b4e75b1e..d8ef6945c726398f54e32ea9866e8abdb9bbec27 100644 (file)
@@ -9,6 +9,8 @@ import java.util.EnumSet;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -26,16 +28,20 @@ public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentif
      */
     private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
     protected ToggleableTextElement toggleable_cache;
+    protected boolean isAdvancedView ;
 
     public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
         updateToggleableCacheState();
+        initIsAdvancedDetailsView();
 
     }
 
     public void updateToggleableCacheField() {
-        if (!getEntity().isProtectedTitleCache()) {
-            toggleable_cache.setText(getEntity().generateTitle());
+        if (toggleable_cache != null){
+            if (!getEntity().isProtectedTitleCache()) {
+                toggleable_cache.setText(getEntity().generateTitle());
+            }
         }
     }
 
@@ -60,5 +66,15 @@ public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentif
             toggleable_cache.setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission((CdmBase) getEntity(), UPDATE));
         }
     }
+    protected void initIsAdvancedDetailsView(){
+        if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION)){
+            isAdvancedView = false;
+        } else{
+            isAdvancedView = true;
+        }
+
+
+
+    }
 
 }
index 84222634f1d281aa083e249ca9fe300782a64836..32c6e7ab376c2b0a237c25a790f360193006ba8a 100644 (file)
@@ -38,6 +38,7 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
        private CheckboxElement hasAdditionalMembers;
 
        private TeamMemberSection section_teamMembers;
+       private boolean isNomenclaturalTeam;
 
        /**
         * <p>
@@ -54,8 +55,9 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
         *            a int.
         */
        public TeamDetailElement(CdmFormFactory cdmFormFactory,
-                       ICdmFormElement formElement, int style) {
+                       ICdmFormElement formElement, int style, boolean isNomenclatural) {
                super(cdmFormFactory, formElement);
+               this.isNomenclaturalTeam = isNomenclatural;
        }
 
        /** {@inheritDoc} */
@@ -65,7 +67,7 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
         toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache", entity.getTitleCache(), entity.isProtectedTitleCache(), style);
         toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement, "Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(), style);
         hasAdditionalMembers = formFactory.createCheckbox(formElement, "Additional Members", entity.isHasMoreMembers(), style);
-        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED);
+        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED, isNomenclaturalTeam);
         section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
     }
 
@@ -73,14 +75,23 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
        @Override
        protected void updateContent() {
                super.updateContent();
-
-               toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-               toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
+               if (toggleable_cache != null){
+                   toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
+               }
+               if (toggleable_nomenclaturalTitleCache != null){
+                   toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
                                .isProtectedNomenclaturalTitleCache());
-               setIrrelevant(
-                               toggleable_cache.getState(),
-                               Arrays.asList(new Object[] { toggleable_cache,
-                                               toggleable_nomenclaturalTitleCache , hasAdditionalMembers}));
+               }
+               if (toggleable_nomenclaturalTitleCache != null && toggleable_cache != null){
+               setIrrelevant(
+                               toggleable_cache.getState(),
+                               Arrays.asList(new Object[] { toggleable_cache,
+                                               toggleable_nomenclaturalTitleCache , hasAdditionalMembers}));
+               } else if (toggleable_cache != null){
+                   setIrrelevant(
+                    toggleable_cache.getState(),
+                    Arrays.asList(new Object[] { toggleable_cache, hasAdditionalMembers}));
+               }
 
                section_teamMembers.setEntity(getEntity());
 
@@ -116,9 +127,23 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
 
                getEntity().setNomenclaturalTitle(toggleable_nomenclaturalTitleCache.getText(), pushedState);
                setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
-               
+
         if (!getEntity().isProtectedNomenclaturalTitleCache()) {
             toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitle());
         }
     }
+
+    /**
+     * @return the isNomenclaturalTeam
+     */
+    public boolean isNomenclaturalTeam() {
+        return isNomenclaturalTeam;
+    }
+
+    /**
+     * @param isNomenclaturalTeam the isNomenclaturalTeam to set
+     */
+    public void setNomenclaturalTeam(boolean isNomenclaturalTeam) {
+        this.isNomenclaturalTeam = isNomenclaturalTeam;
+    }
 }
index bacd6b548cd6c0302b89f23d542d7cb7710aab4b..47db225a5212ff623c52d44ab72330a9cfa0d6f4 100644 (file)
@@ -28,6 +28,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  */
 public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
 
+    private boolean isNomenclaturalTeam;
+
        /**
         * <p>Constructor for TeamDetailSection.</p>
         *
@@ -53,6 +55,14 @@ public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
         */
        @Override
        protected AbstractCdmDetailElement<Team> createCdmDetailElement(AbstractCdmDetailSection<Team> parentElement, int style) {
-           return formFactory.createTeamDetailElement(parentElement, style);
+           return formFactory.createTeamDetailElement(parentElement, style, isNomenclaturalTeam);
+       }
+
+       public boolean isNomenclaturalTeam(){
+           return isNomenclaturalTeam;
+       }
+
+       public void setIsNomenclaturalTeam(boolean isNomenclaturalTeam){
+           this.isNomenclaturalTeam = isNomenclaturalTeam;
        }
 }
index 8e8e1e64489eff3f9b82ab21e0e48c068161b667..1d504a70857ac846483d8d3e9bc9a852d16a2c8c 100644 (file)
@@ -29,11 +29,14 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 public class TeamMemberElement extends AbstractEntityCollectionElement<Person> {
 
        private EntitySelectionElement<Person> selection_person;
+       private final boolean isNomenclatural;
 
        public TeamMemberElement(CdmFormFactory cdmFormFactory,
                        AbstractFormSection section, Person entity,
-                       SelectionListener removeListener, int style) {
+                       SelectionListener removeListener, int style, boolean isNomenclatural) {
                super(cdmFormFactory, section, entity, removeListener, null, style);
+               this.isNomenclatural =isNomenclatural;
+
        }
 
        /** {@inheritDoc} */
index b1acd195bbbc6bede58d77e4912b557a624491e3..014baf862e4bd3cf26d308ef700b5a87bba3ca4c 100644 (file)
@@ -28,6 +28,8 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCol
  */
 public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Team, Person> {
 
+    private boolean isNomenclaturalTeam = false;
+
        /**
         * <p>Constructor for TeamMemberSection.</p>
         *
@@ -36,8 +38,9 @@ public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Te
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param style a int.
         */
-       public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
+       public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural) {
                super(cdmFormFactory, conversation, parentElement, null, style);
+               isNomenclaturalTeam = isNomenclatural;
        }
 
        /** {@inheritDoc} */
@@ -81,5 +84,12 @@ public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Te
         return getEntity().getTeamMembers();
     }
 
+    /**
+     * @return
+     */
+    public boolean isNomenclaturalTeam() {
+       return isNomenclaturalTeam;
+    }
+
 
 }
index 9016f92c6e2a4a41dba32c84e313d2fd2e35ac00..047c58af3e2b05bf31d486f1319e5f5e96d8c76a 100644 (file)
@@ -30,6 +30,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  */
 public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
 
+    private boolean isNomenclaturalTeam = false;
+
        /**
         * <p>
         * Constructor for TeamWizardPage.
@@ -45,17 +47,29 @@ public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
         *            a {@link eu.etaxonomy.cdm.model.agent.Team} object.
         */
        public TeamWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Team entity) {
+                       ConversationHolder conversation, Team entity, boolean isNomenclaturalTeam) {
                super(formFactory, conversation, entity);
                setTitle("Team");
+               setIsNomenclaturalTeam(isNomenclaturalTeam);
        }
 
        /** {@inheritDoc} */
        @Override
        public AbstractCdmDetailElement<Team> createElement(
                        ICdmFormElement rootElement) {
-               TeamDetailElement teamElement = formFactory.createTeamDetailElement(rootElement, SWT.NULL);
+               TeamDetailElement teamElement = formFactory.createTeamDetailElement(rootElement, SWT.NULL, isNomenclaturalTeam);
                teamElement.setEntity(entity);
                return teamElement;
        }
+
+    /**
+     * @return the isNomenclaturalTeam
+     */
+    public boolean isNomenclaturalTeam() {
+        return isNomenclaturalTeam;
+    }
+
+    public void setIsNomenclaturalTeam(boolean isNomenclaturalTeam){
+        this.isNomenclaturalTeam = isNomenclaturalTeam;
+    }
 }
index 68bd4712a0de29162957b380b6aed75e8ed079f2..88c0c1d32b02e29599d8d7c16389922b6366be25 100644 (file)
@@ -30,7 +30,7 @@ public class EditTaxonNodeWizard extends AbstractEditWizard<ITaxonTreeNode> {
      */
     @Override
     protected String getEntityName() {
-        return "TaxonNode";
+        return "taxon node";
     }
 
     /* (non-Javadoc)
index a2443df33f99bf13067333b1d87ac16b62f87d67..f99f1d9a9091bc526f915a0937c2566acb825585 100644 (file)
@@ -88,7 +88,7 @@ public class TaxonNodeAgentRelationCollectionElement extends AbstractEntityColle
      */
     @Override
     public void createControls(ICdmFormElement element, int style) {
-        combo_relationshipType = formFactory.createDefinedTermComboElement(TermType.TaxonNodeAgentRelationType, element, "Taxonnode Agent Relationtype", null, style);
+        combo_relationshipType = formFactory.createDefinedTermComboElement(TermType.TaxonNodeAgentRelationType, element, "Taxon node agent relationtype", null, style);
         if (entity != null){
             selection_toPerson = formFactory
                     .createSelectionElement(TeamOrPersonBase.class,
index c161aece895dde7bec119e63f9cc9b0da7aa30b5..6cd1d9886a92079d2970a1ef3c9ccc15941f314a 100644 (file)
@@ -36,7 +36,7 @@ public class TaxonNodeAgentRelationCollectionSection extends AbstractEntityColle
      */
     public TaxonNodeAgentRelationCollectionSection (CdmFormFactory formFactory, ConversationHolder conversation,
             ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement,  "TaxonNode Agent Relation", style);
+        super(formFactory, conversation, parentElement,  "Taxon node agent relation", style);
 
     }
 
index 6d347db6260973ab52da57d8d5cfdb5298475ba4..1ecc939342dc3a5d007953ef433d9b14e62521cb 100644 (file)
@@ -173,17 +173,11 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                                selection_reuseExistingName.setEnabled(enabled);
                                if (!enabled){
                     setTaxon(selection_reuseExistingTaxon.getEntity());
-                }
-                               if (isCreateNew()){
-                                   textNewTaxonName.setEnabled(enabled);
-                                   if (!enabled){
-                                       setTaxon(selection_reuseExistingTaxon.getEntity());
-                                   } else{
-                                       textNewTaxonName.setText(null);
-                                   }
-
-                                   complete = !textNewTaxonName.getText().isEmpty();
-                               }
+                }else{
+                               textNewTaxonName.setText(null);
+                           }
+                               complete = !textNewTaxonName.getText().isEmpty();
+                               
 
                } else if (eventSource == selection_reuseExistingName) {
                    boolean enabled = selection_reuseExistingName.getEntity() == null;
@@ -191,7 +185,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
                        selection_reuseExistingTaxon.setEnabled(enabled);
                        textNewTaxonName.setEnabled(enabled);
 
-                       setTaxon(selection_reuseExistingName.getEntity());
+                       //setTaxon(selection_reuseExistingName.getEntity());
 
                        complete = !textNewTaxonName.getText().isEmpty();
                } else if (eventSource == textNewTaxonName) {
@@ -291,6 +285,9 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeN
        public String getTaxonName() {
         return textNewTaxonName.getText();
     }
+       public Taxon getTaxon() {
+        return taxon;
+    }
 
        public Reference getReference(){
            return selection_SecRef.getSelection();
index f6e7a300d1b1105c24fe6edcf6364eadc497ff46..dd54afa1f9da92ea0c2e399ce56356f3b016826e 100644 (file)
@@ -59,7 +59,7 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
                        ConversationHolder conversation, ITaxonTreeNode entity, IWizardPageListener closeOnEnterListener, boolean isCreateNew) {
                super(formFactory, conversation, entity);
                this.wizardPageListener = closeOnEnterListener;
-               setTitle("TaxonNode");
+               setTitle("Edit taxon node");
                this.isCreateNew = isCreateNew;
 
        }
@@ -148,10 +148,14 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeN
        }
 
        public Taxon createTaxon() {
-               String taxonName = ((TaxonNodeDetailElement) getDetailElement()).getTaxonName();
-               Reference reference = ((TaxonNodeDetailElement) getDetailElement()).getReference();
-               NonViralName parseReferencedName = ParseHandler.parseReferencedName(taxonName, null);
-               return Taxon.NewInstance(parseReferencedName, reference);
+               if (((TaxonNodeDetailElement) getDetailElement()).getTaxon() == null){
+                       String taxonName = ((TaxonNodeDetailElement) getDetailElement()).getTaxonName();
+                       Reference reference = ((TaxonNodeDetailElement) getDetailElement()).getReference();
+                       NonViralName parseReferencedName = ParseHandler.parseReferencedName(taxonName, null);
+                       return Taxon.NewInstance(parseReferencedName, reference);
+               } else{
+                       return ((TaxonNodeDetailElement) getDetailElement()).getTaxon();
+               }
        }
 
        /*
index 8e5e5bc886f72dfbc886d04d5348ec9a47cc33e7..3a56e5c1f9e58750b6352a0052fd3c66aa10d185 100644 (file)
@@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.ui.section.description.detail;
 
 import org.eclipse.swt.SWT;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -69,6 +70,7 @@ public class TaxonInteractionDetailElement extends
 
                interactionDescription = formFactory.createMultiLineTextWithLabel(this,
                                "Relationship to the taxon:", 200, SWT.WRAP);
+               entity = HibernateProxyHelper.deproxy(entity, TaxonInteraction.class);
                interactionDescription.setText(entity.getDescription(CdmStore
                                .getDefaultLanguage()));
        }
index 07a3d89d9462f441264b014df546d341dc746636..e70f4a8f53277190d65f02d4461df4e0d64a7300 100644 (file)
@@ -116,13 +116,8 @@ public class FeatureDistributionDetailElement extends AbstractCdmDetailElement<F
                int width = image.calculateWidth();
                 IEditGeoService editGeoService;
                List<Language> languages = Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
-               if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                   editGeoService = ((CdmApplicationRemoteController)CdmStore.getCurrentApplicationConfiguration()).getEditGeoService();
-               }else{
-                   editGeoService =(IEditGeoService) CdmStore.getCurrentApplicationConfiguration().getBean(
-                       "editGeoService");
-               }
-
+               editGeoService = ((CdmApplicationRemoteController)CdmStore.getCurrentApplicationConfiguration()).getEditGeoService();
+               
                String parameter = editGeoService.getDistributionServiceRequestParameterString(
                                getTaxonDescriptions(),
                 false,
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java
deleted file mode 100644 (file)
index 147f7d4..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.ui.section.identifier;
-
-import java.util.Collection;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.widgets.Control;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.model.common.Identifier;
-import eu.etaxonomy.taxeditor.model.ImageResources;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
-
-/**
- * <p>
- * CollectingAreasDetailSection class.
- * </p>
- *
- * @author n.hoffmann
- * @created Oct 14, 2010
- * @version 1.0
- */
-public class IdentifierDetailSection extends AbstractEntityCollectionSection<DerivedUnitFacade, Identifier> {
-
-       /**
-        * <p>Constructor for CollectingAreasDetailSection.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        */
-       public IdentifierDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Identifiers", style);
-       }
-
-       @Override
-    protected Control createToolbar() {
-        ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
-
-        Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
-            /* (non-Javadoc)
-             * @see org.eclipse.jface.action.Action#run()
-             */
-            @Override
-            public void run() {
-                Identifier element = createNewElement();
-                if(element != null){
-                    if(! getSection().isExpanded()) {
-                        getSection().setExpanded(true);
-                    }
-                    internalUpdateSection(true);
-                }
-            }
-        };
-        addAction.setImageDescriptor(new ImageDescriptor() {
-
-            @Override
-            public ImageData getImageData() {
-                return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
-            }
-        });
-        addAction.setToolTipText(getTooltipString());
-
-        toolBarManager.add(addAction);
-
-        return toolBarManager.createControl(this);
-    }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public Collection<Identifier> getCollection(DerivedUnitFacade entity) {
-               return entity.getIdentifiers();
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public Identifier createNewElement() {
-               return Identifier.NewInstance(getEntity().baseUnit(), null, null);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addElement(Identifier element) {
-               getEntity().addIdentifier(element);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void removeElement(Identifier element) {
-           getEntity().removeIdentifier(getEntity().getIdentifiers().get(0));
-           getConversationHolder().commit();
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public String getEmptyString() {
-               return "No identifiers yet.";
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected String getTooltipString() {
-               return "Add an identifier";
-       }
-
-}
index 706ceb4bcf76cf61b70674f352e7e86f992acd17..ddeb878aa9c76c716354579663c786e835c92159 100644 (file)
@@ -3,6 +3,8 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.media;
 
+import java.util.Map;
+
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.swt.SWT;
@@ -15,6 +17,7 @@ import org.eclipse.swt.widgets.Listener;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -89,6 +92,12 @@ public class MediaMetaElement extends AbstractEntityCollectionElement<Media> imp
 
         text_description.setLanguageString(element.getDescription(CdmStore
                 .getDefaultLanguage()));
+        if (text_description.getText().isEmpty()){
+               Map<Language, LanguageString> allDescriptions = element.getAllDescriptions();
+               if (!allDescriptions.isEmpty()){
+                       text_description.setLanguageString(allDescriptions.get(Language.ENGLISH()));
+               }
+        }
 
         LanguageString title = element.getTitle(CdmStore.getDefaultLanguage());
 
index 9e672a485ac361830c7c647b95f06918d24bdd08..044268570adc898eb3e8b5f302cdf3475aae56f4 100644 (file)
@@ -13,12 +13,15 @@ package eu.etaxonomy.taxeditor.ui.section.name;
 import java.util.Arrays;
 
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.ZoologicalName;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
@@ -38,6 +41,9 @@ public class AuthorshipDetailElement extends
     private EntitySelectionElement<TeamOrPersonBase> selectionBasionymAuthor;
     private EntitySelectionElement<TeamOrPersonBase> selectionExCombinationAuthor;
     private EntitySelectionElement<TeamOrPersonBase> selectionCombinationAuthor;
+
+    private NumberWithLabelElement text_publicationYear;
+    private NumberWithLabelElement text_originalPublicationYear;
        /**
         * <p>
         * Constructor for AuthorshipDetailElement.
@@ -61,15 +67,18 @@ public class AuthorshipDetailElement extends
        @Override
        protected void createControls(ICdmFormElement formElement,
                        NonViralName entity, int style) {
-               toggleable_cache = formFactory.createToggleableTextField(this,
+           if (isAdvancedView){
+               toggleable_cache = formFactory.createToggleableTextField(this,
                                "Authorship Cache", entity.getAuthorshipCache(),
                                entity.isProtectedAuthorshipCache(), style);
+                   //TODO RL
+            if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
+                toggleable_cache.setVisible(false);
+            }
+           }
+           NomenclaturalCode code = entity.getNomenclaturalCode();
 
-               //TODO RL
-               if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
-                       toggleable_cache.setVisible(false);
-               }
-               selectionCombinationAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
+        selectionCombinationAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
                                getConversationHolder(),
                                formElement, "Author",
                                entity.getCombinationAuthorship(),
@@ -81,15 +90,31 @@ public class AuthorshipDetailElement extends
                                entity.getExCombinationAuthorship(),
                                EntitySelectionElement.ALL, style);
                addElement(selectionExCombinationAuthor);
+               if (code != null){
+            if (code.equals(NomenclaturalCode.ICZN)){
+                text_publicationYear = formFactory.createNumberTextWithLabelElement(formElement, "Publication Year", ((ZoologicalName)entity).getPublicationYear(), style);
+
+            }
+         }
                selectionBasionymAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class, getConversationHolder(),
                 formElement, "Basionym Author", entity.getBasionymAuthorship(),
                 EntitySelectionElement.ALL, style);
                addElement(selectionBasionymAuthor);
                selectionExBasionymAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class, getConversationHolder(),
-                       formElement, "Ex Basionym Author", entity.getExBasionymAuthorship(),
+                       formElement, "Ex Basionym Author",entity.getExBasionymAuthorship(),
                        EntitySelectionElement.ALL, style);
 
                addElement(selectionExBasionymAuthor);
+                if (code != null){
+                   if (code.equals(NomenclaturalCode.ICZN)){
+
+                       text_originalPublicationYear = formFactory.createNumberTextWithLabelElement(formElement, "Orig. Publication Year", ((ZoologicalName)entity).getOriginalPublicationYear(), style);
+
+                   }
+                }
+
+
+
        }
 
        /** {@inheritDoc} */
@@ -100,13 +125,16 @@ public class AuthorshipDetailElement extends
                }
 
                super.updateContent();
-               toggleable_cache.setEnabled(getEntity().isProtectedAuthorshipCache());
+               if (toggleable_cache != null){
+               toggleable_cache.setEnabled(getEntity().isProtectedAuthorshipCache());
+
 
-               if (this.isIrrelevant()) {
-                       setIrrelevant(isIrrelevant());
-               } else {
-                       setIrrelevant(toggleable_cache.getState(),
-                                       Arrays.asList(new Object[] { toggleable_cache }));
+               if (this.isIrrelevant()) {
+                       setIrrelevant(isIrrelevant());
+               } else {
+                       setIrrelevant(toggleable_cache.getState(),
+                                       Arrays.asList(new Object[] { toggleable_cache }));
+               }
                }
        }
 
@@ -132,7 +160,11 @@ public class AuthorshipDetailElement extends
                } else if (eventSource == selectionExBasionymAuthor) {
                        getEntity().setExBasionymAuthorship(
                                        selectionExBasionymAuthor.getSelection());
-               }
+               } else if (eventSource == text_originalPublicationYear) {
+            ((ZoologicalName)getEntity()).setOriginalPublicationYear(text_originalPublicationYear.getInteger());
+        } else if (eventSource == text_publicationYear) {
+            ((ZoologicalName)getEntity()).setPublicationYear(text_publicationYear.getInteger());
+        }
 
 //             if (eventSource != toggleable_cache) {
 //                     toggleable_cache.setText(getEntity().getAuthorshipCache());
@@ -148,8 +180,10 @@ public class AuthorshipDetailElement extends
 
        @Override
        public void updateToggleableCacheField() {
-               if(! getEntity().isProtectedAuthorshipCache()){
-                       toggleable_cache.setText(getEntity().getAuthorshipCache());
-               }
+           if (toggleable_cache != null){
+               if(! getEntity().isProtectedAuthorshipCache()){
+                       toggleable_cache.setText(getEntity().getAuthorshipCache());
+               }
+           }
        }
 }
index e6f79398c3e3c097d7a93c9efdb0fb66c855d044..77e8bf16b30f8ac244502955ca359da3e24ea832 100644 (file)
@@ -31,9 +31,11 @@ public class AuthorshipDetailSection extends AbstractCdmDetailSection<NonViralNa
 
        private TaxonBase taxonBase;
 
+
        public AuthorshipDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
                super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+
        }
 
        /** {@inheritDoc} */
index d80937e970d00992a2342e2fa6423b6af1305530..ca153c81fdc5dab9f4a56127b80cb701afb78e88 100644 (file)
@@ -30,7 +30,6 @@ import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
-import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
@@ -55,8 +54,8 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
        private SelectionArbitrator selectionArbitrator;
        private CheckboxElement checkbox_anamorphic;
        private TextWithLabelElement text_breed;
-       private NumberWithLabelElement text_publicationYear;
-       private NumberWithLabelElement text_originalPublicationYear;
+       //private NumberWithLabelElement text_publicationYear;
+       //private NumberWithLabelElement text_originalPublicationYear;
        private int cursorPosition;
 
        /**
@@ -79,19 +78,29 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
        @Override
        protected void createControls(ICdmFormElement formElement, NonViralName nonViralName, int style) {
 
-               toggleable_cache = formFactory.createToggleableTextField(this, "Name Cache", nonViralName.getNameCache(), nonViralName.isProtectedNameCache(), style);
-
+           if (isAdvancedView){
+               toggleable_cache = formFactory.createToggleableTextField(this, "Name Cache", nonViralName.getNameCache(), nonViralName.isProtectedNameCache(), style);
+           }else{
+               if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAMECACHE)){
+                       toggleable_cache = formFactory.createToggleableTextField(this, "Name Cache", nonViralName.getNameCache(), nonViralName.isProtectedNameCache(), style);
+               }
+           }
                combo_rank = formFactory.createDefinedTermComboElement(TermType.Rank, this, "Rank", nonViralName.getRank(), style);
-
-               createGenusOrUninomialControls(this, nonViralName, style);
-               createInfragenerericEpithetControls(this, nonViralName, style);
-               createSpecificEpithetControls(this, nonViralName, style);
-               createInfraSpecificEpithetControls(this, nonViralName, style);
-
-               createSpecificNameParts(this, nonViralName, style);
-
-               text_appendedPhrase = formFactory.createTextWithLabelElement(formElement, "Appended Phrase", nonViralName.getAppendedPhrase(), style);
-
+               if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS)){
+                       createGenusOrUninomialControls(this, nonViralName, style);
+                       createInfragenerericEpithetControls(this, nonViralName, style);
+                       createSpecificEpithetControls(this, nonViralName, style);
+                       createInfraSpecificEpithetControls(this, nonViralName, style);
+                       createSpecificNameParts(this, nonViralName, style);
+               }
+               if (isAdvancedView){
+                   //createSpecificNameParts(this, nonViralName, style);
+                       text_appendedPhrase = formFactory.createTextWithLabelElement(formElement, "Appended Phrase", nonViralName.getAppendedPhrase(), style);
+               }else{
+                       if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE)){
+                               text_appendedPhrase = formFactory.createTextWithLabelElement(formElement, "Appended Phrase", nonViralName.getAppendedPhrase(), style);
+               }
+               }
        }
 
        /**
@@ -115,11 +124,12 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                }
 
                super.updateContent();
-
-               if(isIrrelevant()){
-                       setIrrelevant(isIrrelevant());
-               }else{
-                       setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[]{toggleable_cache}));
+               if (isAdvancedView){
+               if(isIrrelevant()){
+                       setIrrelevant(isIrrelevant());
+               }else{
+                       setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[]{toggleable_cache}));
+               }
                }
        }
 
@@ -131,7 +141,7 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                        switch(nonViralName.getNomenclaturalCode()){
                        case ICNAFP :
                                // TODO RL
-                               if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL))
+                               if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL) && isAdvancedView)
                                {
                                        createBotanicalNameParts(formElement, nonViralName, style);
                                }
@@ -162,9 +172,10 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
 
        private void createZoologicalNameParts(ICdmFormElement formElement, NonViralName nonViralName, int style){
                ZoologicalName zoologicalName = (ZoologicalName) nonViralName;
-               text_breed = formFactory.createTextWithLabelElement(formElement, "Breed", zoologicalName.getBreed(), style);
-               text_publicationYear = formFactory.createNumberTextWithLabelElement(formElement, "Publication Year", zoologicalName.getPublicationYear(), style);
-               text_originalPublicationYear = formFactory.createNumberTextWithLabelElement(formElement, "Orig. Publication Year", zoologicalName.getOriginalPublicationYear(), style);
+
+               if (isAdvancedView){
+                   text_breed = formFactory.createTextWithLabelElement(formElement, "Breed", zoologicalName.getBreed(), style);
+               }
        }
 
        private void createGenusOrUninomialControls(ICdmFormElement element, NonViralName nonViralName, int style){
@@ -177,8 +188,14 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
        }
 
        private void createInfragenerericEpithetControls(ICdmFormElement element, NonViralName nonViralName, int style){
-               if(nonViralName.getRank() != null && nonViralName.getRank().isInfraGeneric() && !nonViralName.getRank().isSpeciesAggregate()){
-                       text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
+               if (nonViralName.getNomenclaturalCode() == null || nonViralName.getNomenclaturalCode().equals(NomenclaturalCode.ICZN)){
+                       if(nonViralName.getRank() != null && nonViralName.getRank().isLower(Rank.GENUS()) ){
+                               text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
+                       }
+               } else{
+                       if((nonViralName.getRank() != null && nonViralName.getRank().isLower(Rank.GENUS())) && !nonViralName.getRank().isLower(Rank.SPECIES()) && !nonViralName.getRank().isSpeciesAggregate()){
+                               text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
+                       }
                }
        }
 
@@ -227,7 +244,10 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                }
                else if(eventSource == checkbox_anamorphic){
                        ((BotanicalName)getEntity()).setAnamorphic(checkbox_anamorphic.getSelection());
-               }
+               }else if(eventSource == text_breed){
+            ((ZoologicalName)getEntity()).setBreed(text_breed.getText());
+        }
+
        }
 
        /*
@@ -246,11 +266,13 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
 
        @Override
        public void updateToggleableCacheField() {
-               if(! getEntity().isProtectedNameCache()){
-                       toggleable_cache.setText(getEntity().getNameCache());
-               }
+           if (toggleable_cache != null){
+               if(! getEntity().isProtectedNameCache()){
+                       toggleable_cache.setText(getEntity().getNameCache());
+               }
+           }
        }
-       
+
        @Override
        protected void handleToggleableCacheField() {
         boolean pushedState = toggleable_cache.getState();
@@ -258,7 +280,9 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
         getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
         setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, text_appendedPhrase, checkbox_anamorphic }));
         updateToggleableCacheField();
-    }  
+    }
+
+
 
 
 }
index 32315ed8d3fbf27442281994cfd28579413f141a..4d686519f96b9553a1561d5344ea325c46bfa19e 100644 (file)
@@ -87,5 +87,6 @@ public class NameDetailSection extends AbstractCdmDetailSection<NonViralName> im
        @Override
        protected AbstractCdmDetailElement<NonViralName> createCdmDetailElement(AbstractCdmDetailSection<NonViralName> parentElement, int style) {
            return formFactory.createNameDetailElement(parentElement, style);
+
        }
 }
index e7abd566679c0d621c5bf055a824bccf816f85c3..19bd9898a35ee598607b5a8afa3167761bf2df74 100644 (file)
 
 package eu.etaxonomy.taxeditor.ui.section.name;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
 import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * <p>NameRelationshipWizard class.</p>
@@ -24,10 +33,14 @@ import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
  * @created Jun 1, 2010
  * @version 1.0
  */
-public class NameRelationshipWizard extends Wizard implements IConversationEnabled{
+public class NameRelationshipWizard extends Wizard implements IConversationEnabled, ICdmEntitySessionEnabled{
 
        private static NameRelationshipDetailSection callingSection;
        
+       private ICdmEntitySession cdmEntitySession;
+    private ICdmEntitySession previousCdmEntitySession;
+    private CdmBase rootElement;
+       
        /**
         * <p>Constructor for NameRelationshipWizard.</p>
         *
@@ -35,6 +48,12 @@ public class NameRelationshipWizard extends Wizard implements IConversationEnabl
         */
        public NameRelationshipWizard(NameRelationshipDetailSection callingSection) {
                NameRelationshipWizard.callingSection = callingSection;
+               rootElement = callingSection.getEntity();
+               if (CdmStore.isActive()) {
+            previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
+            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+            cdmEntitySession.bind();
+        }
        }
                
        private NameRelationshipWizardPage page;
@@ -56,7 +75,16 @@ public class NameRelationshipWizard extends Wizard implements IConversationEnabl
                return page.isPageComplete();
        }
 
-
+       @Override
+    public void dispose() {
+        super.dispose();
+        if(cdmEntitySession != null) {
+            cdmEntitySession.dispose();
+        }
+        if(previousCdmEntitySession!=null){
+            previousCdmEntitySession.bind();
+        }
+    }
 
        /**
         * <p>getNameRelationship</p>
@@ -78,4 +106,19 @@ public class NameRelationshipWizard extends Wizard implements IConversationEnabl
 
        /** {@inheritDoc} */
        public void update(CdmDataChangeMap changeEvents) {}
+
+        @Override
+           public ICdmEntitySession getCdmEntitySession() {
+               return cdmEntitySession;
+           }
+
+           @Override
+           public java.util.Collection<CdmBase> getRootEntities() {
+               return Collections.singleton(rootElement);
+           }
+
+           @Override
+           public Map<Object, List<String>> getPropertyPathsMap() {
+               return null;
+           }
 }
index 291694aae6920ff9f6584ae48dbe4f4cd3eff82a..b1d7dc80bbe42004bda451b9ede181871bc944dd 100644 (file)
@@ -71,7 +71,7 @@ public class NameTypeDesignationElement extends
 
                selection_typeName.setEntity((TaxonNameBase) HibernateProxyHelper.deproxy(entity.getTypeName()));
 
-               combo_typeStatus.setSelection((NameTypeDesignationStatus) HibernateProxyHelper.deproxy(entity.getTypeStatus()));
+               combo_typeStatus.setSelection(HibernateProxyHelper.deproxy(entity.getTypeStatus(), NameTypeDesignationStatus.class));
 
                checkbox_notDesignated.setSelection(entity.isNotDesignated());
        }
index 37ade07a042cf480027e466b601cb53bd18a76e4..e50fca8f8adbf40db89329530a66ada45174a47f 100644 (file)
@@ -47,7 +47,7 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
-               nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(TermType.NomenclaturalStatusType, this, "Nomenclatural Status Type", null, style);
+               nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(TermType.NomenclaturalStatusType, this, "Nomenclatural Status Type", null, false, style, true);
                ruleConsideredText = formFactory.createTextWithLabelElement(this, "Rule Considered", "", style);
 
                super.createControls(element, style);
index 6b82772415c8f007691f004b3215731a67af233d..23fe4db93d8564c53a15e1016e5cd33ae05b022e 100644 (file)
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement
  * @version 1.0
  */
 public class NonViralNameDetailElement extends
-       AbstractIdentifiableEntityDetailElement<NonViralName> {
+       AbstractIdentifiableEntityDetailElement<NonViralName>  {
 
        private NameDetailSection section_name;
        private AuthorshipDetailSection section_author;
@@ -40,25 +40,53 @@ public class NonViralNameDetailElement extends
        private HybridDetailSection section_hybrid;
        private LsidWithExceptionLabelElement textLsid;
 
+
        public NonViralNameDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
+               initIsAdvancedDetailsView();
+
        }
 
        /** {@inheritDoc} */
        @Override
     protected void createControls(ICdmFormElement formElement, final NonViralName entity, int style) {
-           toggleable_cache = formFactory.createToggleableTextField(formElement, "Cache", entity.getTitleCache(), entity.isProtectedTitleCache() || entity.isProtectedFullTitleCache(), style);
 
-           combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
-           combo_nomenclaturalCode.setSelection(entity.getNomenclaturalCode());
 
-           //TODO RL
-           if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
-               toggleable_cache.setVisible(false);
-               combo_nomenclaturalCode.setVisible(false);
-           }
-           textLsid = formFactory.createLsidWithExceptionLabelElement(formElement, "Lsid", entity.getLsid(), style);
+        if (isAdvancedView){
+            toggleable_cache = formFactory.createToggleableTextField(formElement, "Cache", entity.getTitleCache(), entity.isProtectedTitleCache() || entity.isProtectedFullTitleCache(), style);
+
+            combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
+            combo_nomenclaturalCode.setSelection(entity.getNomenclaturalCode());
+            textLsid = formFactory.createLsidWithExceptionLabelElement(formElement, "Lsid", entity.getLsid(), style);
+            //TODO RL
+            if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
+                toggleable_cache.setVisible(false);
+                combo_nomenclaturalCode.setVisible(false);
+            }
+        }else{
+               if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_CACHE)){
+                       toggleable_cache = formFactory.createToggleableTextField(formElement, "Cache", entity.getTitleCache(), entity.isProtectedTitleCache() || entity.isProtectedFullTitleCache(), style);
+                if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
+                    toggleable_cache.setVisible(false);
+                }
+               }
+               if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE)){
+                       combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
+                       combo_nomenclaturalCode.setSelection(entity.getNomenclaturalCode());
+                        if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
+                                 combo_nomenclaturalCode.setVisible(false);
+                 } 
+               }
+               if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_LSID)){
+                       textLsid = formFactory.createLsidWithExceptionLabelElement(formElement, "Lsid", entity.getLsid(), style);
+                       
+               }
+                       
+               
+        }
+
+
            section_name = formFactory.createNameDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
            section_name.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
            addControl(section_name);
@@ -69,12 +97,23 @@ public class NonViralNameDetailElement extends
            addElement(section_author);
 
            //TODO RL
-           if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
-               section_hybrid = formFactory.createHybridDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
-               section_hybrid.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-               addControl(section_hybrid);
-               addElement(section_hybrid);
-           }
+           if (isAdvancedView){
+           if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
+               section_hybrid = formFactory.createHybridDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
+               section_hybrid.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+               addControl(section_hybrid);
+               addElement(section_hybrid);
+           }
+        }else{
+                if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
+                        if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_HYBRID)){
+                       section_hybrid = formFactory.createHybridDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
+                       section_hybrid.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+                       addControl(section_hybrid);
+                       addElement(section_hybrid);
+                        }
+           }
+        }
 
 
     }
@@ -142,8 +181,10 @@ public class NonViralNameDetailElement extends
                        if (getParentElement() instanceof AbstractCdmDetailSection) {
                 ((AbstractCdmDetailSection) getParentElement()).updateTitle();
             }
-                       if (!toggleable_cache.getState()) {
-                               toggleable_cache.setText(getEntity().getTitleCache());
+                       if (toggleable_cache != null){
+                       if (!toggleable_cache.getState()) {
+                               toggleable_cache.setText(getEntity().getTitleCache());
+                       }
                        }
                }
                if (eventSource == section_name) {
@@ -162,4 +203,12 @@ public class NonViralNameDetailElement extends
         setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, textLsid }));
         updateToggleableCacheField();
     }
+
+
+
+
+//    @Override
+//    public void toggleAdvancedMediaView(){
+//        mediaDetailElement.toggleAdvancedMediaView();
+//    }
 }
index 9a02d8f98d514b01315b30a4767b272ca9265ea9..8782002943f5f96008afb5d60278b8257e3289c2 100644 (file)
@@ -26,6 +26,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.NameSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -66,12 +68,12 @@ public class NonViralNameDetailSection extends AbstractCdmDetailSection<NonViral
        protected Control createToolbar() {
                ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
 
-               if(nameChoosable){
+               if(nameChoosable && !PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION)){
                    //choose name
                    Action chooseNameAction = new Action("Choose Name", IAction.AS_PUSH_BUTTON){
                        @Override
                        public void run() {
-                           TaxonNameBase taxonName = NameSelectionDialog.select(getShell(), getConversationHolder(), null);
+                           TaxonNameBase taxonName = NameSelectionDialog.select(getShell(), getConversationHolder(), getEntity());
                            if(taxonName!=null){
                                if(taxonName.isInstanceOf(NonViralName.class)){
                                    CdmStore.getService(ITaxonNodeService.class).list(TaxonNode.class, null, null, null, null);
index ce0fc596f2986a86ecd81ca5ad1ab0e7c1308619..3ca63239923cf3c0b200e05b0180941d87a0cd14 100644 (file)
@@ -15,6 +15,7 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.NamedAreaSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -59,7 +60,7 @@ public class CollectingAreasDetailSection extends AbstractEntityCollectionSectio
        /** {@inheritDoc} */
        @Override
        public NamedArea createNewElement() {
-               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), getConversationHolder(), null);
+               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), getConversationHolder(), null, FieldUnit.class.getCanonicalName());
 
                return selection;
        }
index 8ce8454a5ffa5b33eae62cc7912b55da4255d4af..4c159d941640e14b0b0603988475f06172a42932 100644 (file)
@@ -59,7 +59,7 @@ public class GeoScopeDetailSection extends AbstractEntityCollectionSection<Class
        /** {@inheritDoc} */
        @Override
        public NamedArea createNewElement() {
-               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), getConversationHolder(), null);
+               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), getConversationHolder(), null, Classification.class.getCanonicalName());
 
                return selection;
        }
index 2c5cdc6b92acc1241bd1bac5ce5ce84a3c7263a7..f4858f2a2d15a0100af6bea77b3dffd4e60a3d85 100644 (file)
@@ -42,7 +42,7 @@ public class GeoScopePolyKeyDetailSection extends AbstractEntityCollectionSectio
        /** {@inheritDoc} */
        @Override
        public NamedArea createNewElement() {
-               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), getConversationHolder(), null);
+               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), getConversationHolder(), null, PolytomousKey.class.getCanonicalName());
 
                return selection;
        }
index 697565e07800dcf182fc2e883cfb2aa549dbfd88..994e326d6d3f18b1bf89d7e2375d80bfff4cadf8 100644 (file)
@@ -12,31 +12,26 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.association;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Set;
-import java.util.UUID;
 
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IParameter;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
@@ -47,6 +42,7 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.view.CdmViewerChooser;
 
 /**
  * @author pplitzner
@@ -62,73 +58,98 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
     /** {@inheritDoc} */
     @Override
     protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
-
-        //TODO add context menu for deleting associations
-
         Collection<TaxonBase<?>> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listIndividualsAssociationTaxa(entity.innerDerivedUnit(), null, null, null, null);
         Collection<SpecimenTypeDesignation> typeDesignations = CdmStore.getService(IOccurrenceService.class).listTypeDesignations(entity.innerDerivedUnit(), null, null, null, null);
         Collection<DeterminationEvent> determinationEvents = CdmStore.getService(IOccurrenceService.class).listDeterminationEvents(entity.innerDerivedUnit(), null, null, null, null);
 
+        Collection<CdmBase> associations = new ArrayList<>();
+        associations.addAll(associatedTaxa);
+        associations.addAll(typeDesignations);
+        associations.addAll(determinationEvents);
+
+        TableWrapLayout layout = (TableWrapLayout) getLayoutComposite().getLayout();
+        layout.bottomMargin = 0;
+        layout.topMargin = 0;
+
         if(associatedTaxa.isEmpty() && typeDesignations.isEmpty() && determinationEvents.isEmpty()){
             Label label = formFactory.createLabel(getLayoutComposite(), "No associations");
             label.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             return;
         }
-        if(!associatedTaxa.isEmpty()){
-            TableViewer viewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
-            viewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-            viewer.setContentProvider(new ArrayContentProvider());
-            viewer.setLabelProvider(new LabelProvider(){
+        for (CdmBase cdmBase : associations) {
+            final StyledText styledTextWidget = new StyledText(getLayoutComposite(), SWT.WRAP);
+            styledTextWidget.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            styledTextWidget.setText(getLabelText(cdmBase));
+            styledTextWidget.setBackground(getLayoutComposite().getBackground());
+            styledTextWidget.setEditable(false);
+            //Set caret null this will hide caret
+            styledTextWidget.setCaret(null);
+
+            //TODO add context menu for deleting associations
+            //context menu
+            Menu menu = new Menu(styledTextWidget);
+            //copy menu
+            MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
+            copyItem.setText("Copy");
+            copyItem.addSelectionListener(new SelectionListener() {
+
                 @Override
-                public String getText(Object element) {
-                    return "Associated with "+element.toString();
+                public void widgetSelected(SelectionEvent e) {
+                    Object[] data = new Object[]{styledTextWidget.getText()};
+                    Clipboard clipboard = new Clipboard(styledTextWidget.getDisplay());
+                    clipboard.setContents(data, new Transfer[]{TextTransfer.getInstance()});
                 }
-            });
-            viewer.setInput(associatedTaxa);
-            viewer.addDoubleClickListener(this);
-        }
-        if(!typeDesignations.isEmpty()){
-            TableViewer viewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
-            viewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-            viewer.setContentProvider(new ArrayContentProvider());
-            viewer.setLabelProvider(new LabelProvider(){
                 @Override
-                public String getText(Object element) {
-                    SpecimenTypeDesignation typeDesignation = (SpecimenTypeDesignation)element;
-                    String label = typeDesignation.getTypeStatus()!=null?typeDesignation.getTypeStatus().getLabel()+" of ":"Type of ";
-                    Set<TaxonNameBase> typifiedNames = typeDesignation.getTypifiedNames();
-                    for (TaxonNameBase taxonNameBase : typifiedNames) {
-                        label += taxonNameBase+", ";
-                    }
-                    if(label.endsWith(", ")){
-                        label = label.substring(0, label.length()-2);
-                    }
-                    return label;
+                public void widgetDefaultSelected(SelectionEvent e) {
                 }
             });
-            viewer.setInput(typeDesignations);
-            viewer.addDoubleClickListener(this);
-        }
-        if(!determinationEvents.isEmpty()){
-            TableViewer viewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
-            viewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-            viewer.setContentProvider(new ArrayContentProvider());
-            viewer.setLabelProvider(new LabelProvider(){
-                @Override
-                public String getText(Object element) {
-                    DeterminationEvent determinationEvent = (DeterminationEvent)element;
-                    if(determinationEvent.getTaxon()!=null){
-                        return "Determined as taxon "+determinationEvent.getTaxon();
-                    }
-                    if(determinationEvent.getTaxonName()!=null){
-                        return "Determined as name "+determinationEvent.getTaxonName();
-                    }
-                    return element.toString();
-                }
+            //"Open in..." menu
+            MenuItem openInItem = new MenuItem(menu, SWT.PUSH);
+            openInItem.setText("Open");
+            if(cdmBase.isInstanceOf(SpecimenTypeDesignation.class)){
+               openInItem.setData(HibernateProxyHelper.deproxy(cdmBase, SpecimenTypeDesignation.class));
+            }
+            openInItem.setData(cdmBase);
+            openInItem.addSelectionListener(new SelectionListener() {
+               
+               @Override
+               public void widgetSelected(SelectionEvent e) {
+                       new CdmViewerChooser(TaxonAssociationDetailElement.this.getLayoutComposite().getShell()).chooseViewer(e.widget.getData());
+               }
+               @Override
+               public void widgetDefaultSelected(SelectionEvent e) {
+               }
             });
-            viewer.setInput(determinationEvents);
-            viewer.addDoubleClickListener(this);
+            styledTextWidget.setMenu(menu);
+        }
+    }
+
+    private String getLabelText(Object element) {
+        if(element instanceof TaxonBase){
+            return "Associated with "+element.toString();
+        }
+        else if(element instanceof DeterminationEvent){
+            DeterminationEvent determinationEvent = (DeterminationEvent)element;
+            if(determinationEvent.getTaxon()!=null){
+                return "Determined as taxon "+determinationEvent.getTaxon();
+            }
+            if(determinationEvent.getTaxonName()!=null){
+                return "Determined as name "+determinationEvent.getTaxonName();
+            }
+        }
+        else if(element instanceof SpecimenTypeDesignation){
+            SpecimenTypeDesignation typeDesignation = (SpecimenTypeDesignation)element;
+            String label = typeDesignation.getTypeStatus()!=null?typeDesignation.getTypeStatus().getLabel()+" of ":"Type of ";
+            Set<TaxonNameBase> typifiedNames = typeDesignation.getTypifiedNames();
+            for (TaxonNameBase taxonNameBase : typifiedNames) {
+                label += taxonNameBase+", ";
+            }
+            if(label.endsWith(", ")){
+                label = label.substring(0, label.length()-2);
+            }
+            return label;
         }
+        return "";
     }
 
     /** {@inheritDoc} */
@@ -141,59 +162,25 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
     public void doubleClick(DoubleClickEvent event) {
         if(event.getSelection() instanceof IStructuredSelection){
             Object firstElement = ((IStructuredSelection) event.getSelection()).getFirstElement();
-            UUID taxonToOpenUuid = null;
-            if(firstElement instanceof TaxonBase<?>){
-                taxonToOpenUuid = ((TaxonBase<?>)firstElement).getUuid();
-            }
-            else if(firstElement instanceof SpecimenTypeDesignation){
-                //TODO how to open an editor for all typed names?
+            if(firstElement instanceof SpecimenTypeDesignation){
+               SpecimenTypeDesignation typeDesignation = (SpecimenTypeDesignation)firstElement;
+               Set<TaxonNameBase> typifiedNames = typeDesignation.getTypifiedNames();
+               if(typifiedNames.size()==1){
+                       firstElement = typifiedNames.iterator().next();
+               }
+               if(typifiedNames.size()==0 || typifiedNames.size()>=2){
+                       MessagingUtils.informationDialog("Could not open name", "Type designation has either 0 or more than 1 names associated");
+               }
             }
             else if(firstElement instanceof DeterminationEvent){
                 if(((DeterminationEvent) firstElement).getTaxon()!=null){
-                    taxonToOpenUuid = ((DeterminationEvent) firstElement).getTaxon().getUuid();
+                    firstElement = ((DeterminationEvent) firstElement).getTaxon();
                 }
                 else if(((DeterminationEvent) firstElement).getTaxonName()!=null){
-                    //TODO how to open editor for taxon name
-                }
-            }
-            if(taxonToOpenUuid!=null){
-                String commandId = "eu.etaxonomy.taxeditor.editor.openTaxonEditor";
-
-
-                ArrayList parameters = new ArrayList();
-                IParameter iparam = null;
-
-                //get the command from plugin.xml
-                IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-                ICommandService cmdService = (ICommandService)window.getService(ICommandService.class);
-                Command cmd = cmdService.getCommand(commandId);
-
-                //get the parameter
-                try {
-                    iparam = cmd.getParameter("eu.etaxonomy.taxeditor.editor.taxonParameter");
-                } catch (NotDefinedException e1) {
-                    MessagingUtils.error(this.getClass(), "Command not defined", e1);
-                }
-                Parameterization params = new Parameterization(iparam, taxonToOpenUuid.toString());
-                parameters.add(params);
-
-                //build the parameterized command
-                ParameterizedCommand pc = new ParameterizedCommand(cmd, (Parameterization[]) parameters.toArray(new Parameterization[parameters.size()]));
-
-                //execute the command
-                IHandlerService handlerService = (IHandlerService)window.getService(IHandlerService.class);
-                try {
-                    handlerService.executeCommand(pc, null);
-                } catch (ExecutionException e) {
-                    MessagingUtils.error(TaxonAssociationDetailElement.class, e);
-                } catch (NotDefinedException e) {
-                    MessagingUtils.error(TaxonAssociationDetailElement.class, e);
-                } catch (NotEnabledException e) {
-                    MessagingUtils.error(TaxonAssociationDetailElement.class, e);
-                } catch (NotHandledException e) {
-                    MessagingUtils.error(TaxonAssociationDetailElement.class, e);
+                       firstElement = ((DeterminationEvent) firstElement).getTaxonName();
                 }
             }
+            new CdmViewerChooser(event.getViewer().getControl().getShell()).chooseViewer(firstElement);
         }
     }
 }
index e959b85f9b9c46acde471218161876bc66e90e9f..7c50960d8c37d7106c6864ba9a0a0e1b6e6ad476 100644 (file)
@@ -13,12 +13,12 @@ import java.util.Collection;
 import java.util.Collections;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IMediaService;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
-import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -71,6 +71,14 @@ public class SequenceContigFileCollectionDetailSection extends AbstractEntityCol
     public void addElement(Media element) {
         if(getEntity().getContigFile()==null){
             getEntity().setContigFile(element);
+                       /*
+                        * merge to avoid duplicate key exception
+                        * the exception seems to be caused by the two links to the Media object: 
+                        *  - Sequence->contigFile (used to be not in the cache after saving)
+                        *  - MediaRepresentationPart->media
+                        *  Invoking merge() solves this problem
+                        */
+            CdmStore.getService(IMediaService.class).merge(element);
         }
     }
 
index e78980638e970fb9f457619b2a3e737ea4eb3030..5f887ef261f4aca3955a4223a942ff26b9391926 100644 (file)
@@ -13,8 +13,10 @@ import java.util.Collection;
 import java.util.Collections;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IMediaService;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
@@ -69,6 +71,14 @@ public class SingleReadPherogramCollectionDetailSection extends AbstractEntityCo
     public void addElement(Media element) {
         if(getEntity().getPherogram()==null){
             getEntity().setPherogram(element);
+                       /*
+                        * merge to avoid duplicate key exception
+                        * the exception seems to be caused by the two links to the Media object: 
+                        *  - SingleRead->pherogram (used to be not in the cache after saving)
+                        *  - MediaRepresentationPart->media
+                        *  Invoking merge() solves this problem
+                        */
+            CdmStore.getService(IMediaService.class).merge(element);
         }
     }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/AbstractIdentifierSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/AbstractIdentifierSection.java
new file mode 100644 (file)
index 0000000..6ac00ae
--- /dev/null
@@ -0,0 +1,34 @@
+package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+
+public abstract class AbstractIdentifierSection<T> extends AbstractEntityCollectionSection<T, Identifier> {
+
+       public AbstractIdentifierSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
+               super(formFactory, conversation, parentElement, "Identifiers", style);
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public Identifier createNewElement() {
+               return Identifier.NewInstance(null, null);
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public String getEmptyString() {
+               return "No identifiers yet.";
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       protected String getTooltipString() {
+               return "Add an identifier";
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/DerivedUnitFacadeIdentifierSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/DerivedUnitFacadeIdentifierSection.java
new file mode 100644 (file)
index 0000000..9d58748
--- /dev/null
@@ -0,0 +1,52 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier;
+
+import java.util.Collection;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+
+/**
+ * 
+ * @author pplitzner
+ *
+ */
+public class DerivedUnitFacadeIdentifierSection extends AbstractIdentifierSection<DerivedUnitFacade> {
+
+
+       public DerivedUnitFacadeIdentifierSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       int style) {
+               super(formFactory, conversation, parentElement, style);
+       }
+
+       @Override
+       public Collection<Identifier> getCollection(DerivedUnitFacade entity) {
+               return entity.getIdentifiers();
+       }
+
+
+       @Override
+       public void addElement(Identifier element) {
+               getEntity().addIdentifier(element);
+       }
+
+
+       @Override
+       public void removeElement(Identifier element) {
+               getEntity().removeIdentifier(element);
+       }
+
+}
@@ -8,7 +8,7 @@
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
 
-package eu.etaxonomy.taxeditor.ui.section.identifier;
+package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier;
 
 import org.eclipse.swt.events.SelectionListener;
 
@@ -23,51 +23,22 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
- * <p>
- * CollectionDetailElement class.
- * </p>
  *
- * @author n.hoffmann
- * @created Oct 13, 2010
- * @version 1.0
+ * @author pplitzner
+ *
  */
-public class IdentifierDetailElement extends AbstractEntityCollectionElement<Identifier> {
+public class IdentifierElement extends AbstractEntityCollectionElement<Identifier> {
 
        private TextWithLabelElement textIdentifier;
 
        private TermComboElement<DefinedTerm> comboIdentifierType;
 
-       /**
-     * <p>
-     * Constructor for CollectingAreasDetailElement.
-     * </p>
-     *
-     * @param formFactory
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-     *            object.
-     * @param section
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-     *            object.
-     * @param entity
-     *            a {@link eu.etaxonomy.cdm.model.location.NamedArea} object.
-     * @param removeListener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     * @param style
-     *            a int.
-     */
-    public IdentifierDetailElement(CdmFormFactory formFactory,
+    public IdentifierElement(CdmFormFactory formFactory,
             AbstractFormSection section, Identifier entity,
             SelectionListener removeListener, int style) {
         super(formFactory, section, entity, removeListener, null, style);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#setEntity
-     * (java.lang.Object)
-     */
     /** {@inheritDoc} */
     @Override
     public void setEntity(Identifier entity) {
@@ -76,29 +47,13 @@ public class IdentifierDetailElement extends AbstractEntityCollectionElement<Ide
         comboIdentifierType.setSelection(entity.getType());
     }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-        * (eu.etaxonomy.taxeditor.forms.ICdmFormElement,
-        * eu.etaxonomy.cdm.model.common.IAnnotatableEntity, int)
-        */
        /** {@inheritDoc} */
        @Override
     public void createControls(ICdmFormElement formElement, int style) {
+           comboIdentifierType = formFactory.createDefinedTermComboElement(TermType.IdentifierType, formElement, "Type", null, style);
                textIdentifier = formFactory.createTextWithLabelElement(formElement, "Identifier", null, style);
-               comboIdentifierType = formFactory.createDefinedTermComboElement(TermType.IdentifierType, formElement, "Type", null, style);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-        * .lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == textIdentifier) {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierSection.java
new file mode 100644 (file)
index 0000000..5750a1f
--- /dev/null
@@ -0,0 +1,49 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier;
+
+import java.util.Collection;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+
+/**
+ * 
+ * @author pplitzner
+ *
+ */
+public class IdentifierSection extends AbstractIdentifierSection<IdentifiableEntity> {
+
+       public IdentifierSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       int style) {
+               super(formFactory, conversation, parentElement, style);
+       }
+
+       @Override
+       public Collection<Identifier> getCollection(IdentifiableEntity entity) {
+               return entity.getIdentifiers();
+       }
+
+       @Override
+       public void addElement(Identifier element) {
+               getEntity().addIdentifier(element);
+       }
+
+       @Override
+       public void removeElement(Identifier element) {
+               getEntity().removeIdentifier(element);
+       }
+
+}
index 8bed51e699fa821c8b0a492b1e9c445a886c3318..1ef60da46a69521d55686413038a650f5c5de87e 100644 (file)
@@ -95,7 +95,7 @@ public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElem
                        text_appendedPhrase = formFactory.createTextWithLabelElement(
                                        formElement, "Appended Phrase", entity.getAppendedPhrase(),
                                        SWT.WRAP);
-                       //formFactory.createTextWithLabelElement(formElement, "Appended Phrase", nonViralName.getAppendedPhrase(), style);
+
                }
 
                selection_secundum = formFactory.createSelectionElement(Reference.class,
@@ -104,7 +104,7 @@ public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElem
                                style);
 
                text_secundum_microreference = formFactory.createTextWithLabelElement(
-                formElement, "Micro Reference",
+                formElement, "Detail",
                entity.getSecMicroReference(),null,
                 SWT.WRAP);
 
index a871d1e3b0a13ad667d7b2c397f6564e1f588aa3..eaf1d4f297e5e4e23460c29022a055db9aa1437d 100644 (file)
@@ -1,23 +1,23 @@
 // $Id$\r
 /**\r
 * Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
 package eu.etaxonomy.taxeditor.ui.section.vocabulary;\r
 \r
-import eu.etaxonomy.cdm.model.common.Language;\r
-import eu.etaxonomy.cdm.model.common.Representation;\r
+import org.eclipse.swt.widgets.Button;\r
+\r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
-import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;\r
+import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;\r
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 \r
@@ -28,11 +28,17 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  */\r
 public abstract class AbstractTermBaseDetailElement<T extends TermBase> extends AbstractCdmDetailElement<T> {\r
 \r
-       protected TextWithLabelElement text_label;\r
-       protected TextWithLabelElement text_description;\r
+    //protected TextWithLabelElement text_label;\r
+       //protected TextWithLabelElement text_description;\r
        protected UriWithLabelElement uri_uri;\r
-       protected TextWithLabelElement text_abbreviatedLabel;\r
-       \r
+       //protected TextWithLabelElement text_abbreviatedLabel;\r
+       //protected TermComboElement<Language> combo_language;\r
+       //private TermBase term;\r
+       //protected Representation representation;\r
+       protected RepresentationElement element_Representation;\r
+       private Button button;\r
+\r
+\r
        /**\r
         * @param formFactory\r
         * @param formElement\r
@@ -41,45 +47,29 @@ public abstract class AbstractTermBaseDetailElement<T extends TermBase> extends
                        ICdmFormElement formElement) {\r
                super(formFactory, formElement);\r
        }\r
-       \r
+\r
        @Override\r
        protected void createControls(ICdmFormElement formElement,\r
                        T entity, int style) {\r
-               \r
-               Representation representation = getEntity().getPreferredRepresentation(CdmStore.getDefaultLanguage());\r
-               \r
-               text_label = formFactory.createTextWithLabelElement(formElement, "Label", representation.getLabel(), style);\r
-               text_abbreviatedLabel = formFactory.createTextWithLabelElement(formElement, "Abbrev. Label", representation.getAbbreviatedLabel(), style);\r
-               text_description = formFactory.createMultiLineTextWithLabel(formElement, "Description", 100, style);\r
-               text_description.setText(representation.getDescription());\r
+\r
+               element_Representation = formFactory.createTranslatableRepresentationElement(formElement,  getEntity().getPreferredRepresentation(CdmStore.getDefaultLanguage()),getEntity(), 100, style, true);\r
+\r
                uri_uri = formFactory.createUriWithLabelElement(formElement, "URI", getEntity().getUri(), style);\r
-               \r
+\r
        }\r
 \r
-       @Override\r
+\r
+\r
+    @Override\r
        public void setEntity(T entity) {\r
                super.setEntity(entity);\r
                setEnabled(TermBasePropertyTester.isModifiable(entity));\r
        }\r
-       \r
-       protected void handleRepresentation(Object eventSource){\r
-               T entity = getEntity();\r
-               Representation representation = entity.getRepresentation(CdmStore.getDefaultLanguage());\r
-               \r
-               if (representation == null){\r
-                       return;\r
-               }\r
-               \r
-               if (eventSource == text_label){\r
-                       representation.setLabel(text_label.getText());\r
-                       entity.setLabel(text_label.getText());\r
-               }else if (eventSource == text_abbreviatedLabel){\r
-                       representation.setAbbreviatedLabel(text_abbreviatedLabel.getText());\r
-               }else if (eventSource == text_description){\r
-                       representation.setText(text_description.getText());\r
-               }\r
-       }\r
+\r
+\r
 \r
        public abstract TermVocabulary getVocabulary();\r
-               \r
+\r
+\r
+\r
 }\r
index 90e1584048a03f04fd3e0bce41303e777f5f9de7..0b657bab6cd31086a8ddebfd014fd16e4e016f70 100644 (file)
@@ -50,7 +50,7 @@ public class DefinedTermDetailElement<T extends DefinedTermBase> extends Abstrac
         */\r
        @Override\r
        public void handleEvent(Object eventSource) {\r
-               handleRepresentation(eventSource);\r
+               //handleRepresentation(eventSource);\r
                if(eventSource==textIdInVocabulary){\r
                        if (StringUtils.isBlank(textIdInVocabulary.getText())){\r
                                getEntity().setIdInVocabulary(null);\r
@@ -63,7 +63,7 @@ public class DefinedTermDetailElement<T extends DefinedTermBase> extends Abstrac
             if (StringUtils.isBlank(textSymbol.getText())){\r
                 getEntity().setSymbol(null);\r
             }else{\r
-                getEntity().setSymbol(textIdInVocabulary.getText());\r
+                getEntity().setSymbol(textSymbol.getText());\r
             }\r
 \r
         }\r
index 29e251f6a510cd044dd69858b72b3f50106faaf1..3f19c7543bef9e088a0742b2c7707d58d7cc7c9c 100644 (file)
@@ -44,13 +44,13 @@ public class DefinedTermDetailSection<T extends DefinedTermBase> extends Abstrac
         */\r
        @Override\r
        public String getHeading() {\r
-               String result = null;\r
+               /*String result = null;\r
                result = getEntity() != null ? getEntity().getLabel() : "";\r
                if (result == null){\r
                        result = getEntity().getTitleCache();\r
-               } \r
+               } */\r
                \r
-               return "Defined Term: "+ result;\r
+               return "Defined Term ";//+ result;\r
        }\r
 \r
        //FIXME clean up create element methods\r
index f2621ebd217500019e58521035fefab3f9856c2c..357081b787bd08c14e63289b7d1afffbf5aebafb 100644 (file)
@@ -9,7 +9,6 @@
 */\r
 package eu.etaxonomy.taxeditor.ui.section.vocabulary;\r
 \r
-import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.TermType;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
@@ -60,15 +59,13 @@ public class NamedAreaDetailElement extends DefinedTermDetailElement<NamedArea>
 \r
                if (eventSource == textIdInVocabulary){\r
                        getEntity().setIdInVocabulary(textIdInVocabulary.getText());\r
-               } else if (eventSource == text_label) {\r
-                       getEntity().setLabel(text_label.getText());\r
+               } else if (eventSource == element_Representation) {\r
+                       getEntity().setLabel(element_Representation.getSelectedRepresentation().getLabel(),  element_Representation.getSelectedRepresentation().getLanguage());\r
+                       getEntity().getRepresentation(element_Representation.getSelectedRepresentation().getLanguage()).setAbbreviatedLabel(element_Representation.getSelectedRepresentation().getAbbreviatedLabel());\r
+                       getEntity().getRepresentation(element_Representation.getSelectedRepresentation().getLanguage()).setText(element_Representation.getSelectedRepresentation().getDescription());\r
                        getEntity().setTitleCache(null);\r
-               } else if (eventSource == text_description) {\r
-                       getEntity().getRepresentation(Language.getDefaultLanguage()).setText(text_description.getText());\r
                } else if (eventSource == uri_uri) {\r
                        getEntity().setUri(uri_uri.parseText());\r
-               } else if (eventSource == text_abbreviatedLabel) {\r
-                       getEntity().getRepresentation(Language.getDefaultLanguage()).setAbbreviatedLabel(text_abbreviatedLabel.getText());\r
                } else if (eventSource == timePeriod_validPeriod) {\r
                        getEntity().setValidPeriod(timePeriod_validPeriod.getTimePeriod());\r
                } else if (eventSource == combo_namedAreaType) {\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermTranslationWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermTranslationWizard.java
new file mode 100644 (file)
index 0000000..37d7385
--- /dev/null
@@ -0,0 +1,66 @@
+// $Id$
+/**
+* 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.ui.section.vocabulary;
+
+import org.eclipse.jface.wizard.Wizard;
+
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.common.TermBase;
+import eu.etaxonomy.taxeditor.ui.translation.TermTranslationWizardPage;
+
+/**
+ * @author k.luther
+ * @date 22.06.2016
+ *
+ */
+public class TermTranslationWizard extends Wizard {
+    private TermTranslationWizardPage page;
+
+    private final TermBase term;
+
+    /**
+     * <p>Constructor for TranslationWizard.</p>
+     *
+     * @param multilanguageText a {@link java.util.Map} object.
+     */
+    public TermTranslationWizard(TermBase term) {
+        setWindowTitle("Translation Editor");
+        this.term = term;
+        setNeedsProgressMonitor(true);
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.wizard.Wizard#addPages()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void addPages() {
+        page = new TermTranslationWizardPage(term);
+        addPage(page);
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.wizard.Wizard#performFinish()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public boolean performFinish() {
+        Representation representation = page.getTargetRepresentation();
+        
+        if (representation.getLanguage() == null){
+               return false;
+        }
+        if (!representation.getText().equals("") || !representation.getLabel().equals("") || !representation.getAbbreviatedLabel().equals("")) {
+            term.addRepresentation(representation);
+        }
+
+        return true;
+    }
+}
index 281b383e86be43be5d765258aba8012ed6cda478..72152d2b022f80e074ee22f0b0fb025475aebc80 100644 (file)
@@ -48,7 +48,7 @@ public class TermVocabularyDetailElement extends AbstractTermBaseDetailElement<T
        @Override\r
        public void handleEvent(Object eventSource) {\r
 \r
-               handleRepresentation(eventSource);\r
+               //handleRepresentation(eventSource);\r
 \r
                if (eventSource == uri_uri) {\r
                        getEntity().setUri(uri_uri.parseText());\r
index 5e76e56c6c80f7441b4e98e71e1a5341a838ebfd..279f2faafd85508297201a0f780576f4a2e9c857 100644 (file)
@@ -75,7 +75,7 @@ public class EditFromSelectionWizard extends Wizard implements
        private CdmBase rootElement;
 
        public EditFromSelectionWizard(EntitySelectionElement selectionElement) {
-        if (CdmStore.isActive() && CdmStore.getCurrentSessionManager().isRemoting()) {
+        if (CdmStore.isActive()) {
             previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
             cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
             cdmEntitySession.bind();
@@ -103,10 +103,13 @@ public class EditFromSelectionWizard extends Wizard implements
                        addPage(new ReferenceWizardPage(formFactory,
                                        selectionElement.getConversationHolder(),
                                        (HibernateProxyHelper.deproxy(rootElement, Reference.class))));
-               } else if (rootElement.isInstanceOf(Team.class)) {
+               } else if (rootElement.isInstanceOf(Team.class) && selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>) {
                        addPage(new TeamWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class)));
-               } else if (rootElement.isInstanceOf(Person.class)) {
+                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), true));
+               } else if (rootElement.isInstanceOf(Team.class) && !(selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>)) {
+            addPage(new TeamWizardPage(formFactory,
+                    selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), false));
+        } else if (rootElement.isInstanceOf(Person.class)) {
                        addPage(new PersonWizardPage(formFactory,
                                        selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Person.class)));
                } else if (rootElement.isInstanceOf(NonViralName.class)) {
index b04c73d4d50137a543d024706ac06d20fa39b280..c86f2c08eeaae874a24b473502aad518de747dec 100644 (file)
@@ -8,7 +8,7 @@ import java.util.Observable;
 import java.util.Observer;
 
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.MessageDialog;
+
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TermTranslationWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TermTranslationWizardPage.java
new file mode 100755 (executable)
index 0000000..6b6b36b
--- /dev/null
@@ -0,0 +1,173 @@
+// $Id$
+/**
+* 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.ui.translation;
+
+/**
+ * @author k.luther
+ * @date 22.06.2016
+ *
+ */
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.common.TermBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
+import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
+import eu.etaxonomy.taxeditor.ui.element.RootElement;
+
+public class TermTranslationWizardPage extends WizardPage implements PropertyChangeListener{
+
+
+        private static int TEXT_HEIGHT = 200;
+
+        private final TermBase term;
+
+        MultilanguageTextElement source;
+
+        private final CdmFormFactory formFactory;
+
+        private RepresentationElement text_source;
+
+        private RepresentationElement text_target;
+
+        /**
+         * <p>Constructor for TranslationWizardPage.</p>
+         *
+         * @param multilanguageText a {@link java.util.Map} object.
+         */
+        public TermTranslationWizardPage(TermBase term) {
+            super("TranslationWizardPage");
+            //Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
+            setTitle("Add or edit translations.");
+            this.term = term;
+            formFactory = new CdmFormFactory(Display.getCurrent());
+            setPageComplete(false);
+        }
+
+        /* (non-Javadoc)
+         * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+         */
+        /** {@inheritDoc} */
+        @Override
+        public void createControl(Composite parent) {
+            Composite control = formFactory.createComposite(parent);
+//          control.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GREEN));
+            control.setLayout(LayoutConstants.LAYOUT(2, false));
+
+            Composite leftContainer = formFactory.createComposite(control);
+            leftContainer.setLayoutData(LayoutConstants.FILL(1, 4));
+            leftContainer.setLayout(LayoutConstants.LAYOUT(2, false));
+//          leftContainer.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
+            RootElement leftRoot = new RootElement(formFactory, leftContainer);
+
+            Composite rightContainer = formFactory.createComposite(control);
+            rightContainer.setLayoutData(LayoutConstants.FILL(1, 4));
+            rightContainer.setLayout(LayoutConstants.LAYOUT(2, false));
+//          rightContainer.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+            RootElement rightRoot = new RootElement(formFactory, rightContainer);
+
+            createLeftControls(leftRoot);
+            createRightControls(rightRoot);
+
+
+            // initialize with default language
+            setSource(CdmStore.getDefaultLanguage());
+
+
+            setControl(control);
+            setPageComplete(true);
+        }
+
+        /**
+         * @param defaultLanguage
+         */
+        private void setSource(Language language) {
+
+           Representation preferredRepresentation =term.getPreferredRepresentation(language);
+
+            if(preferredRepresentation != null){
+               text_source.setSelectedRepresentation(preferredRepresentation);
+            }
+        }
+
+
+        /**
+         *
+         * @param element
+         */
+        private void createLeftControls(ICdmFormElement element){
+            Representation preferredRepresentation= term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
+
+            text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term,  TEXT_HEIGHT,  SWT.NULL, true);
+            text_source.setTerm(term, true);
+
+        }
+
+        /**
+         *
+         * @param element
+         */
+        private void createRightControls(ICdmFormElement element){
+            text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
+            
+        }
+
+
+
+
+        /* (non-Javadoc)
+         * @see org.eclipse.jface.dialogs.DialogPage#dispose()
+         */
+        /** {@inheritDoc} */
+        @Override
+        public void dispose() {
+            super.dispose();
+        }
+
+        /**
+         * @return
+         *
+         */
+        public Representation getTargetRepresentation() {
+            return text_target.getSelectedRepresentation();
+        }
+
+        /* (non-Javadoc)
+         * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
+         */
+        @Override
+        public void propertyChange(PropertyChangeEvent evt) {
+            if (evt.getSource() == text_target){
+                if (!StringUtils.isBlank(text_target.getSelectedRepresentation().getAbbreviatedLabel()) ||
+                        !StringUtils.isBlank(text_target.getSelectedRepresentation().getLabel()) || !StringUtils.isBlank(text_target.getSelectedRepresentation().getText())){
+                    setPageComplete(true);
+                }
+            }
+
+        }
+
+
+
+
+}
index 93c48b11f0ac99906713b3646919d88271b2577e..18a51060efff80821065e55e6b9afbc035ac1d98 100644 (file)
@@ -59,6 +59,9 @@ public class TranslationWizard extends Wizard {
        public boolean performFinish() {
                LanguageString languageString = page.getTargetLanguageString();
                
+               if (languageString.getLanguage() == null){
+                       return false;
+               }
                if (!languageString.getText().equals("")) {
                        multilanguageText.put(languageString.getLanguage(), languageString);
                }
index e486e7f5214747645392aaa9eed950261663fa77..7036537c14f2380c7cbd12916efbb54034a0730c 100644 (file)
@@ -29,6 +29,7 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -98,10 +99,10 @@ public class TranslationWizardPage extends WizardPage{
                rightContainer.setLayout(LayoutConstants.LAYOUT(1, false));
 //             rightContainer.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
                RootElement rightRoot = new RootElement(formFactory, rightContainer);
-
+               
                createLeftControls(leftRoot);
                createRightControls(rightRoot);
-
+               
                // initialize with default language
                setSource(CdmStore.getDefaultLanguage());
 
@@ -132,7 +133,7 @@ public class TranslationWizardPage extends WizardPage{
        private void createLeftControls(ICdmFormElement element){
 
                combo_sourceLanguage = formFactory.createDefinedTermComboElement(TermType.Language, element, null, null, SWT.NULL);
-
+               
                combo_sourceLanguage.setTerms(getLanguages());
 
                combo_sourceLanguage.addSelectionListener(new SelectionAdapter() {
@@ -146,11 +147,13 @@ public class TranslationWizardPage extends WizardPage{
                });
 
                LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(multilanguageText, getLanguages());
-
+               if (preferredLanguageString == null){
+                       preferredLanguageString = LanguageString.NewInstance("", PreferencesUtil.getGlobalLanguage());
+               }
                text_source = formFactory.createLanguageStringWithLabelElement(element, null, preferredLanguageString, TEXT_HEIGHT, false, SWT.NULL);
 
 //             text_source.setEnabled(false);
-
+               
                text_source.setText(preferredLanguageString.getText());
        }
 
@@ -170,6 +173,7 @@ public class TranslationWizardPage extends WizardPage{
                                Language language = combo_targetLanguage.getSelection();
 
                                if (language == null){
+                                       setPageComplete(false);
                                        return;
                                }
 
index 7282445a85499925805aa44799d933674be9d701..2774f50189622d6792482f3531ca52f2e37972a3 100644 (file)
@@ -57,7 +57,7 @@ public class ApplicationUtil extends AbstractUtility {
      * @return
      */
     public static boolean isStable() {
-        return !getVersion().startsWith("[");
+        return !getVersion().startsWith(BETA_PREFIX);
     }
 
 
index 272d4711ee759e1213972d09d714050cee92dbbb..d1cef126d665a1d085788db71f32fe28535b235d 100644 (file)
@@ -21,7 +21,6 @@ import org.eclipse.ui.forms.widgets.ScrolledForm;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
@@ -29,8 +28,6 @@ import eu.etaxonomy.taxeditor.ui.element.RootElement;
 import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
 
 /**
- * <p>Abstract AbstractCdmDataViewer class.</p>
- *
  * @author n.hoffmann
  * @created Feb 9, 2010
  * @version 1.0
@@ -53,20 +50,11 @@ public abstract class AbstractCdmDataViewer extends Viewer implements IConversat
        private final AbstractCdmViewPart viewPart;
 
 
-       /**
-        * <p>Constructor for AbstractCdmDataViewer.</p>
-        *
-        * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
-        * @param viewPart a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart} object.
-        */
        public AbstractCdmDataViewer(Composite parent, AbstractCdmViewPart viewPart) {
                this.viewPart = viewPart;
 
                managedForm = new ManagedForm(parent){
 
-                       /* (non-Javadoc)
-                        * @see org.eclipse.ui.forms.ManagedForm#dirtyStateChanged()
-                        */
                        @Override
                        public void dirtyStateChanged() {
                                markViewPartDirty();
@@ -84,9 +72,6 @@ public abstract class AbstractCdmDataViewer extends Viewer implements IConversat
                rootElement = new RootElement(formFactory, body);
        }
 
-       /**
-        * <p>createFormFactory</p>
-        */
        protected void createFormFactory() {
                if(formFactory != null){
                        formFactory.dispose();
@@ -99,17 +84,10 @@ public abstract class AbstractCdmDataViewer extends Viewer implements IConversat
                viewPart.changed(input);
        }
 
-
-       /**
-        * @return
-        */
        protected AbstractCdmViewPart getViewPart() {
                return viewPart;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.Viewer#getControl()
-        */
        /** {@inheritDoc} */
        @Override
        public Control getControl() {
@@ -123,9 +101,6 @@ public abstract class AbstractCdmDataViewer extends Viewer implements IConversat
                return body;
        }
        
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.Viewer#setInput(java.lang.Object)
-        */
        /** {@inheritDoc} */
        @Override
        public void setInput(Object input) {
@@ -135,18 +110,12 @@ public abstract class AbstractCdmDataViewer extends Viewer implements IConversat
                refresh();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.Viewer#getInput()
-        */
        /** {@inheritDoc} */
        @Override
        public Object getInput() {
                return input;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.Viewer#refresh()
-        */
        /** {@inheritDoc} */
        @Override
        public void refresh() {
@@ -159,26 +128,15 @@ public abstract class AbstractCdmDataViewer extends Viewer implements IConversat
                managedForm.reflow(true);
        }
 
-
-       /**
-        * <p>layout</p>
-        */
        public void layout(){
                body.layout();
        }
 
-       /**
-        * <p>showParts</p>
-        */
        protected abstract void showParts();
 
-
-       /**
-        * <p>destroySections</p>
-        */
        protected void destroySections() {
                for (IFormPart formPart : managedForm.getParts()){
-                       removePart((CdmSectionPart) formPart);
+                       removePart((CdmSectionPart<?>) formPart);
                }
 
                managedForm.setInput(null);
@@ -195,10 +153,6 @@ public abstract class AbstractCdmDataViewer extends Viewer implements IConversat
                }
        }
 
-
-       /**
-        * <p>setFocus</p>
-        */
        public void setFocus(){
                // we have to set focus to a control of this viewer
                // otherwise, after opening a dialog from the details, the focus will not be
@@ -209,46 +163,24 @@ public abstract class AbstractCdmDataViewer extends Viewer implements IConversat
                }
        }
 
-       /**
-        * <p>reflow</p>
-        */
        public void reflow(){
                managedForm.reflow(true);
        }
 
-       /**
-        * <p>removePart</p>
-        *
-        * @param sectionPart a {@link eu.etaxonomy.taxeditor.view.detail.CdmSectionPart} object.
-        */
-       protected void removePart(CdmSectionPart sectionPart){
+       protected void removePart(CdmSectionPart<?> sectionPart){
                managedForm.removePart(sectionPart);
                formFactory.removePropertyChangeListener(sectionPart);
        }
 
-       /**
-        * <p>addPart</p>
-        *
-        * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
-        */
-       protected void addPart(AbstractFormSection section){
-               CdmSectionPart sectionPart = new CdmSectionPart(section);
+       protected void addPart(AbstractFormSection<?> section){
+               CdmSectionPart<?> sectionPart = new CdmSectionPart<>(section);
                managedForm.addPart(sectionPart);
                formFactory.addPropertyChangeListener(sectionPart);
        }
 
-       /**
-        * <p>getConversationHolder</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
        @Override
     public ConversationHolder getConversationHolder() {
                return viewPart.getConversationHolder();
        }
 
-       /** {@inheritDoc} */
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {}
-
 }
index 4367e2b835c2863bbe8ffcac66720b81c2c1657d..5ea7369b2cfd87b06d806e34fac30e70aebd987d 100644 (file)
@@ -96,6 +96,7 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
      * <p>showEmptyPage</p>
      */
     public void showEmptyPage(){
+       setPartName(createPartTitle(null));
         pageBook.showPage(emptySelectionLabel);
     }
 
@@ -113,6 +114,8 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
         if (getViewer().getControl()==null || getViewer().getControl().isDisposed()){
             return;
         }
+
+        setPartName(createPartTitle(element));
         getViewer().setInput(element);
         showViewer();
     }
@@ -222,4 +225,13 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
         // TODO Auto-generated method stub
         return null;
     }
+    
+       protected String createPartTitle(Object selectedObject){
+           if(selectedObject!=null){
+               return getViewName()+": "+selectedObject; //$NON-NLS-1$
+           }
+        return getViewName();
+       }
+       
+    protected abstract String getViewName();
 }
index 13591957a9a668dfe9d63e7c16aae24fe1843f9f..e8372443e30cf14f5b55ec533b9b06a1595aa681 100644 (file)
@@ -17,17 +17,14 @@ import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.actions.CompoundContributionItem;
 import org.eclipse.ui.handlers.IHandlerService;
 
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -46,35 +43,38 @@ public class CdmViewerContextMenu extends CompoundContributionItem {
                     @Override
                     public void fill(Menu menu, int index) {
                         final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-                        final ISelection selection = window.getActivePage().getSelection();
-                        if(selection instanceof IStructuredSelection){
-                            Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-                            Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
+                        IWorkbenchPage activePage = window.getActivePage();
+                        if(activePage!=null){
+                               final ISelection selection = activePage.getSelection();
+                               if(selection instanceof IStructuredSelection){
+                                       Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+                                       Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
 
-                            //check if only one or multiple viewers/commands are available
-                            if(enabledCommands.size()==1){
-                                Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
-                                final Command command = entry.getKey();
-                                String viewerName = entry.getValue();
+                                       //check if only one or multiple viewers/commands are available
+                                       if(enabledCommands.size()==1){
+                                               Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
+                                               final Command command = entry.getKey();
+                                               String viewerName = entry.getValue();
 
-                                MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
-                                addItem.setText(String.format(Messages.CdmViewerContextMenu_OPEN, viewerName));
-                                addItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
-                            }
-                            else if(enabledCommands.size()>1){
-                                MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
-                                addItem.setText(Messages.CdmViewerContextMenu_OPEN_IN);
-                                Menu addMenu = new Menu(menu);
-                                addItem.setMenu(addMenu);
-                                for(Entry<Command, String> entry:enabledCommands.entrySet()){
-                                    final Command command = entry.getKey();
-                                    String viewerName = entry.getValue();
+                                               MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
+                                               addItem.setText(String.format(Messages.CdmViewerContextMenu_OPEN, viewerName));
+                                               addItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
+                                       }
+                                       else if(enabledCommands.size()>1){
+                                               MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
+                                               addItem.setText(Messages.CdmViewerContextMenu_OPEN_IN);
+                                               Menu addMenu = new Menu(menu);
+                                               addItem.setMenu(addMenu);
+                                               for(Entry<Command, String> entry:enabledCommands.entrySet()){
+                                                       final Command command = entry.getKey();
+                                                       String viewerName = entry.getValue();
 
-                                    MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
-                                    menuItem.setText(viewerName);
-                                    menuItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
-                                }
-                            }
+                                                       MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
+                                                       menuItem.setText(viewerName);
+                                                       menuItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
+                                               }
+                                       }
+                               }
                         }
                     }
 
@@ -98,14 +98,7 @@ public class CdmViewerContextMenu extends CompoundContributionItem {
             Map<String, UUID> params = new HashMap<String, UUID>();
             //for generic UuidAndTitleCache objects try to load the object
             if (selectedObject instanceof UuidAndTitleCache){
-                UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)selectedObject;
-                Class type = uuidAndTitleCache.getType();
-                if(type == Taxon.class || type == Synonym.class){
-                    selectedObject = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
-                }
-                else if(SpecimenOrObservationBase.class.isAssignableFrom(type)){
-                    selectedObject = CdmStore.getService(IOccurrenceService.class).load(uuidAndTitleCache.getUuid());
-                }
+                selectedObject = CdmStore.getCommonService().find(CdmBase.class, ((UuidAndTitleCache)selectedObject).getUuid());
             }
             if(selectedObject instanceof ICdmBase){
                 params.put(command.getId()+".uuid", ((ICdmBase) selectedObject).getUuid()); //$NON-NLS-1$
@@ -121,9 +114,8 @@ public class CdmViewerContextMenu extends CompoundContributionItem {
             } catch (NotDefinedException nde) {
                 throw new RuntimeException("Could not find open command: " + command.getId()); //$NON-NLS-1$
             } catch (Exception exception) {
-                MessagingUtils.error(getClass(), "An exception occured while trying execute "+command.getId(), exception); //$NON-NLS-1$
+                MessagingUtils.error(getClass(), "An exception occured while trying to execute "+command.getId(), exception); //$NON-NLS-1$
             }
-            PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getSelection();
         }
     }
 
index 698f94233e6309f5ca1ac70eebfaaa8b31699df1..019f04b879e40df581988398d6b93f49dcdbde3b 100644 (file)
@@ -19,11 +19,6 @@ import org.eclipse.core.runtime.Platform;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.commands.ICommandService;
 
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -52,13 +47,7 @@ public class CdmViewerUtil {
             //for generic UuidAndTitleCache objects try to load the object
             if (input instanceof UuidAndTitleCache){
                 UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)input;
-                Class type = uuidAndTitleCache.getType();
-                if(type == Taxon.class || type == Synonym.class){
-                    input = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
-                }
-                else if(SpecimenOrObservationBase.class.isAssignableFrom(type)){
-                    input = CdmStore.getService(IOccurrenceService.class).load(uuidAndTitleCache.getUuid());
-                }
+                input = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
             }
 
 
@@ -74,7 +63,6 @@ public class CdmViewerUtil {
                         if(selectionClass.isAssignableFrom(input.getClass())){
                             ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
                             Command command = commandService.getCommand(commandId);
-                            //TODO: maybe pass the command directly instead of just the command id
                             if(command.isEnabled()){
                                 commandViewerNameMap.put(command, viewerName);
                             }
index 17b425154a014984a8497b7d0dc74230f97683bf..c746c5067ecb97bf16bcf16b15d1761ba860ea6c 100644 (file)
@@ -55,7 +55,7 @@ public class BioCaseEditorInput extends DataImportEditorInput<SpecimenOrObservat
             //FIXME move ABCD import to cdmlib -> this will also get rid of the transient services
             InputStream resultStream;
             resultStream = new BioCaseQueryServiceWrapper().query(query, endPoint);
-            Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(resultStream, null, false);
+            Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(endPoint, null, false);
            /* TransientCdmRepository repo =
                     new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
             configurator.setCdmAppController(repo);
old mode 100644 (file)
new mode 100755 (executable)
index 7bd1765..6662373
@@ -1,6 +1,8 @@
 package eu.etaxonomy.taxeditor.view.dataimport;
 
 import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.apache.http.client.ClientProtocolException;
 import org.apache.log4j.Logger;
@@ -89,7 +91,10 @@ public class DataImportEditorContextMenu extends CompoundContributionItem {
                                     public void handleEvent(Event event) {
                                         try{
                                             DataSetResponse response = new GbifQueryServiceWrapper().queryOriginalDataSet(gbifResponse);
-                                            final BioCaseEditorInput input = new BioCaseEditorInput(new OccurenceQuery(response.getUnitId()), response.getEndpoint());
+                                            Set<String[]> unitIds = new HashSet<String[]>();
+                                            String[] tripleId = {response.getUnitId()};
+                                            unitIds.add(tripleId);
+                                           /* final BioCaseEditorInput input = new BioCaseEditorInput(new OccurenceQuery(unitIds), response.getEndpoint());
                                            // EditorUtil.open(input);
                                             Job queryJob = new Job("Querying for original record...") {
 
@@ -99,7 +104,7 @@ public class DataImportEditorContextMenu extends CompoundContributionItem {
                                                     return Status.OK_STATUS;
                                                 }
                                             };
-                                            queryJob.schedule();
+                                            queryJob.schedule();*/
                                         } catch (ClientProtocolException e) {
                                             logger.error("Query for single record failed.", e);
                                         } catch (IOException e) {
index e7746b639730904a2ff1520552018a01acda352f..5c7a5d71b131a16b9180c94556aa6655ec51f0ae 100644 (file)
@@ -18,23 +18,33 @@ import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.jface.viewers.CheckboxTableViewer;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.part.ViewPart;
+import org.eclipse.wb.swt.ResourceManager;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
+import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
 
 /**
  * View which shows a list of "data" that can be imported into the CDM
@@ -45,7 +55,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 
 public abstract class DataImportView<T> extends ViewPart implements IPartContentHasFactualData,
-IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IContextListener{
+IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IContextListener, Listener{
 
     protected final Logger logger = Logger.getLogger(DataImportView.class);
 
@@ -56,6 +66,24 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
     private static ConversationHolder conversationHolder;
 
     private SaveImportedSpecimenAction saveImportedSpecimenAction;
+    
+    private Text textClassification;
+    private Classification classification;
+    /**
+        * @return the classification
+        */
+       public Classification getClassification() {
+               return classification;
+       }
+
+       /**
+        * @param classification the classification to set
+        */
+       public void setClassification(Classification classification) {
+               this.classification = classification;
+       }
+       private Button btnBrowseClassification;
+    private Button btnClear;
 
     private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
 
@@ -77,11 +105,29 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
      */
     @Override
     public void createPartControl(Composite parent) {
+       final Composite composite = new Composite(parent, SWT.NULL);
+
+               GridLayout gridLayout = new GridLayout();
+               gridLayout.numColumns = 4;
+               composite.setLayout(gridLayout);
+       Label label = new Label(composite, SWT.NONE);
+               label.setText("Classification");
+               textClassification = new Text(composite, SWT.NONE);
+               textClassification.setEnabled(false);
+               textClassification.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+               btnBrowseClassification = new Button(composite, SWT.NONE);
+               btnBrowseClassification.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/open.gif"));
+               btnBrowseClassification.addListener(SWT.Selection, this);
+               btnClear = new Button(composite, SWT.NONE);
+               btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
+               btnClear.addListener(SWT.Selection, this);
 
         CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER | SWT.FULL_SELECTION);
         table = checkboxTableViewer.getTable();
         toolkit.paintBordersFor(table);
 
+        
+        
         createActions();
         initializeToolBar();
         initializeMenu();
@@ -145,7 +191,7 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
     }
 
     protected void refresh(){
-        getTable().removeAll();
+       // getTable().removeAll();
         for(T item:results){
             TableItem tableItem = new TableItem(getTable(), SWT.NONE);
             tableItem.setText(getTextForTableItem(item));
@@ -234,5 +280,17 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
         }
         return conversationHolder;
     }
-
+    @Override
+       public void handleEvent(Event event) {
+           if(event.widget==btnBrowseClassification){
+               classification = SelectionDialogFactory.getSelectionFromDialog(Classification.class, getSite().getShell(), null, null);
+               if(classification!=null){
+                   textClassification.setText(classification.getTitleCache());
+               }
+           }
+           else if(event.widget==btnClear){
+               classification = null;
+               textClassification.setText("");
+           }
+       }
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/GbifResponseComparator.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/GbifResponseComparator.java
new file mode 100755 (executable)
index 0000000..a376ea9
--- /dev/null
@@ -0,0 +1,57 @@
+package eu.etaxonomy.taxeditor.view.dataimport;
+
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifDataSetProtocol;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+
+public class GbifResponseComparator implements Comparator<GbifResponse> {
+       
+       @Override
+       public int compare(GbifResponse response1, GbifResponse response2) {
+               if (response1 == response2){
+                       return 0;
+               }
+               if (response1 == null){
+                       return -1;                      
+               }
+               if (response2 == null){
+                       return 1;
+               }
+               
+               if (!response1.getDataSetProtocol().equals(response2.getDataSetProtocol())){
+                       if (response1.getDataSetProtocol().equals(GbifDataSetProtocol.DWC_ARCHIVE) && response2.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
+                               return -1;
+                       }
+                       if (response2.getDataSetProtocol().equals(GbifDataSetProtocol.DWC_ARCHIVE) && response1.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
+                               return 1;
+                       }
+                       if (response1.getDataSetProtocol() == null){
+                               return -1;
+                       }
+                       if (response2.getDataSetProtocol() == null){
+                               return 1;
+                       }
+               } else{
+                       if (response1.getDataSetUri() == response2.getDataSetUri()){
+                               return 0;
+                       }
+                       if (response1.getDataSetUri() == null){
+                               return -1;
+                       }
+                       if (response2.getDataSetUri() == null){
+                               return -2;
+                       }
+                       if (response1.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
+                               
+                               return response1.getDataSetUri().compareTo(response2.getDataSetUri());
+                       }
+                       if (response1.getDataSetProtocol().equals(GbifDataSetProtocol.DWC_ARCHIVE)){
+                               return response1.getDataSetUri().compareTo(response2.getDataSetUri());
+                       }
+               }
+               
+               return 0;
+       }
+
+}
index d6fd333526db5fa3198af583576bf6e7203b2893..96938f2bbc017e391fd8a976470c859dbbc13c72 100644 (file)
 package eu.etaxonomy.taxeditor.view.dataimport;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URISyntaxException;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.apache.http.client.ClientProtocolException;
+import org.eclipse.core.runtime.jobs.Job;
 
+import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifDataSetProtocol;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
+import eu.etaxonomy.cdm.io.dwca.in.DwcaImportConfigurator;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author pplitzner
@@ -48,16 +61,46 @@ public class GbifResponseImportView extends DataImportView<GbifResponse> {
     public void query() {
         String errorMessage = "Could not execute query " + query;
         try{
-            Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
-            setResults(results);
-        } catch (ClientProtocolException e) {
-            logger.error(errorMessage, e);
-        } catch (IOException e) {
-            logger.error(errorMessage, e);
-        } catch (URISyntaxException e) {
-            logger.error(errorMessage, e);
+            //Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
+            //setResults(results);
+            
+           // String errorMessage = "Could not execute query " + query;
+
+       //     Collection<SpecimenOrObservationBase<?>> results = new ArrayList<SpecimenOrObservationBase<?>>();
+                Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
+                               
+                setResults(results);
+               
+               
+//               
+               // results = repo.getUnits();
+                
+            } catch (ClientProtocolException e) {
+                logger.error(errorMessage, e);
+            } catch (IOException e) {
+                logger.error(errorMessage, e);
+            } catch (URISyntaxException e) {
+                               // TODO Auto-generated catch block
+                               e.printStackTrace();
+                       }
         }
 
-    }
+//            setResults(results);
+//
+//        }
+//        } catch (ClientProtocolException e) {
+//            logger.error(errorMessage, e);
+//        } catch (IOException e) {
+//            logger.error(errorMessage, e);
+//        } catch (URISyntaxException e) {
+//            logger.error(errorMessage, e);
+//        }
+
+  //  }
+    
+   
+    
+
+       
 
 }
index 99791e0798c60bca84f9fce652f4326aabd2367c..7e01d6b00b3bf9e49d02a0bbaa46c672af12c9cb 100644 (file)
@@ -1,7 +1,22 @@
 package eu.etaxonomy.taxeditor.view.dataimport;
 
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.http.client.ClientProtocolException;
 import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.action.Action;
+import org.eclipse.jface.text.source.Annotation;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.ui.IWorkbenchPart;
@@ -9,18 +24,29 @@ import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.DataSetResponse;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifDataSetProtocol;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.gbif.in.*;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
 
 public class SaveImportedSpecimenAction extends Action {
 
     private final Logger logger = Logger.getLogger(SaveImportedSpecimenAction.class);
+    
+    private Comparator<GbifResponse> comparator;
 
     /* (non-Javadoc)
      * @see org.eclipse.jface.action.Action#run()
@@ -32,34 +58,92 @@ public class SaveImportedSpecimenAction extends Action {
         if(activePart instanceof DataImportView<?>){
             DataImportView<?> dataImportView = (DataImportView<?>)activePart;
             Table table = dataImportView.getTable();
+            Collection<GbifResponse> checkedResults = new HashSet<GbifResponse>();
+            Object data;
+            Set<String[]> unitIdsGbif = new HashSet<String[]>();
+            Set<String[]> unitIdsBioCase = new HashSet<String[]>();
+            List<GbifResponse> biocaseResponses = new ArrayList<GbifResponse>();
+            
             for(TableItem item:table.getItems()){
                 if(item.getChecked()){
                     //Save Specimen
-                    Object data = item.getData();
-                    if(data instanceof GbifResponse){
-                        data = ((GbifResponse) item.getData()).getDerivedUnitFacade().innerFieldUnit();
-                    }
-                    if(data instanceof SpecimenOrObservationBase){
-                        ConversationHolder conversation = dataImportView.getConversationHolder();
-                        SpecimenOrObservationBase<?> specimen = (SpecimenOrObservationBase<?>) data;
-                        conversation.bind();
-                        IOccurrenceService occurrenceService = CdmStore.getService(IOccurrenceService.class);
-                        for(ICdmBase cdmEntity:occurrenceService.getNonCascadedAssociatedElements(specimen)){
-                            if(cdmEntity instanceof DefinedTermBase){
-                                persistTerm((DefinedTermBase<?>) cdmEntity, CdmStore.getService(ITermService.class), conversation);
-                            }
-                            else if(cdmEntity instanceof TaxonNameBase){
-                                //user interaction
-                            }
-                        }
-                        occurrenceService.saveOrUpdate(specimen);
-                        dataImportView.getConversationHolder().commit(true);
-                    }
+                        data = item.getData();
+                        if(data instanceof GbifResponse){
+                                checkedResults.add((GbifResponse)item.getData());
+                        }
                 }
+            }
+            String[] tripleId ;
+                for (GbifResponse response:checkedResults){
+                       if (response != null){
+                               tripleId = response.getTripleID();
+                               
+                               if (response.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
+                                       biocaseResponses.add(response);
+                                       
+                               }else{
+                                       unitIdsGbif.add(tripleId);
+                               }
+                               
+                                       
+                       }
+                }
+                Collections.sort(biocaseResponses, getComparator()); 
+                URI dataSetUri = null;
+                Abcd206ImportConfigurator configuratorAbcd;
+                
+                List<Abcd206ImportConfigurator> abcdConfigurators = new ArrayList<Abcd206ImportConfigurator>();
+                DataSetResponse dataSetResponse;
+                OccurenceQuery bioCaseOccurrenceQuery = null;
+                for (GbifResponse response: biocaseResponses){
+                       try {
+                                               dataSetResponse = new GbifQueryServiceWrapper().queryOriginalDataSet(response);
+                                               dataSetUri = dataSetResponse.getEndpoint();
+                                       } catch (ClientProtocolException e) {
+                                               // TODO Auto-generated catch block
+                                               e.printStackTrace();
+                                       } catch (IOException e) {
+                                               // TODO Auto-generated catch block
+                                               e.printStackTrace();
+                                       }
+                       if (!response.getDataSetUri().equals(dataSetUri)){
+                               configuratorAbcd = Abcd206ImportConfigurator.NewInstance(dataSetUri, null, false);
+                               configuratorAbcd.addMediaAsMediaSpecimen(true);
+                               if (configuratorAbcd != null){
+                                       abcdConfigurators.add(configuratorAbcd);
+                               }
+                               unitIdsBioCase = new HashSet<String[]>();
+                               bioCaseOccurrenceQuery = new OccurenceQuery(unitIdsBioCase);
+                               configuratorAbcd.setOccurenceQuery(bioCaseOccurrenceQuery);
+                               if (dataImportView.getClassification() != null){
+                                       configuratorAbcd.setClassificationUuid(dataImportView.getClassification().getUuid());
+                               }
+                               
+                       }
+                       tripleId = response.getTripleID();
+                       unitIdsBioCase.add(tripleId);
+                }
+              
+                OccurenceQuery query = new OccurenceQuery(unitIdsGbif);
+                GbifImportConfigurator configurator = GbifImportConfigurator.newInstance(query);
+                configurator.setSourceReferenceTitle("Import Gbif data");
+                
+               
+                
+                //  configurator.setQuery(query);
+               
+               Job bioCaseJob = CdmStore.getImportManager().createIOServiceJob(abcdConfigurators);
+               CdmStore.getImportManager().run(bioCaseJob);
+               
+               Job gbifJob = CdmStore.getImportManager().createIOServiceJob(configurator);
+               CdmStore.getImportManager().run(gbifJob);
+               
+               
+                
             }
         }
-    }
-
+    
     private void persistTerm(DefinedTermBase<?> term, ITermService termService, ConversationHolder conversation){
         if(term!=null){
             //if the term does not exist in the DB save it
@@ -68,8 +152,7 @@ public class SaveImportedSpecimenAction extends Action {
             }
         }
     }
-
-
+     
     /* (non-Javadoc)
      * @see org.eclipse.jface.action.Action#getText()
      */
@@ -77,5 +160,13 @@ public class SaveImportedSpecimenAction extends Action {
     public String getText() {
         return "Import";
     }
-
+    
+    private Comparator<GbifResponse> getComparator(){
+       if (comparator == null){
+               comparator = new GbifResponseComparator();
+       }
+       return comparator;
+    }
+    
+    
 }
index 1c16a6fc5ad47d8e9969a04d4554d605456e5a5d..11674fd2429f717d266ac05617cbbbdf5eb4f052 100644 (file)
@@ -71,15 +71,11 @@ public class SpecimenImportView extends DataImportView<SpecimenOrObservationBase
 //                    new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
             //configurator.setCdmAppController(repo);
             configurator.setAddMediaAsMediaSpecimen(true);
-            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-                Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
-                CdmStore.getImportManager().run(job);
-            } else {
-                configurator.setSource(resultStream);
-                CdmDefaultImport<Abcd206ImportConfigurator> importer = new CdmDefaultImport<Abcd206ImportConfigurator>();
-                importer.invoke(configurator);
-            }
-           // results = repo.getUnits();
+            configurator.setAllowReuseOtherClassifications(true);
+            
+            Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
+            CdmStore.getImportManager().run(job);
+            
             setResults(results);
         } catch (ClientProtocolException e) {
             logger.error(errorMessage, e);
index d5020d26aa38d7acd07ba4b80bcc1190768bf0a1..4728a2c5de53ae0e780e4051151e74ba39e0c1a2 100644 (file)
@@ -17,6 +17,8 @@ import java.net.URL;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.widgets.Composite;
 
+import eu.etaxonomy.cdm.ext.common.ServiceWrapperBase;
+import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
 import eu.etaxonomy.taxeditor.view.specimenSearch.SpecimenProviderSelectionController;
 
 
@@ -30,6 +32,7 @@ public class SpecimenProviderSelectionWizardPage extends WizardPage{
 
     private SpecimenProviderSelectionController specimenProviderSelectionController;
     private URI endPoint;
+    private ServiceWrapperBase serviceWrapper;
 
     public SpecimenProviderSelectionWizardPage(String pageName) {
         super(pageName);
@@ -45,6 +48,8 @@ public class SpecimenProviderSelectionWizardPage extends WizardPage{
     public void createControl(Composite parent) {
         specimenProviderSelectionController = SpecimenProviderSelectionController.getInstance(parent, getWizard());
         setControl(specimenProviderSelectionController.getComposite());
+        //serviceWrapper = new BioCaseQueryServiceWrapper();
+
     }
 
     public QueryType getQueryType(){
@@ -73,6 +78,8 @@ public class SpecimenProviderSelectionWizardPage extends WizardPage{
             endPoint = null;
             try {
                 endPoint = new URL(specimenProviderSelectionController.getComposite().getTxtAccessPoint().getText()).toURI();
+                serviceWrapper = new BioCaseQueryServiceWrapper();
+                serviceWrapper.setBaseUrl(specimenProviderSelectionController.getComposite().getTxtAccessPoint().getText());
                 this.setErrorMessage(null);
                 return true;
             } catch (MalformedURLException e) {
@@ -90,6 +97,20 @@ public class SpecimenProviderSelectionWizardPage extends WizardPage{
         return false;
     }
 
+    /**
+     * @return the bioCaseQueryServiceWrapper
+     */
+    public ServiceWrapperBase getQueryServiceWrapper() {
+        return serviceWrapper;
+    }
+
+    /**
+     * @param bioCaseQueryServiceWrapper the bioCaseQueryServiceWrapper to set
+     */
+    public void setQueryServiceWrapper(ServiceWrapperBase queryServiceWrapper) {
+        this.serviceWrapper = queryServiceWrapper;
+    }
+
     /**
      * @return
      */
index 1e91d6c5e24089be896b8fcae4dc34bab0d20dab..62522a010a1a03b620113953fb3095183059fb7b 100644 (file)
@@ -9,6 +9,10 @@
 */
 package eu.etaxonomy.taxeditor.view.dataimport;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+
 import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -19,10 +23,21 @@ import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IImportWizard;
 import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.w3c.dom.NodeList;
 
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.ext.common.ServiceWrapperBase;
 import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
+import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.AbcdParseUtility;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.SpecimenImportReport;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.UnitAssociationWrapper;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -57,19 +72,70 @@ public class SpecimenSearchWizard extends Wizard implements IImportWizard {
     public boolean performFinish() {
         searchPage.getController().saveLastSate();
         providerSelectionPage.getController().saveLastState();
-
+        ServiceWrapperBase serviceWrapper;
         DataImportView<?> dataImportView = null;
         query = searchPage.getQuery();
         Abcd206ImportConfigurator configurator =  CdmStore.getImportManager().AbcdConfigurator();
         configurator.setOccurenceQuery(query);
         configurator.setSourceUri(providerSelectionPage.getEndPoint());
+        configurator.setAddMediaAsMediaSpecimen(true);
         configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            //Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
-            //CdmStore.getImportManager().run(job);
+        configurator.setIgnoreAuthorship(true);
+      
+        //Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
+        //CdmStore.getImportManager().run(job);
+        try {
+            serviceWrapper = providerSelectionPage.getQueryServiceWrapper();
+            InputStream stream = null;
+
+            final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+            IWorkbenchPage activePart = window.getActivePage();
+            if (providerSelectionPage.getQueryType().equals(QueryType.BIOCASE)){
+                stream =((BioCaseQueryServiceWrapper) serviceWrapper).query(query, configurator.getSourceUri());
+                SpecimenImportReport report = new SpecimenImportReport();
+                UnitAssociationWrapper unitNodesList = AbcdParseUtility.parseUnitsNodeList(stream, report);
+                NodeList nodeList = unitNodesList.getAssociatedUnits();
+                String prefix = unitNodesList.getPrefix();
+                String associationType = unitNodesList.getAssociationType();
+                URI uri =AbcdParseUtility.parseFirstUri(nodeList, report);
+                String content = AbcdParseUtility.parseFirstTextContent(nodeList);
+                System.out.println(content);
+
+
+                SpecimenImportView specimenImportView = new SpecimenImportView();
+                try {
+                    specimenImportView = (SpecimenImportView) activePart.showView(SpecimenImportView.ID);
+                    specimenImportView.setEndpoint(providerSelectionPage.getEndPoint());
+                    specimenImportView.setQuery(query);
+                    dataImportView = specimenImportView;
+                } catch (PartInitException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+
+                }
+
+            } else{
+                try {
+                       
+                    dataImportView = (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""), IWorkbenchPage.VIEW_ACTIVATE);
+                    dataImportView.setQuery(query);            
+                       //      (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID);getWorkbench().getActiveWorkbenchWindow().getActivePage()
+                         // .showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""),IWorkbenchPage.VIEW_ACTIVATE);
+
+                } catch (PartInitException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+
+            }
+
 
-            CdmStore.getImportManager().run(configurator);
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
         }
+       // CdmStore.getImportManager().run(configurator);
+    
 //        try {
 //            switch (providerSelectionPage.getQueryType()) {
 //            case BIOCASE:
index dd2b91e414b4295b0e9c05ca454a6ea2b7a24548..3207029946f188c2725c276dfef390b30104870c 100644 (file)
@@ -14,20 +14,12 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.action.GroupMarker;
 import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
@@ -43,8 +35,6 @@ import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.part.ViewPart;
 import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
 
@@ -53,9 +43,7 @@ import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
 import eu.etaxonomy.taxeditor.model.IContextListener;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
  * <p>CdmDataSourceViewPart class.</p>
@@ -225,42 +213,6 @@ public class CdmDataSourceViewPart extends ViewPart{
                Menu menu = menuMgr.createContextMenu(control);
                control.setMenu(menu);
 
-               // connect on doubleclick
-               viewer.addDoubleClickListener(new IDoubleClickListener() {
-
-                       @Override
-            public void doubleClick(DoubleClickEvent event) {
-                               if (event.getSelection() instanceof StructuredSelection) {
-
-                                       Object element = ((StructuredSelection) event
-                                                       .getSelection()).getFirstElement();
-                                       if (element instanceof CdmMetaDataAwareDataSourceContainer) {
-                                               String commandId = "eu.etaxonomy.taxeditor.store.datasource.change"; //$NON-NLS-1$
-
-                                               ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);
-
-                                               Command command = commandService.getCommand(commandId);
-                                               if(command.isEnabled()) {
-
-                                                       IHandlerService handlerService = (IHandlerService) StoreUtil.getService(IHandlerService.class);
-
-                                                       try {
-                                                               handlerService.executeCommand(commandId, null);
-                                                       } catch (ExecutionException e) {
-                                                               MessagingUtils.error(this.getClass(), e);
-                                                       } catch (NotDefinedException e) {
-                                                               MessagingUtils.error(this.getClass(), e);
-                                                       } catch (NotEnabledException e) {
-                                                               MessagingUtils.error(this.getClass(), e);
-                                                       } catch (NotHandledException e) {
-                                                               MessagingUtils.error(this.getClass(), e);
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-               });
-
                refresh();
        }
 
index 1a21700c0b633005f6f621c752c015cb5e04010a..77d5d595a27dcf7dd71dfebcac75c98e76926162 100644 (file)
@@ -1,22 +1,20 @@
 // $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.view.datasource;
 
-import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.Map;
 
 import eu.etaxonomy.cdm.config.CdmSourceException;
 import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -29,18 +27,18 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  * @version 1.0
  */
 public class CdmMetaDataAwareDataSourceContainer {
-       
-       
-       
+
+
+
        /** Constant <code>DEFAULT_ENTRY="-"</code> */
        public static final String DEFAULT_ENTRY = "-";
-       
+
        private ICdmSource cdmSource;
-       
+
        private boolean running;
-       
+
        private Map<MetaDataPropertyName, String> metaDataMap;
-       
+
        /**
         * <p>Constructor for CdmMetaDataAwareDataSourceContainer.</p>
         *
@@ -49,9 +47,9 @@ public class CdmMetaDataAwareDataSourceContainer {
         */
        public CdmMetaDataAwareDataSourceContainer(ICdmSource cdmSource){
                this.cdmSource = cdmSource;
-               
+
                metaDataMap = getDefaultMetaDataMap();
-               
+
        }
 
 //     /**
@@ -62,18 +60,18 @@ public class CdmMetaDataAwareDataSourceContainer {
 //     public ICdmDataSource getDataSource() {
 //             return dataSource;
 //     }
-       
+
        public ICdmSource getCdmSource() {
        return cdmSource;
 }
-       
+
        public void getMetaDataFromDataSource(){
                try {
                        running = cdmSource.checkConnection();
                } catch (Exception e) {
                        running = false;
                        for(MetaDataPropertyName metaDataPropertyName : MetaDataPropertyName.values()){
-                               metaDataMap.put(metaDataPropertyName, DEFAULT_ENTRY);                                   
+                               metaDataMap.put(metaDataPropertyName, DEFAULT_ENTRY);
                        }
                }
 
@@ -81,24 +79,29 @@ public class CdmMetaDataAwareDataSourceContainer {
                        if(isRunning()){
 
                                //                              try {
-                               metaDataMap = cdmSource.getMetaDataMap();       
+                               metaDataMap = cdmSource.getMetaDataMap();
                                cdmSource.closeOpenConnections();
                                //                              } catch (CdmSourceException e) {
                                //                                      StoreUtil.warn(this.getClass(), "SQLException when trying to access: " + cdmSource.getName() + ". " + e.getMessage());
-                               //                              } 
+                               //                              }
                        }
                } catch (Exception e) {
-                       MessagingUtils.error(this.getClass(), e);
+            if(e instanceof CdmSourceException && e.getMessage().toLowerCase().contains("\"cdmmetadata\"")){
+                MessagingUtils.error(this.getClass(), "Data source "+((CdmSourceException) e).getSourceName()+" does not have a CDMMETADATA table", null);
+            }
+            else{
+                MessagingUtils.error(this.getClass(), e);
+            }
                }
        }
-       
+
        private Map<MetaDataPropertyName, String> getDefaultMetaDataMap(){
                Map<MetaDataPropertyName, String> resultMap = new HashMap<MetaDataPropertyName, String>(MetaDataPropertyName.values().length);
-               
+
                for(MetaDataPropertyName metaDataPropertyName : MetaDataPropertyName.values()){
                        resultMap.put(metaDataPropertyName, null);
                }
-               
+
                return resultMap;
        }
 
@@ -110,7 +113,7 @@ public class CdmMetaDataAwareDataSourceContainer {
        public Map<MetaDataPropertyName, String> getMetaDataMap() {
                return metaDataMap;
        }
-       
+
        /**
         * <p>isDataSourceCompatible</p>
         *
@@ -131,7 +134,7 @@ public class CdmMetaDataAwareDataSourceContainer {
                String property = metaDataMap.get(metaDataPropertyName);
                return property != null ? property : DEFAULT_ENTRY;
        }
-       
+
        /**
         * <p>isRunning</p>
         *
@@ -140,7 +143,7 @@ public class CdmMetaDataAwareDataSourceContainer {
        public boolean isRunning() {
                return running;
        }
-       
+
        /* (non-Javadoc)
         * @see java.lang.Object#toString()
         */
index 27b80b47a68ad4948ec1c0ad5a34a2800b121a9d..808d67cfea1733d919ef873da2948ab0e7977f82 100644 (file)
@@ -2,9 +2,11 @@ package eu.etaxonomy.taxeditor.view.derivateSearch;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.TreeSet;
 
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.TreeNode;
@@ -20,7 +22,7 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 
 public class DerivateContentProvider implements ITreeContentProvider {
 
-    List<TreeNode> rootNodes;
+    private TreeSet<TreeNode> rootNodes;
 
        @Override
        public void dispose() {
@@ -45,7 +47,7 @@ public class DerivateContentProvider implements ITreeContentProvider {
 
        @Override
        public Object[] getElements(Object inputElement) {
-           rootNodes = new ArrayList<TreeNode>();
+           rootNodes = new TreeSet<TreeNode>(new TreeNodeComparator());
            if(inputElement instanceof Collection){
                for (Object o: (Collection)inputElement) {
                    if(o instanceof SpecimenOrObservationBase){
@@ -141,5 +143,25 @@ public class DerivateContentProvider implements ITreeContentProvider {
            }
            return derivates;
        }
+       
+       private class TreeNodeComparator implements Comparator<TreeNode>{
+
+               @Override
+               public int compare(TreeNode o1, TreeNode o2) {
+                       if(o1!=null && o2==null){
+                               return -1;
+                       }
+                       else if(o1==null && o2!=null){
+                               return 1;
+                       }
+                       else if(o1!=null && o2!=null){
+                               SpecimenOrObservationBase<?> specimenOrObservation1 = (SpecimenOrObservationBase<?>) o1.getValue();
+                               SpecimenOrObservationBase<?> specimenOrObservation2 = (SpecimenOrObservationBase<?>) o2.getValue();
+                               return specimenOrObservation1.getTitleCache().compareTo(specimenOrObservation2.getTitleCache());
+                       }
+                       return 0;
+               }
+               
+       }
 
 }
index ebe3b81bf3778ab995c7e2a5cb0728aa0c933e97..53c92df897ed0c121f314dfebee24ffc6459ce50 100644 (file)
@@ -27,12 +27,13 @@ import org.hibernate.LazyInitializationException;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.format.CdmFormatterFactory;
-import eu.etaxonomy.cdm.format.ICdmFormatter;
 import eu.etaxonomy.cdm.format.ICdmFormatter.FormatKey;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
@@ -63,7 +64,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
     private static Set<SingleRead> multiLinkSingleReads;
 
     private static Map<DerivedUnit, Collection<SpecimenTypeDesignation>> typeDesignations;
-    
+
     private ConversationHolder conversation;
 
     private static DefinedTerm photoTerm = null;
@@ -152,7 +153,17 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 FormatKey.MEDIA_TITLE, FormatKey.SPACE,
                 FormatKey.MEDIA_ARTIST, FormatKey.SPACE
         };
-        return CdmFormatterFactory.format(element, formatKeys);
+        String text = CdmFormatterFactory.format(element, formatKeys);
+        if(element instanceof IdentifiableEntity){
+               IdentifiableEntity identifiableEntity = (IdentifiableEntity) element;
+               if(identifiableEntity.isProtectedTitleCache()){
+                       text = identifiableEntity.getTitleCache();
+               }
+        }
+        if(CdmUtils.isBlank(text)){
+               return "[-]";
+        }
+               return text;
     }
 
     /** {@inheritDoc} */
@@ -368,7 +379,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                     }
                     return hasCharacterData?ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE_CHARACTER_DATA):ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
                 }
-                else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.Media){
+                else if(derivedUnit.getRecordBasis().isKindOf(SpecimenOrObservationType.Media)){
                     if(derivedUnit.getKindOfUnit()!=null){
                         if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
                             return hasCharacterData?ImageResources.getImage(ImageResources.ARTWORK_DERIVATE_CHARACTER_DATA):ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
@@ -398,7 +409,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 }
             }
         }
-        return super.getImage(element);
+        return ImageResources.getImage(ImageResources.DEFAULT_DERIVATIVE);
     }
 
     public static Identifier<DnaSample> getCurrentSampleDesignation(CdmBase entity) {
index d6554715cab4fb51469bed56ee0e1fcecbffe2f5..bbdec86ec59239ac895458a63c5300f622916c80 100644 (file)
@@ -10,6 +10,9 @@
 
 package eu.etaxonomy.taxeditor.view.detail;
 
+import java.awt.Event;
+import java.util.EventObject;
+
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.widgets.Control;
@@ -121,6 +124,9 @@ public class CdmSectionPart<T> extends SectionPart implements
                if (event != null) {
 
                        Object eventSource = event.getSource();
+                       if (eventSource instanceof EventObject){
+                               eventSource = ((EventObject)eventSource).getSource();
+                       }
                        Control[] children = formSection.getLayoutComposite().getChildren();
                        boolean containsElement = false;
                        for (Control control : children) {
index 0f0df4522f04f5a863b8c5b756af12afdf544653..d95401969d5395a93c190252653c16c8e7c9277c 100644 (file)
@@ -23,6 +23,7 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
@@ -39,7 +40,7 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
 public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartContentHasSupplementalData{
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.forms.det"{trunked}</code> */
-       public static String ID = "eu.etaxonomy.taxeditor.view.detail";
+       public static String ID = "eu.etaxonomy.taxeditor.view.detail"; //$NON-NLS-1$
 
        private DetailsViewer viewer;
 
@@ -70,7 +71,6 @@ public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartC
 
         if((part instanceof IEditorPart) || (part instanceof IPartContentHasDetails)) {
             if(structuredSelection.size() != 1){
-                setPartName(createPartTitle(null));
                 showEmptyPage();
                 return;
             }
@@ -80,37 +80,34 @@ public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartC
                 // do show the map for distributions
                 Feature feature = ((FeatureNodeContainer) ((IStructuredSelection) selection).getFirstElement()).getFeature();
                 if(!feature.equals(Feature.DISTRIBUTION())){
-                    setPartName(createPartTitle(null));
                     showEmptyPage();
                     return;
                 }
             }
-
-
-            setPartName(createPartTitle(((IStructuredSelection) selection).getFirstElement()));
             showViewer(part, structuredSelection);
         }else{
-            setPartName(createPartTitle(null));
             showEmptyPage();
         }
        }
 
-       private String getViewName(){
-           return "Details";
+       @Override
+       protected String getViewName(){
+           return Messages.DetailsViewPart_VIEWER_NAME;
        }
 
-       private String createPartTitle(Object selectedObject){
+       @Override
+       protected String createPartTitle(Object selectedObject){
            if(selectedObject!=null){
                if(selectedObject instanceof TreeNode){
                    selectedObject = ((TreeNode) selectedObject).getValue();
                }
                if(selectedObject instanceof SpecimenOrObservationBase){
-                   return getViewName()+": "+HibernateProxyHelper.deproxy(selectedObject, SpecimenOrObservationBase.class).getRecordBasis();
+                   return getViewName()+": "+HibernateProxyHelper.deproxy(selectedObject, SpecimenOrObservationBase.class).getRecordBasis(); //$NON-NLS-1$
                }
                if(selectedObject instanceof CdmBase){
-                   return getViewName()+": "+HibernateProxyHelper.deproxy(selectedObject, CdmBase.class).getClass().getSimpleName();
+                   return getViewName()+": "+HibernateProxyHelper.deproxy(selectedObject, CdmBase.class).getClass().getSimpleName(); //$NON-NLS-1$
                }
-               return getViewName()+": "+selectedObject.getClass().getSimpleName();
+               return getViewName()+": "+selectedObject.getClass().getSimpleName(); //$NON-NLS-1$
            }
            return getViewName();
        }
index 07a59b225d8ac4c4ff9af7ae705e659bfba40a00..420fcbef815e4eb38a8edb75bf6c0b65251c1b57 100644 (file)
@@ -48,6 +48,7 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
@@ -74,7 +75,6 @@ import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailSectio
 import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.identifier.IdentifierDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection;
@@ -105,6 +105,7 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDe
 import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonBaseDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonRelationshipDetailSection;
@@ -129,7 +130,7 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
 public class DetailsViewer extends AbstractCdmDataViewer {
 
     private ISelection selection;
-
+    
     public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) {
         super(parent, viewPart);
     }
@@ -363,45 +364,61 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(getConversationHolder(), parent, this,
                 ExpandableComposite.EXPANDED | ExpandableComposite.EXPANDED);
-
-        TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this,
-                       ExpandableComposite.TWISTIE     | ExpandableComposite.EXPANDED);
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
+        if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION)){
+               TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this,
+               ExpandableComposite.TWISTIE     | ExpandableComposite.EXPANDED);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               addPart(taxonBaseDetailSection);
+        }else{
+               if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_TAXON)){
+                   TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this,
+                               ExpandableComposite.TWISTIE     | ExpandableComposite.EXPANDED);
+                   formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+       
+                   addPart(taxonBaseDetailSection);
+               }
+        }
         NonViralNameDetailSection nonViralNameSection = formFactory
                 .createNonViralNameDetailSection(getConversationHolder(), parent, this, true,
                         ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
-                       ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
-                       ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        //TODO RL
-        if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
-               ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
-               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-               TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
-               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-               NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
-               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-                       addPart(protologSection);
-                       addPart(typeDesignationSection);
-                       addPart(nameRelationshipSection);
+        if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE))){       
+                   NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
+                               ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+                   formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+                   addPart(referenceDetailSection);
+               
+        }
+        if ( !PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS))){
+                   NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
+                               ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+                   formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+                   addPart(nomenclaturalStatusSection);
+        }
+        if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)  ){
+               if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_PROTOLOGUE))){
+                       ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+                       formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+                       addPart(protologSection);
+               }
+               
+               if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) &&  PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION))){
+                       TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+                       formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+                       addPart(typeDesignationSection);
+               }
+               
+               if (!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) || (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION) && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP))){
+                       NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+                       formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+                       addPart(nameRelationshipSection);
+               }
         }
 
         addPart(parsingMessagesSection);
-        addPart(taxonBaseDetailSection);
+
         addPart(nonViralNameSection);
-        addPart(nomenclaturalStatusSection);
-        addPart(referenceDetailSection);
+
     }
 
     private void createNameSections(RootElement parent) {
@@ -587,7 +604,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                 addPart(taxonAssociationDetailSection);
             }
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-            IdentifierDetailSection identifierDetailSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+            DerivedUnitFacadeIdentifierSection identifierDetailSection = formFactory.createDerivedUnitFacadeIdentifierSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
             addPart(identifierDetailSection);
         }
         if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS)){
@@ -776,4 +793,9 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         addPart(definedTermDetailSection);
     }
 
+       @Override
+       public void update(CdmDataChangeMap arg0) {
+               
+       }
+
 }
index 984c3c6f206199c1cc44e0afb2b28bdc8adff4e4..2c69ed5ae5f68d5d4a73419dc73f40c599c5794f 100644 (file)
@@ -22,6 +22,7 @@ import org.eclipse.ui.part.EditorPart;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
@@ -38,7 +39,7 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
 public class SupplementalDataViewPart extends AbstractCdmEditorViewPart {
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.supp"{trunked}</code> */
-       public static final String ID = "eu.etaxonomy.taxeditor.view.supplementalData";
+       public static final String ID = "eu.etaxonomy.taxeditor.view.supplementalData"; //$NON-NLS-1$
 
        private SupplementalDataViewer viewer;
 
@@ -123,4 +124,10 @@ public class SupplementalDataViewPart extends AbstractCdmEditorViewPart {
                // TODO Auto-generated method stub
                return false;
        }
+
+
+       @Override
+       protected String getViewName() {
+               return Messages.SupplementalDataViewPart_VIEWER_NAME;
+       }
 }
index f48949c18565ae3590bca53d02502131bbac26e2..17630b9ea1b512e7f5ff8ca2f59c43358dfd38f1 100644 (file)
@@ -22,6 +22,7 @@ import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.VersionableEntity;
 import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.IElementHasDetails;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -37,6 +38,7 @@ import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.IdentifierSection;
 import eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer;
 import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
 import eu.etaxonomy.taxeditor.view.detail.DetailsViewer;
@@ -163,10 +165,13 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
+        IdentifierSection identifierSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+        
         addPart(creditSection);
         addPart(extensionSection);
         addPart(rightsSection);
         addPart(sourceSection);
+        addPart(identifierSection);
 
        }
 
@@ -209,4 +214,8 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe
                        setInput(selection.getFirstElement());
                }
        }
+       
+       @Override
+       public void update(CdmDataChangeMap arg0) {
+       }
 }
index ee9da7f5ab9f87309256a09b5e4cbb162b142045..b9753f4dc4bf5e078b63ff13a35d9d6c3c6be39a 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: eu.etaxonomy.taxeditor.test
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.test;singleton:=true
-Bundle-Version: 4.0.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: EDIT
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
index f67047a0caca857d4ab47a25a3fc9329b5656f98..19f896ffdc5cb0a97d385af56c2a16611942c913 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.0.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
   <artifactId>eu.etaxonomy.taxeditor.test</artifactId>
   <packaging>eclipse-test-plugin</packaging>
           <daemon>true</daemon>
         </configuration>
         <dependencies>
-            <dependency>
-            <groupId>com.mchange</groupId>
-            <artifactId>c3p0</artifactId>
-            <!-- 
-              IMPORTANT!!!
-              this must exactly match the version as set in 
-              cdmlib-parent pom.xml
-            -->
-            <version>${c3p0.version}</version>
-          </dependency>
-          <!-- DATABASE DRIVER -->
-          <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <version>${h2.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>${mysql.version}</version>
-          </dependency>
+               <dependency>
+                       <groupId>eu.etaxonomy</groupId>
+                       <artifactId>cdmlib-db</artifactId>
+                       <version>${cdmlib.version}</version>
+               </dependency>
+                 <!-- Do we still need this? If yes, should we move it to cdmlib-db? -->
           <dependency>
               <groupId>commons-dbcp</groupId>
               <artifactId>commons-dbcp</artifactId>
               <version>1.4</version>
           </dependency>
-<!--           <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.17</version>
-          </dependency> -->
-          <!--  
-          <dependency>
-            <groupId>eu.etaxonomy</groupId>
-            <artifactId>cdmlib-persistence</artifactId>
-            <version>${project.version}</version>
-            <exclusions>
-            </exclusions>
-          </dependency>
-          -->
         </dependencies>
         <executions>
           <execution>
index 77fc90f0c62a1d8358dcab51a69af5e7df339fc6..24654ca8343e46210118b125a5ab00b704624dc0 100644 (file)
@@ -193,7 +193,7 @@ public class TaxonNameEditorTest extends BaseOperationTest {
         Taxon grandChildTaxon = Taxon.NewInstance(null, null);
         TaxonNode grandChildTaxonNode = childTaxonNode.addChildTaxon(grandChildTaxon, null, null);
 
-        CdmStore.getService(ITaxonNodeService.class).merge(taxonNode,true);
+        CdmStore.getService(ITaxonNodeService.class).merge(grandChildTaxonNode,true);
 
         Assert.assertEquals(taxonNode.getChildNodes().get(0).getId(), childTaxonNode.getId());
 
index 2cae0cd09b2fdebe943d88ecf1f32944df3a6e3c..db9cbc3649a4c9eedf4345a60fa0600fd327daa4 100644 (file)
@@ -33,6 +33,7 @@ import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.api.service.pager.Pager;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Person;
@@ -45,11 +46,13 @@ import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.KeyStatement;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.media.Rights;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
 import eu.etaxonomy.taxeditor.httpinvoker.TestThread;
 
@@ -173,6 +176,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
+    @Ignore
     public void addGrandChildPolytomousKeyNode() {
 
         PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
@@ -180,7 +184,8 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         PolytomousKeyNode grandChildNode = PolytomousKeyNode.NewInstance();
         rootChildNode.addChild(grandChildNode);
 
-        polytomousKeyService.merge(pKey, true);
+        MergeResult<PolytomousKey> result = polytomousKeyService.merge(pKey, true);
+        pKey = result.getMergedEntity();
         grandChildNode = pKey.getRoot().getChildAt(0).getChildAt(0);
         Assert.assertTrue(0 != grandChildNode.getId());
         KeyStatement ks = KeyStatement.NewInstance("test");
@@ -202,7 +207,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         rootChildNode.addChild(grandChildNode);
 
 
-        polytomousKeyNodeService.merge(grandChildNode);
+        polytomousKeyNodeService.merge(grandChildNode, true);
 
 
         Assert.assertFalse(pKey.getRoot().getChildAt(0).getChildAt(0).getId() == 0);
@@ -239,7 +244,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         Taxon taxon = CdmBase.deproxy(taxonService.find(taxon1Uuid),Taxon.class);
         pkeynode.getChildAt(1).setTaxon(taxon);
 
-        polytomousKeyService.merge(pkey);
+        polytomousKeyService.merge(pkey, true);
 
         pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
@@ -254,7 +259,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
 
         Assert.assertEquals(pkeynode.getChildAt(1).getTaxon(), taxon);
 
-        polytomousKeyService.merge(pkey);
+        polytomousKeyService.merge(pkey, true);
 
         pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
@@ -290,7 +295,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
 
         Assert.assertSame(subkey1, subkey2);
 
-        polytomousKeyService.merge(pkey);
+        polytomousKeyService.merge(pkey, true);
     }
 
     @Test
@@ -316,7 +321,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
 
         Assert.assertSame(subkey1, subkey2);
 
-        polytomousKeyService.merge(pkey);
+        polytomousKeyService.merge(pkey, true);
     }
 
 
@@ -335,7 +340,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         label2.size();
 
 
-        polytomousKeyService.merge(pkey);
+        polytomousKeyService.merge(pkey, true);
     }
 
     @Test
@@ -455,6 +460,21 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         newTerm.setLabel("CreateTest");
 
         try {
+               List<Feature> features = termService.list(Feature.class, 100, 0, null, null);
+               List<UUID> updateTerms = new ArrayList<UUID>();
+               for (Feature feature:features){
+                       if (feature.getLabel().equals("UpdateTest")){
+                               updateTerms.add(feature.getUuid());
+                       }
+               }
+               termService.delete(updateTerms);
+               
+//              if(termService.findByRepresentationText("UpdateTest", Feature.class, null, null) != null) {
+//                     Pager<Feature> terms =  termService.findByRepresentationText("UpdateTest", Feature.class, null, null);
+//                     if (!terms.getRecords().isEmpty()){
+//                             termService.delete(terms.getRecords().get(0).getUuid());
+//                     }
+//             }
 
             Assert.assertNotNull(newTerm);
             TermVocabulary vocNameFeature = vocabularyService.find(vocNameFeatureUuid);
@@ -467,8 +487,10 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
 
             vocNameFeature.addTerm(newTerm);
 
-            vocs = vocabularyService.merge(vocs);
-            for(TermVocabulary voc : vocs) {
+            List<MergeResult<TermVocabulary>> mergeResults = vocabularyService.merge(vocs, true);
+            
+            for(MergeResult<TermVocabulary> result : mergeResults){
+               TermVocabulary voc = result.getMergedEntity();
                 if(voc.getUuid().equals(vocNameFeatureUuid)) {
                     vocNameFeature = voc;
                 }
@@ -483,6 +505,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
                     Assert.assertNotNull(dtb.getCreatedBy());
                     Assert.assertNotNull(dtb.getCreated());
                 } else {
+                       System.err.println(dtb.getLabel() + " " + dtb.getCreatedBy() + " " + dtb.getUuid());
                     Assert.assertNull(dtb.getCreatedBy());
                 }
             }
@@ -506,7 +529,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         // Test for #5138
         Person person = (Person) CdmApplicationState.getCurrentAppConfig().getAgentService().load(personUuid);
         person.setFirstname("Me");
-        CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person);
+        CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person, true);
     }
 
 
@@ -517,7 +540,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         person = (Person) CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person);
         person = (Person) CdmApplicationState.getCurrentAppConfig().getAgentService().load(person.getUuid());
         person.setFirstname("Some");
-        CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person);
+        CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person, true);
     }
 
     @Test
diff --git a/eu.etaxonomy.taxeditor.test/src/test/resources/.cdmLibrary/writableResources/test.mgd.datasources.xml b/eu.etaxonomy.taxeditor.test/src/test/resources/.cdmLibrary/writableResources/test.mgd.datasources.xml
deleted file mode 100644 (file)
index 5a1c1a2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> 
-<!-- DO NOT EDIT THIS FILE MANUALLY. --><!-- It is created by the Taxonomic Editor for launching a managed CDM Server. --><beans xmlns="http://www.springframework.org/schema/beans"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xmlns:tx="http://www.springframework.org/schema/tx"
-  xmlns:context="http://www.springframework.org/schema/context"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-  http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd
-  http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
-">
- <bean id="dataSourceProperties" class="eu.etaxonomy.cdm.remote.config.DataSourceProperties">
-   <property name="propsMap">
-       <map/>
-   </property>
- </bean>
- <bean id="MGD_cdmTest" lazy-init="true" class="com.mchange.v2.c3p0.ComboPooledDataSource">
-   <property name="driverClass" value="org.h2.Driver"/>
-   <property name="user" value="sa"/>
-   <property name="password" value=""/>
-   <property name="jdbcUrl" value="jdbc:h2:file:C:\Users\a.mueller\eclipse\git\taxeditor\eu.etaxonomy.taxeditor.test\src\test\resources\.cdmLibrary\writableResources\h2\LocalH2/cdmTest;AUTO_SERVER=TRUE"/>
- </bean>
-</beans>
index 87c7de086c8bca23e12ac599c1ba2802515f3d7f..03d1c3ee48869ea8b3b2cf2b59d9e92e8e84c8e1 100644 (file)
@@ -1,9 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
+       <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/postgresql-9.4-1206-jdbc4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/h2-1.4.190.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.11.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.5.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.24.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.1.0.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/jetty-all-9.2.9.v20150224.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>
index 812fe86cc5579c5853012aca93121e4482344488..39e810c6c428b11d52ce9724cb6aa3213623f801 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Webapp
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.webapp;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.4.0.qualifier
 Require-Bundle: org.eclipse.core.runtime
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
@@ -11,10 +11,12 @@ Bundle-ClassPath: .,
  lib/log4j-1.2.17.jar,
  lib/jetty-all-9.2.9.v20150224.jar,
  lib/javax.servlet-api-3.1.0.jar,
- lib/mysql-connector-java-5.1.24.jar,
  lib/c3p0-0.9.5.2.jar,
  lib/h2-1.4.190.jar,
- lib/mchange-commons-java-0.2.11.jar
+ lib/mchange-commons-java-0.2.11.jar,
+ lib/mysql-connector-java-5.1.38.jar,
+ lib/postgresql-9.4-1206-jdbc4.jar,
+ lib/jdbc4-2.0.jar
 Bundle-Vendor: EDIT
 Import-Package: org.eclipse.jface.resource,
  org.eclipse.ui.plugin
index be57fa3593e61756f708400c35c20a072c31b6ed..a5a7a9f2daaf8f900ee36c5175164aacfab19b7b 100644 (file)
@@ -4,4 +4,7 @@ bin.includes = META-INF/,\
                .,\
                lib/,\
                lib/h2-1.4.190.jar,\
-               lib/mchange-commons-java-0.2.11.jar
+               lib/mchange-commons-java-0.2.11.jar,\
+               lib/mysql-connector-java-5.1.38.jar,\
+               lib/postgresql-9.4-1206-jdbc4.jar,\
+               lib/jdbc4-2.0.jar
index fc450addfcb23d287786fec6dea68dcb89b2e9d3..de79000a8986510f915d936ed17ff6966c1ff6df 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>eu.etaxonomy.taxeditor.webapp</artifactId>
@@ -53,7 +53,7 @@
             </goals>
             <configuration>
               <includeArtifactIds>
-                c3p0,mchange-commons-java,h2,mysql-connector-java,log4j,javax.servlet-api,jetty-all
+                log4j,javax.servlet-api,jetty-all
               </includeArtifactIds>
               <outputDirectory>
                 ${basedir}/lib
               <excludeTransitive>true</excludeTransitive>
             </configuration>
           </execution>
+          <execution>
+            <id>copy-dependency-jars-transitive</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <includeArtifactIds>
+                c3p0,mchange-commons-java,h2,postgresql,mysql-connector-java,jdbc4
+              </includeArtifactIds>
+              <outputDirectory>
+                ${basedir}/lib
+              </outputDirectory>
+              <overWriteReleases>true</overWriteReleases>
+              <overWriteSnapshots>true</overWriteSnapshots>
+              <excludeTransitive>false</excludeTransitive>
+            </configuration>
+          </execution>
         </executions>
       </plugin>
       <plugin>
       <type>war</type>
     </dependency>
     <dependency>
-      <groupId>com.h2database</groupId>
-      <artifactId>h2</artifactId>
-      <version>${h2.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>mysql</groupId>
-        <artifactId>mysql-connector-java</artifactId>
-        <version>5.1.24</version>
+      <groupId>eu.etaxonomy</groupId>
+      <artifactId>cdmlib-db</artifactId>
+      <version>${cdmlib.version}</version>
     </dependency>
-     <dependency>
-      <groupId>com.mchange</groupId>
-      <artifactId>c3p0</artifactId>
-      <version>${c3p0.version}</version>
-     </dependency>
-     <dependency>
-        <groupId>com.mchange</groupId>
-        <artifactId>mchange-commons-java</artifactId>
-        <version>${mchange-commons-java.version}</version>
-     </dependency>
      <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
index 441c29d34a0e922c1f01c697a5c00209e9296c7a..41c429529c90fe3c5f157820a21fc87e75453a32 100644 (file)
@@ -1,39 +1,58 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="4.2.0.qualifier">
-  <aboutInfo>
-    <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
-    <text>
-         %productBlurb
-      </text>
-  </aboutInfo>
-  <configIni use="default"></configIni>
-  <launcherArgs>
-    <programArgs>-data @user.home/.cdmLibrary -Dserver_port=58080
-      </programArgs>
-    <vmArgs>-Xmx512M -XX:MaxPermSize=256M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow
-      </vmArgs>
-    <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
-      </vmArgsMac>
-  </launcherArgs>
-  <windowImages i16="/eu.etaxonomy.taxeditor.application/icons/256color_16x16.gif" i32="/eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif" i48="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
-  <splash location="eu.etaxonomy.taxeditor.application" startupForegroundColor="000000" startupMessageRect="7,432,360,20" startupProgressRect="5,447,366,15"/>
-  <launcher name="TaxonomicEditor">
-    <solaris/>
-    <win useIco="false">
-      <bmp/>
-    </win>
-  </launcher>
-  <vm></vm>
-  <plugins></plugins>
-  <features>
-    <feature id="eu.etaxonomy.taxeditor.feature"/>
-  </features>
-  <configurations>
-    <plugin autoStart="true" id="eu.etaxonomy.taxeditor.application" startLevel="5"/>
-    <plugin autoStart="true" id="org.eclipse.core.runtime" startLevel="4"/>
-    <plugin autoStart="true" id="org.eclipse.equinox.common" startLevel="2"/>
-    <plugin autoStart="true" id="org.eclipse.equinox.ds" startLevel="2"/>
-    <plugin autoStart="true" id="org.eclipse.equinox.p2.transport.ecf" startLevel="4"/>
-    <plugin autoStart="true" id="org.eclipse.equinox.simpleconfigurator" startLevel="1"/>
-  </configurations>
-</product>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?pde version="3.5"?>\r
+\r
+<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="4.4.0.qualifier" useFeatures="true" includeLaunchers="true">\r
+\r
+   <aboutInfo>\r
+      <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>\r
+      <text>\r
+         %productBlurb\r
+      </text>\r
+   </aboutInfo>\r
+\r
+   <configIni use="default">\r
+   </configIni>\r
+\r
+   <launcherArgs>\r
+      <programArgs>-data @user.home/.cdmLibrary -Dserver_port=58080\r
+      </programArgs>\r
+      <vmArgs>-Xmx512M -XX:MaxPermSize=256M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow\r
+      </vmArgs>\r
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts\r
+      </vmArgsMac>\r
+   </launcherArgs>\r
+\r
+   <windowImages i16="/eu.etaxonomy.taxeditor.application/icons/256color_16x16.gif" i32="/eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif" i48="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>\r
+\r
+   <splash\r
+      location="eu.etaxonomy.taxeditor.application"\r
+      startupProgressRect="5,447,366,15"\r
+      startupMessageRect="7,432,360,20"\r
+      startupForegroundColor="000000" />\r
+   <launcher name="TaxonomicEditor">\r
+      <solaris/>\r
+      <win useIco="false">\r
+         <bmp/>\r
+      </win>\r
+   </launcher>\r
+\r
+   <vm>\r
+   </vm>\r
+\r
+   <plugins>\r
+   </plugins>\r
+\r
+   <features>\r
+      <feature id="eu.etaxonomy.taxeditor.feature"/>\r
+   </features>\r
+\r
+   <configurations>\r
+      <plugin id="eu.etaxonomy.taxeditor.application" autoStart="true" startLevel="5" />\r
+      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />\r
+      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />\r
+      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />\r
+      <plugin id="org.eclipse.equinox.p2.transport.ecf" autoStart="true" startLevel="4" />\r
+      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />\r
+   </configurations>\r
+\r
+</product>\r
index 22dd08361c305162bd1ae6ce933fa7984f8138bf..417f6c37c0f5447896c99255b3d2e22d36f79e04 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="4.2.0.qualifier" useFeatures="true" includeLaunchers="true">
+<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="4.4.0.qualifier" useFeatures="true" includeLaunchers="true">
 
    <aboutInfo>
       <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
index 181ac9abe849b048f7d5483b83ebd83190fcf1c9..acbd592c7e4b8d0015613c6bfcb3b64cae4671cd 100644 (file)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>4.2.0-SNAPSHOT</version>
+    <version>4.4.0-SNAPSHOT</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 2ab0ba60b749b4317149ae51c71d36b89ee8e3fa..870c330f0ba596072af4ed4437fd08ed081b027b 100644 (file)
@@ -21,7 +21,7 @@
 <unit id="org.eclipse.equinox.sdk.feature.group" version="3.7.1.R37x_v20110907-7M7W8i8eNV4WsRkue-4Vq4J6pCyW"/>\r
 <unit id="org.eclipse.zest.sdk.feature.group" version="1.3.0.v20110425-2050-67C18COMPIAKSVKGQaRTQTiSN8WP"/>\r
 <unit id="org.eclipse.pde.feature.group" version="3.7.2.v20120120-1420-7b7rFUOFEx2Xnqafnpz0E--0"/>\r
-<repository location="http://download.eclipse.org/releases/indigo"/>\r
+<repository location="http://download.eclipse.org/releases/indigo/"/>
 </location>\r
 <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">\r
 <unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.201409040043"/>\r
diff --git a/pom.xml b/pom.xml
index 739f758f77a63a9a9c600320c11a4eb81a07f9a0..4e257b35993edf80700df3c5285d117455bdffe9 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
   </prerequisites>
   <groupId>eu.etaxonomy</groupId>
   <artifactId>taxeditor-parent</artifactId>
-  <version>4.2.0-SNAPSHOT</version>
+  <version>4.4.0-SNAPSHOT</version>
   <name>EDIT Taxonomic Editor</name>
   <description>The Taxonomic Editor for EDIT's platform for
     cybertaxonomy
   <properties>
     <java.codelevel>1.7</java.codelevel>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <cdmlib.version>4.2.0-SNAPSHOT</cdmlib.version>
+    <cdmlib.version>4.4.0-SNAPSHOT</cdmlib.version>
     <!-- TODO can we use project.version ????? -->
     <tycho.version>0.22.0</tycho.version>
-    <taxeditor.version>4.2.0-SNAPSHOT</taxeditor.version>
+    <taxeditor.version>4.4.0-SNAPSHOT</taxeditor.version>
     <update.dir>snapshot</update.dir>
     <unitils.version>3.4.2</unitils.version>
     <log4j.version>1.2.17</log4j.version>
-    <!-- data base driver related properties -->
-    <mysql.version>5.1.38</mysql.version>
-    <h2.version>1.4.190</h2.version>
-    <!-- 
-      IMPORTANT!!!
-      c3p0.version must exactly match the version as 
-      set in cdmlib-parent pom.xml
-    -->
-    <c3p0.version>0.9.5.2</c3p0.version>
-    <!-- mchange-commons-java needs to match the version as defined in the c3p0/pom.xml -->
-    <mchange-commons-java.version>0.2.11</mchange-commons-java.version>
   </properties>
   <modules>
     <module>eu.etaxonomy.taxeditor.cdmlib</module>
     <repository>
       <id>eclipse-nebula</id>
       <layout>p2</layout>
-      <url>http://download.eclipse.org/technology/nebula/archives/Q32014/release/
-      </url>
+      <url>http://archive.eclipse.org/nebula/Q32014/release/</url>
     </repository>
     <repository>
       <id>eclipse-swtbot</id>
       <layout>p2</layout>
-      <url>http://download.eclipse.org/releases/indigo</url>
+      <url>http://download.eclipse.org/releases/indigo/</url>
     </repository>
   </repositories>
   <build>