eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif -text
eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif -text
eu.etaxonomy.taxeditor.application/icons/256color_48x48.ico -text
+eu.etaxonomy.taxeditor.application/icons/check.png -text
eu.etaxonomy.taxeditor.application/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.application/icons/specimen_derivate-16x16-32.png -text
eu.etaxonomy.taxeditor.application/plugin.xml -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/SaveHandler.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/TaxonomicEditorPlugin.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/BulkEditing.java -text
+eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/ChecklistPerspective.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Default.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/DerivatePerspective.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/PolytomousKey.java -text
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorViewerConfiguration.java -text
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorConstants.java -text
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortProvider.java -text
-eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/PropertyTester.java -text
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorPropertyTester.java -text
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DeleteObjectContributionItem.java -text
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicMarkerTypeEditingMenu.java -text
eu.etaxonomy.taxeditor.editor/build.properties -text
eu.etaxonomy.taxeditor.editor/icons/address-book-new.png -text
eu.etaxonomy.taxeditor.editor/icons/camera-photo.png -text
+eu.etaxonomy.taxeditor.editor/icons/check.png -text
+eu.etaxonomy.taxeditor.editor/icons/deep-delete-16x16-32.png -text
eu.etaxonomy.taxeditor.editor/icons/derivate_view-16x16-32.png -text
eu.etaxonomy.taxeditor.editor/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.editor/icons/emblem-photos.png -text
eu.etaxonomy.taxeditor.editor/pom.xml -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmDataTransfer.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/ChooseFromMultipleTaxonNodesDialog.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorCdmViewer.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorStateManager.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/IDropTargetable.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenChecklistEditorHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenDerivateViewHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenParentHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenTaxonEditorHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveAllHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveTaxonHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/TaxonParameterConverter.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleInsertOverwriteHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleLeftRightInsertionHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewNameHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonBaseOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveSynonymToAnotherAcceptedTaxonOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/RemoveHomotypicalGroupBasionymOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/validation/MarkerManager.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/validation/ValidationContextListener.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/validation/ValidationDaemon.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistContentProvider.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditor.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorComparator.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientReferenceService.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTermService.java -text
-eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDragListener.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/DerivateViewContextMenu.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/SingleReadSequenceContextMenu.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/DeleteDerivateHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivateEditorForTaxonHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/operation/DeleteDerivateOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateSpecimenDescriptionOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateTaxonDescriptionOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteDescriptionElementOperation.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteSpecimenDescriptionOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteTaxonDescriptionOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/EditInXper2Handler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/MoveDescriptionElementsOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateTaxonUseOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseRecordOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseSummaryOperation.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/EntityClassMarkerField.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/EntityIdMarkerField.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/InvalidValueMarkerField.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/UserFriendlyDescriptionMarkerField.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/UserFriendlyFieldNameMarkerField.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/UserFriendlyTypeNameMarkerField.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/ValidationProblemsView.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/ValidatorClassMarkerField.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/validation/ValidatorMessageMarkerField.java -text
eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1 -text
eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1 -text
eu.etaxonomy.taxeditor.editor/src/main/resources/TaonDescriptionEditor.screen -text
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_de.properties -text
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_en.properties -text
eu.etaxonomy.taxeditor.navigation/build.properties -text
+eu.etaxonomy.taxeditor.navigation/icons/check.png -text
eu.etaxonomy.taxeditor.navigation/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.navigation/icons/preferences-system-windows.png -text
eu.etaxonomy.taxeditor.navigation/icons/system-search.png -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CopyHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/EditHandler.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveFactualDataHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxonHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/NewClassificationHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/NewTaxonNodeHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/RefreshTreeHandler.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/TaxonParameterConverter.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/ChangeAcceptedTaxonToSynonymOperation.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/CopyOperation.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java -text
eu.etaxonomy.taxeditor.store/p2.inf -text
eu.etaxonomy.taxeditor.store/plugin.xml -text
eu.etaxonomy.taxeditor.store/pom.xml -text
+eu.etaxonomy.taxeditor.store/schema/eu.etaxonomy.taxeditor.store.cdmViewer.exsd -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceCredentialsWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceH2WizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractExcelImportWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractExportWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractImportWizard.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ClassificationChooserWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvExportWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/DarwinCoreArchiveExportWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/EndnoteImportWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ICdmEditorHandle.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IContextListener.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDataChangeBehavior.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDerivedUnitFacadePart.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkable.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IElementHasDetails.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IPartChangeListener.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TextHelper.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TimeHelper.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AbstractNewEntityWizard.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGelPhotoWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/ExternalReferenceServiceWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferences.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultLanguageEditorPreferencePage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureTreePreferences.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageRepresentationPreferencePage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/MatchingPreferences.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/MediaPreferences.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/MobotOpenUrlPreferences.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/DefaultLanguageDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/LoginDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/UriDialog.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteConfiguratorComposite.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteConfiguratorDialog.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteSpecimenConfiguratorComposite.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/deleteConfigurator/DeleteTaxonConfiguratorComposite.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AgentSelectionDialog.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/AbstractCdmComposite.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/DerivedUnitGeneralDetailElementMVC.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/GeographicPointElement.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/OriginalLabelDataField.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/combo/EnumTermCombo.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/combo/EnumTermComboController.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/element/DateElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupSelectionElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/MemberDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/MemberDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/identifier/IdentifierDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/GeographicalScopeDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseWizardPage.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralWizardPage.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SourceCollectionDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenHierarchyDetailElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenHierarchyDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenAbstractDeterminationEventDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenCurrentDeterminationDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmEditorViewPart.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractSplitableViewPart.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/ICdmViewer.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceContentProvider.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceLabelProvider.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewPart.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/DeleteDataSourceHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/EditDataSourceHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/UpdateDataSourceHandler.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateContentProvider.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchComposite.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchCompositeController.java -text
Bundle-ManifestVersion: 2
Bundle-Name: Application
Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 3.4.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/plugin
plugin_customization.ini,\
icons/,\
OSGI-INF/l10n/plugin.properties,\
- splash.bmp,\
OSGI-INF/l10n/plugin_de.properties,\
- OSGI-INF/l10n/plugin_en.properties
+ OSGI-INF/l10n/plugin_en.properties,\
+ splash.bmp,\
id="eu.etaxonomy.taxeditor.application.perspective.derivates"\r
name="%perspective.name.2">\r
</perspective>\r
+ <perspective\r
+ class="eu.etaxonomy.taxeditor.perspective.ChecklistPerspective"\r
+ icon="icons/check.png"\r
+ id="eu.etaxonomy.taxeditor.perspective.checklistperspective"\r
+ name="Checklist">\r
+ </perspective>\r
\r
</extension>\r
<!--extension\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
/**
* Prefix to declare the version as beta
*/
- private static final String BETA_PREFIX = "[BETA]";
+ private static final String BETA_PREFIX = "[Beta]";
/**
* @return
// leading to a recursive infinite loop of :
// initial exception thrown -> status handling -> dialog opening + logging of status ->
// status handling -> dialog opening + logging of status ... and so on
- if(t != null && t instanceof RuntimeException) {
+ if(t != null && t instanceof RuntimeException && !t.getMessage().equals("Widget is disposed")) {
MessagingUtils.errorDialog("Unexpected error",
null,
MessagingUtils.UNEXPECTED_ERROR_MESSAGE,
statusAdapter.getStatus().getPlugin(),
t,
true);
- }
+ }
}
}
}
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.dialog.LoginDialog;
configurer.setShowPerspectiveBar(true);
configurer.setTitle("EDIT Taxonomic Editor " + ApplicationUtil.getVersion());
configurer.setShowProgressIndicator(true);
+
+ CdmDataSourceRepository.createDefaultH2DataSource();
}
/**
public void postWindowOpen() {
PreferencesUtil.checkNomenclaturalCode();
+
+
if(PreferencesUtil.shouldConnectAtStartUp()) {
CdmStore.connect();
}
--- /dev/null
+// $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.perspective;
+
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
+import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
+import eu.etaxonomy.taxeditor.navigation.search.SearchResultView;
+import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
+import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
+import eu.etaxonomy.taxeditor.editor.view.concept.ConceptViewPart;
+
+/**
+ * @author a.oppermann
+ * @created Nov 18, 2014
+ * @version 1.0
+ */
+public class ChecklistPerspective extends Default {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui
+ * .IPageLayout)
+ */
+ @Override
+ public void createInitialLayout(IPageLayout layout) {
+ IFolderLayout navigationFolder = layout.createFolder("navigation",
+ IPageLayout.LEFT, 0.25f, layout.getEditorArea());
+
+ navigationFolder.addView(TaxonNavigator.ID);
+ navigationFolder.addPlaceholder(SearchResultView.ID + ":*");
+
+ layout.addView(CdmDataSourceViewPart.ID, IPageLayout.BOTTOM, 0.6f, TaxonNavigator.ID);
+ IFolderLayout folder = layout.createFolder("Folder", IPageLayout.BOTTOM, 0.6f, layout.getEditorArea());
+ folder.addView(DescriptiveViewPart.ID);
+ folder.addView(DetailsViewPart.ID);
+ folder.addView(ConceptViewPart.ID);
+// folder.addView(MediaViewPart.ID);
+
+// createAdditionalFolder(layout, layout.getEditorArea());
+ }
+}
Bundle-ManifestVersion: 2
Bundle-Name: Bulkeditor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 3.4.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
<menu\r
id="bulkeditor.menus.openmenu"\r
label="%menu.label">\r
+ <visibleWhen\r
+ checkEnabled="true">\r
+ <reference\r
+ definitionId="isCdmStoreConnected">\r
+ </reference>\r
+ </visibleWhen>\r
</menu>\r
<menu\r
label="%menu.label.0">\r
+ <visibleWhen\r
+ checkEnabled="true">\r
+ <reference\r
+ definitionId="isCdmStoreConnected">\r
+ </reference>\r
+ </visibleWhen>\r
</menu>\r
</menuContribution>\r
<menuContribution\r
<dynamic\r
class="eu.etaxonomy.taxeditor.bulkeditor.command.OpenBulkEditorContributionItem"\r
id="taxeditor-bulkeditor.dynamicopenmenu">\r
+ <visibleWhen\r
+ checkEnabled="true">\r
+ <reference\r
+ definitionId="isCdmStoreConnected">\r
+ </reference>\r
+ </visibleWhen>\r
</dynamic>\r
<!--command\r
commandId="taxeditor-nameeditor.commands.open"\r
</menuContribution>\r
<menuContribution\r
locationURI="popup:#BulkEditorContext">\r
+ <command\r
+ commandId="eu.etaxonomy.taxeditor.navigation.command.update.editSelection"\r
+ label="Edit"\r
+ style="push">\r
+ <visibleWhen>\r
+ <reference\r
+ definitionId="isTaxonBulkEditorInput">\r
+ </reference>\r
+ </visibleWhen>\r
+ </command>\r
+ <separator\r
+ name="taxeditor-bulkeditor.separator1"\r
+ visible="true">\r
+ </separator>\r
<menu\r
label="%menu.label.1">\r
<dynamic\r
class="eu.etaxonomy.taxeditor.bulkeditor.command.DynamicNewObjectMenu"\r
id="eu.etaxonomy.taxeditor.bulkeditor.dynamicNewMenu">\r
+ <visibleWhen\r
+ checkEnabled="false">\r
+ <reference\r
+ definitionId="isCdmStoreConnected">\r
+ </reference>\r
+ </visibleWhen>\r
</dynamic>\r
+ <visibleWhen\r
+ checkEnabled="true">\r
+ <reference\r
+ definitionId="isCdmStoreConnected">\r
+ </reference>\r
+ </visibleWhen>\r
</menu>\r
<separator\r
- name="taxeditor-bulkeditor.separator1"\r
- visible="true">\r
+ name="eu.etaxonomy.taxeditor.bulkeditor.separator1">\r
</separator>\r
<command\r
commandId="bulkeditor.commands.setmergetarget"\r
class="eu.etaxonomy.taxeditor.bulkeditor.command.DynamicMarkerTypeEditingMenu"\r
id="eu.etaxonomy.taxeditor.bulkeditor.dynamicMarkerTypeEditingMenu">\r
</dynamic>\r
+ <visibleWhen\r
+ checkEnabled="true">\r
+ <reference\r
+ definitionId="isCdmStoreConnected">\r
+ </reference>\r
+ </visibleWhen>\r
</menu>\r
<separator\r
name="taxeditor-bulkeditor.separator3"\r
visible="true">\r
</separator>\r
<command\r
- commandId="org.eclipse.ui.edit.delete"\r
+ commandId="eu.etaxonomy.taxeditor.bulkeditor.delete"\r
label="Delete"\r
style="push">\r
- </command>\r
- </menuContribution>\r
- <menuContribution\r
- allPopups="false"\r
- locationURI="popup:#DataImportEditorContext">\r
- <command\r
- commandId="eu.etaxonomy.taxeditor.bulkeditor.saveSpecimen"\r
- label="Save Specimen"\r
- style="push">\r
+ <visibleWhen\r
+ checkEnabled="true">\r
+ <reference\r
+ definitionId="isCdmStoreConnected">\r
+ </reference>\r
+ </visibleWhen>\r
</command>\r
</menuContribution>\r
</extension>\r
id="taxeditor-bulkeditor.command.setMarkerFlag"\r
name="Set Marker Flag">\r
</command>\r
+ <command\r
+ id="eu.etaxonomy.taxeditor.bulkeditor.delete"\r
+ name="delete">\r
+ </command>\r
<!--command\r
defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.NewEntityHandler"\r
id="eu.etaxonomy.taxeditor.bulkeditor.command.new"\r
</test>\r
</with>\r
</definition>\r
+ <definition\r
+ id="isTaxonBulkEditorInput">\r
+ <with\r
+ variable="activeEditor">\r
+ <test\r
+ property="taxeditor-bulkeditor.propertyTester.isTaxonEditor">\r
+ </test>\r
+ </with>\r
+ </definition>\r
</extension>\r
<extension\r
point="org.eclipse.core.expressions.propertyTesters">\r
class="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorPropertyTester"\r
id="taxeditor-bulkeditor.PropertyTester"\r
namespace="taxeditor-bulkeditor.propertyTester"\r
- properties="isMergingEnabled"\r
- type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">\r
- </propertyTester>\r
- <propertyTester\r
- class="eu.etaxonomy.taxeditor.bulkeditor.PropertyTester"\r
- id="eu.etaxonomy.taxeditor.bulkeditor.propertyTester"\r
- namespace="eu.etaxonomy.taxeditor.bulkeditor.propertyTester"\r
- properties="isDerivedUnitEditor"\r
+ properties="isMergingEnabled, isDerivedUnitEditor, isTaxonEditor, isGroupEditor"\r
type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">\r
</propertyTester>\r
</extension>\r
</handler>\r
<handler\r
class="eu.etaxonomy.taxeditor.bulkeditor.handler.DeleteHandler"\r
- commandId="org.eclipse.ui.edit.delete">\r
+ commandId="eu.etaxonomy.taxeditor.bulkeditor.delete">\r
<activeWhen>\r
<with\r
variable="selection">\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IViewPart;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.texteditor.ITextEditorActionConstants;
import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineDocumentProvider;
import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.ReferencingObjectsView;
+import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
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.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @version 1.0
*/
public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDetails,
- IDirtyMarkable {
+ IDirtyMarkable, IDerivedUnitFacadePart, IPartContentHasFactualData, IPartContentHasMedia {
/** Constant <code>ID="bulkeditor.editor"</code> */
public static final String ID = "bulkeditor.editor";
super.dispose();
}
+
/* (non-Javadoc)
* @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#isEditable()
*/
/** {@inheritDoc} */
@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
@Override
public void doSave(IProgressMonitor progressMonitor) {
isDirty = false;
+
super.doSave(progressMonitor);
+
+ selectFirstItem();
+
+ getSourceViewer().getTextWidget().setFocus();
+
}
/** {@inheritDoc} */
package eu.etaxonomy.taxeditor.bulkeditor;
+import java.util.ArrayList;
import java.util.Comparator;
+import java.util.List;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.config.IdentifiableServiceConfiguratorFactory;
public BulkEditorQuery (String searchString, Comparator comparator) {
this.searchString = searchString;
this.comparator = comparator;
-
+ List<String> propertyPath = new ArrayList<String>();
+ propertyPath.add("markers");
searchConfigurator = IdentifiableServiceConfiguratorFactory.getConfigurator(IdentifiableEntity.class);
searchConfigurator.setTitleSearchString(searchString);
searchConfigurator.setMatchMode(null);
+ searchConfigurator.setPropertyPaths(propertyPath);
if(searchString != null && searchString.trim().equals("*")){
searchConfigurator.setPageSize(1000);
+++ /dev/null
-
-package eu.etaxonomy.taxeditor.bulkeditor;
-
-import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
-
-public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
-
- public static final String IS_DERIVED_UNIT_EDITOR = "isDerivedUnitEditor";
-
- @Override
- public boolean test(Object receiver, String property, Object[] args,
- Object expectedValue) {
-
- BulkEditor editor = (BulkEditor) receiver;
-
- if(IS_DERIVED_UNIT_EDITOR.equals(property)){
- return editor.getEditorInput() instanceof OccurrenceEditorInput;
- }
-
- return false;
- }
-
-}
// $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.
*/
import org.apache.log4j.Logger;
import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorInput;
-import eu.etaxonomy.cdm.model.common.Group;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
import eu.etaxonomy.taxeditor.bulkeditor.input.GroupEditorInput;
import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
-import eu.etaxonomy.taxeditor.ui.section.description.DerivedUnitElement;
+import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
/**
* <p>BulkEditorPropertyTester class.</p>
* @version 1.0
*/
public class BulkEditorPropertyTester extends PropertyTester {
- private static final Logger logger = Logger
+
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger
.getLogger(BulkEditorPropertyTester.class);
- private static final String GROUP = "isGroup";
- private static final String DERIVEDUNIT = "isDerivedUnit";
+ private static final String IS_MERGING_ENABLED = "isMergingEnabled";
+
+ private static final String IS_GROUP_EDITOR = "isGroupEditor";
+ public static final String IS_DERIVED_UNIT_EDITOR = "isDerivedUnitEditor";
+ public static final String IS_TAXON_EDITOR = "isTaxonEditor";
+
/* (non-Javadoc)
* @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
*/
/** {@inheritDoc} */
- public boolean test(Object receiver, String property, Object[] args,
+ @Override
+ public boolean test(Object receiver, String property, Object[] args,
Object expectedValue) {
BulkEditor bulkEditor = (BulkEditor) receiver;
-
- if ("isMergingEnabled".equals(property)) {
+
+ if (IS_MERGING_ENABLED.equals(property)) {
IEditorInput input = bulkEditor.getEditorInput();
if (input instanceof AbstractBulkEditorInput) {
- return ((AbstractBulkEditorInput) input).isMergingEnabled();
- }
+ return ((AbstractBulkEditorInput<?>) input).isMergingEnabled();
+ }
}
- if(GROUP.equals(property)){
- return isGroup(bulkEditor);
+ else if(IS_GROUP_EDITOR.equals(property)){
+ return bulkEditor.getEditorInput() instanceof GroupEditorInput;
}
-
- if (DERIVEDUNIT.equals(property)){
-
- return isDerivedUnit(bulkEditor);
+ else if (IS_DERIVED_UNIT_EDITOR.equals(property)){
+ return bulkEditor.getEditorInput() instanceof OccurrenceEditorInput;
}
+ else if(IS_TAXON_EDITOR.equals(property)){
+ return bulkEditor.getEditorInput() instanceof TaxonEditorInput;
+ }
// if (("isPublishFlagEditingEnabled").equals(property)) {
// IEditorInput input = bulkEditor.getEditorInput();
// if (input instanceof NameEditorInput) {
// }
return false;
}
-
- private boolean isDerivedUnit(BulkEditor bulkEditor) {
- IEditorInput input = bulkEditor.getEditorInput();
- return (input instanceof OccurrenceEditorInput) ? true : false;
- }
-
- private boolean isGroup(BulkEditor bulkEditor) {
- IEditorInput input = bulkEditor.getEditorInput();
- return (input instanceof GroupEditorInput) ? true : false;
- }
}
package eu.etaxonomy.taxeditor.bulkeditor.handler;
+import java.util.Iterator;
+import java.util.Set;
import java.util.UUID;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IViewReference;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.ui.texteditor.IDocumentProvider;
+import org.eclipse.ui.IWorkbenchPage;
import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.IAgentService;
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.NameDeletionConfigurator;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dao.hibernate.HibernateBeanInitializer;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
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.referencingobjects.ReferencingObjectsView;
+
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
+
/**
* @author n.hoffmann
* @created Mar 11, 2011
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES)){
- ISelection selection = HandlerUtil.getCurrentSelection(event);
+ ISelection selection = HandlerUtil.getCurrentSelection(event);
+
+ IEditorPart editor = HandlerUtil.getActiveEditor(event);
+
+ IEditorInput input = editor.getEditorInput();
+
+ if((input instanceof IEntityPersistenceService) && (selection instanceof IStructuredSelection)){
- IEditorPart editor = HandlerUtil.getActiveEditor(event);
- IEditorInput input = editor.getEditorInput();
+ IDocumentProvider provider = ((BulkEditor) editor).getDocumentProvider();
+ LineAnnotationModel model =
+ (LineAnnotationModel) provider.getAnnotationModel(input);
- if((input instanceof IEntityPersistenceService) && (selection instanceof IStructuredSelection)){
-
-
- IDocumentProvider provider = ((BulkEditor) editor).getDocumentProvider();
- LineAnnotationModel model =
- (LineAnnotationModel) provider.getAnnotationModel(input);
-
-
- IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
- IEntityPersistenceService persistenceService = (IEntityPersistenceService) input;
+
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+
+ IEntityPersistenceService persistenceService = (IEntityPersistenceService) input;
+
+
+ for(Object object : structuredSelection.toList()){
- for(Object object : structuredSelection.toList()){
-
- LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
- DeleteResult result = new DeleteResult();
- //result.setError();
- try {
- ICdmApplicationConfiguration controller;
- controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
- //persistenceService.delete(object);
- if (object instanceof SpecimenOrObservationBase){
-
- IOccurrenceService service = controller.getOccurrenceService();
- service.load(((SpecimenOrObservationBase) object).getUuid());
- result = service.delete((SpecimenOrObservationBase)object);
- } else if (object instanceof Reference){
- IReferenceService service = controller.getReferenceService();
- service.load(((Reference) object).getUuid());
- result = service.delete((Reference)object);
- } else if (object instanceof Group){
- IGroupService service = controller.getGroupService();
- service.load(((Group) object).getUuid());
- result = service.delete((Group) object);
- }else if (object instanceof User){
- IUserService service = controller.getUserService();
- service.load(((User) object).getUuid());
- result = service.delete((User) object);
- } else if (object instanceof TaxonNameBase){
- INameService service = controller.getNameService();
- service.load(((TaxonNameBase) object).getUuid());
- result = service.delete((TaxonNameBase)object);
- } else if (object instanceof TaxonBase){
- ITaxonService service = controller.getTaxonService();
- service.load(((TaxonBase) object).getUuid());
- if (object instanceof Taxon){
- result = service.deleteTaxon((Taxon)object, null, null);
- }else{
- result = service.deleteSynonym((Synonym)object, null);
- }
- } else if (object instanceof TeamOrPersonBase){
- IAgentService service = controller.getAgentService();
- object = service.load(((TeamOrPersonBase) object).getUuid());
- result = service.delete((TeamOrPersonBase)object);
- }
- } catch (Exception e){
- MessagingUtils.messageDialog("Exception occured. Could not delete", getClass(), e.getMessage(), null);
- }
- if (result.isError()){
- if (!result.getExceptions().isEmpty()) {
- MessagingUtils.messageDialog("Could not delete", getClass(), result.getExceptions().get(0).getMessage(), null);
+ LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
+ DeleteResult result = new DeleteResult();
+ //result.setError();
+ try {
+ ICdmApplicationConfiguration controller;
+ controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
+ //persistenceService.delete(object);
+ if (object instanceof SpecimenOrObservationBase){
+
+ IOccurrenceService service = controller.getOccurrenceService();
+ service.load(((SpecimenOrObservationBase) object).getUuid());
+ result = service.delete((SpecimenOrObservationBase)object);
+ } else if (object instanceof Reference){
+ IReferenceService service = controller.getReferenceService();
+ service.load(((Reference) object).getUuid());
+ result = service.delete((Reference)object);
+ } else if (object instanceof Group){
+ IGroupService service = controller.getGroupService();
+ service.load(((Group) object).getUuid());
+ result = service.delete((Group) object);
+ }else if (object instanceof User){
+ IUserService service = controller.getUserService();
+ service.load(((User) object).getUuid());
+ result = service.delete((User) object);
+ } else if (object instanceof TaxonNameBase){
+ INameService service = controller.getNameService();
+ TaxonNameBase name = service.load(((TaxonNameBase) object).getUuid());
+ NameDeletionConfigurator config = new NameDeletionConfigurator();
+
+ result = service.delete(name, config);
+ } else if (object instanceof TaxonBase){
+ ITaxonService service = controller.getTaxonService();
+ service.load(((TaxonBase) object).getUuid());
+ if (object instanceof Taxon){
+ result = service.deleteTaxon((Taxon)object, null, null);
}else{
- MessagingUtils.messageDialog("Could not delete", getClass(), "The object could not be deleted. An exception occured.", null);
-
+ result = service.deleteSynonym((Synonym)object, null);
}
+ } else if (object instanceof TeamOrPersonBase){
+ IAgentService service = controller.getAgentService();
+ object = service.load(((TeamOrPersonBase) object).getUuid());
+ result = service.delete((TeamOrPersonBase)object);
}
- if (result.isOk()){
- ((BulkEditor) editor).removeAnnotatedLine(annotation);
+ } catch (Exception e){
+ MessagingUtils.messageDialog("Exception occured. Could not delete", getClass(), e.getMessage(), null);
+ }
+ if (result.isError() || result.isAbort()){
+ if (!result.getExceptions().isEmpty()) {
+ MessagingUtils.messageDialog("Could not delete", getClass(), result.getExceptions().toString(), null);
+ }else{
+ MessagingUtils.messageDialog("Could not delete", getClass(), "The object could not be deleted. An exception occured.", null);
- System.out.println("Test");
}
- }
- }
- }else{
- MessagingUtils.warningDialog("Feature not enabled", getClass(), "Deletion is currently an experimental feature." +
- "Enable it via Preferences at your own risk.");
+ }
+ if (result.isOk() ){
+ ((BulkEditor) editor).removeAnnotatedLine(annotation);
+ if(result.getUpdatedObjects().size() != 0 && !result.getExceptions().isEmpty()){
+ MessagingUtils.informationDialog("Delete successfull", "The object is deleted but there are updated objects: " + result.toString());
+ }
+
+ }
+
+ }
}
-
+
return null;
}
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;
import org.eclipse.ui.IPersistableElement;
import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.ICdmBase;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.strategy.merge.IMergable;
import eu.etaxonomy.cdm.strategy.merge.MergeException;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
private List<T> model;
private IEntityCreator<T> entityCreator;
+
+ private static Class serviceClass;
/**
* <p>NewInstance</p>
* @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
*/
static public AbstractBulkEditorInput NewInstance(BulkEditorInputType inputType) {
+
return BulkEditorInputType.getInput(inputType);
}
* @param entityUuid a {@link java.util.UUID} object.
* @return a T object.
*/
- protected abstract T loadEntity(UUID entityUuid);
+ protected T loadEntity(UUID entityUuid) {
+ List<String> propertyPaths = Arrays.asList(new String[]{});
+ return (T) CdmStore.getService(serviceClass).load(entityUuid, propertyPaths);
+ }
private void setEntityUuid(UUID entityUuid){
this.entityUuid = entityUuid;
if(getEntityUuid() != null){
- T entity = loadEntity(getEntityUuid());
+ T entity = (T) loadEntity(getEntityUuid());
entityList.add(entity);
model = entityList;
}
entityList = listEntities(configurator);
Collections.sort(entityList, queryComparator);
+
}
return CdmStore.getSearchManager().findTeamOrPersons(configurator);
}
- /** {@inheritDoc} */
+ /** {@inheritDoc}
@Override
public AgentBase loadEntity(UUID uuid) {
List<String> propertyPaths = Arrays.asList(new String[]{});
return CdmStore.getService(IAgentService.class).load(uuid, propertyPaths);
- }
+ }*/
public boolean delete(AgentBase entity) throws ReferencedObjectUndeletableException {
/** {@inheritDoc} */
public boolean save(AgentBase entity) {
+
return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
}
import org.eclipse.ui.menus.CommandContributionItem;
import org.eclipse.ui.menus.CommandContributionItemParameter;
+import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.IGroupService;
+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.ReferenceServiceImpl;
+import eu.etaxonomy.cdm.io.dwca.in.INamespaceReader;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.Group;
import eu.etaxonomy.cdm.model.common.User;
"No input class for the given input type defined.");
}
}
+
+ public static Class getServiceClass(
+ BulkEditorInputType inputType) {
+ switch (inputType) {
+ case REFERENCE:
+ return IReferenceService.class;
+ case NAME:
+ return INameService.class;
+ case AGENT:
+ return IAgentService.class;
+ case OCCURRENCE:
+ return IOccurrenceService.class;
+ case NAME_RELATIONSHIP:
+ return INameService.class;
+ case USER:
+ return IUserService.class;
+ case GROUP:
+ return IGroupService.class;
+ case TAXON:
+ return ITaxonService.class;
+ default:
+ throw new IllegalStateException(
+ "No input class for the given input type defined.");
+ }
+ }
}
\ No newline at end of file
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#loadEntity(java.util.UUID)
- */
+
@Override
protected Group loadEntity(UUID entityUuid) {
List<String> propertyPaths = Arrays.asList(new String[]{});
return CdmStore.getService(IGroupService.class).load(entityUuid, propertyPaths);
}
-
+*/
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
*/
return CdmStore.getSearchManager().findNames(configurator);
}
- /** {@inheritDoc} */
+ /** {@inheritDoc}
@Override
public TaxonNameBase loadEntity(UUID uuid) {
List<String> propertyPaths = Arrays.asList(new String[]{});
return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
}
-
+*/
/** {@inheritDoc}
**/
public boolean delete(TaxonNameBase entity) {
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#loadEntity(java.util.UUID)
*/
- /** {@inheritDoc} */
+ /** {@inheritDoc}
@Override
protected SpecimenOrObservationBase loadEntity(UUID entityUuid) {
List<String> propertyPaths = Arrays.asList(new String[]{});
return CdmStore.getService(IOccurrenceService.class).load(entityUuid, propertyPaths);
- }
+ }*/
/* (non-Javadoc)
* @see org.eclipse.ui.IEditorInput#getName()
package eu.etaxonomy.taxeditor.bulkeditor.input;\r
\r
+import java.util.ArrayList;\r
import java.util.Arrays;\r
import java.util.List;\r
import java.util.UUID;\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.exception.ReferencedObjectUndeletableException;\r
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
/** Constant <code>ID="bulkeditor.input.taxon"</code> */\r
public static final String ID = "bulkeditor.input.taxon";\r
\r
+ \r
+ \r
/**\r
* <p>Getter for the field <code>instance</code>.</p>\r
*\r
if (instance == null) {\r
instance = new TaxonEditorInput();\r
}\r
+ \r
return instance;\r
}\r
\r
IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<TaxonBase>();\r
newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());\r
newConfig.setMatchMode(MatchMode.ANYWHERE);\r
- \r
- return CdmStore.getSearchManager().findTaxa(configurator);\r
+ List<TaxonBase> taxa = CdmStore.getSearchManager().findTaxa(configurator);\r
+ List<TaxonBase> taxaCopy = new ArrayList<TaxonBase>();\r
+ for (TaxonBase taxon:taxa){\r
+ \r
+ if (taxon instanceof Taxon){\r
+ taxaCopy.add(HibernateProxyHelper.deproxy(taxon, Taxon.class));\r
+ }else{\r
+ taxaCopy.add(HibernateProxyHelper.deproxy(taxon, Synonym.class));\r
+ }\r
+ }\r
+ return taxaCopy;\r
}\r
\r
\r
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#loadEntity(java.util.UUID)
- */
+
@Override
protected User loadEntity(UUID entityUuid) {
List<String> propertyPaths = Arrays.asList(new String[]{});
return CdmStore.getService(IUserService.class).load(entityUuid, propertyPaths);
}
-
+ */
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
*/
/** {@inheritDoc} */
public TaxonNameBase createEntity(String text) {
TaxonNameBase name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null);
- name.setTitleCache(text);
+ name.setTitleCache(text, true);
+ //name.setTitleCache(text);
return name;
}
// $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.
*/
* @see eu.etaxonomy.taxeditor.bulkeditor.IEntityCreator#createEntity(java.lang.String)
*/
/** {@inheritDoc} */
- public Reference createEntity(String text) {
+ @Override
+ public Reference createEntity(String text) {
return createEntity(Reference.class, text);
}
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.Class, java.lang.String)
*/
/** {@inheritDoc} */
- public Reference createEntity(Object key, String text) {
+ @Override
+ public Reference createEntity(Object key, String text) {
Reference reference = null;
-
+
// TODO replace w more generic method when cdmlib matures accordingly
if (ReferenceType.Article.getMessage().equals(key)) {
reference = ReferenceFactory.newArticle();
if (ReferenceType.WebPage.getMessage().equals(key)) {
reference = ReferenceFactory.newWebPage();
}
+ if (ReferenceType.Section.getMessage().equals(key)) {
+ reference = ReferenceFactory.newSection();
+ }
if (reference == null) {
MessagingUtils.warn(getClass(), "Reference type " + key + " not found. Creating reference with default type.");
reference = ReferenceFactory.newGeneric();
*
* @return a {@link java.util.Map} object.
*/
- public Map<Object, String> getKeyLabelPairs() {
+ @Override
+ public Map<Object, String> getKeyLabelPairs() {
Map<Object, String> result = new HashMap<Object, String>();
for (ReferenceType type : ReferenceType.values()) {
result.put(type.getMessage(), type.getMessage());
nameCreator = new NameCreator();\r
}\r
if (Synonym.class.equals(key)){\r
- taxonBase = Synonym.NewInstance(nameCreator.createEntity(text), null);\r
+ taxonBase = Synonym.NewInstance(nameCreator.createEntity(null, text), null);\r
} else{\r
- taxonBase = Taxon.NewInstance(nameCreator.createEntity(text), null);\r
+ taxonBase = Taxon.NewInstance(nameCreator.createEntity(null, text), null);\r
}\r
\r
return taxonBase;\r
// $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.
*/
import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.TermStore;
/**
@Override
public void init(IWorkbench workbench) {
setPreferenceStore(PreferencesUtil.getPreferenceStore());
- markerTypeEditingMap = PreferencesUtil.getEditMarkerTypePreferences();
+ if(!CdmStore.isActive()) {
+ MessagingUtils.noDataSourceWarningDialog(null);
+ }else{
+ markerTypeEditingMap = PreferencesUtil.getEditMarkerTypePreferences();
+ }
}
/* (non-Javadoc)
protected Control createContents(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
container.setLayout(new GridLayout());
+ if(CdmStore.isActive()){
+ for (final MarkerType markerType : TermStore.getTerms(MarkerType.class)) {
+ final Button button = new Button(container, SWT.CHECK);
+ button.setText(String.format("Edit '%s' markers", markerType.getLabel()));
- for (final MarkerType markerType : TermStore.getTerms(MarkerType.class)) {
- final Button button = new Button(container, SWT.CHECK);
- button.setText(String.format("Edit '%s' markers", markerType.getLabel()));
-
- button.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- markerTypeEditingMap.put(markerType, button.getSelection());
- }
- });
-
- boolean edit = markerTypeEditingMap.get(markerType) == null ? true : markerTypeEditingMap.get(markerType);
-
- button.setSelection(edit);
- }
-
+ button.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ markerTypeEditingMap.put(markerType, button.getSelection());
+ }
+ });
+
+ boolean edit = markerTypeEditingMap.get(markerType) == null ? true : markerTypeEditingMap.get(markerType);
+
+ button.setSelection(edit);
+ }
+ }
return container;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#performOk()
*/
@Override
public boolean performOk() {
PreferencesUtil.setEditMarkerTypePreferences(markerTypeEditingMap);
-
+
return super.performOk();
}
}
import java.util.Comparator;
import java.util.List;
import java.util.Set;
+import java.util.UUID;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
+
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.INullSelectionListener;
import org.eclipse.ui.ISelectionListener;
+
import org.eclipse.ui.IWorkbenchPart;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.ICommonService;
-import eu.etaxonomy.cdm.api.service.IIdentifiableEntityService;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.api.service.IGroupService;
+
+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.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.common.Group;
+
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
-import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao;
+import eu.etaxonomy.cdm.model.common.User;
+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.TaxonBase;
+
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.model.DescriptionHelper;
import eu.etaxonomy.taxeditor.model.LineSelection;
* @created 08.07.2009
* @version 1.0
*/
-public class ReferencingObjectsView extends AbstractCdmViewPart implements INullSelectionListener{
+public class ReferencingObjectsView extends AbstractCdmViewPart{
private static final Logger logger = Logger
.getLogger(ReferencingObjectsView.class);
private TableViewer viewer;
- private CdmBase referencedObject;
+ private String referencedObjectTitleCache;
+ private ConversationHolder conversation;
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#createViewer(org.eclipse.swt.widgets.Composite)
@Override
public void createViewer(Composite parent) {
selectionService.addSelectionListener(this);
-
+ conversation = CdmStore.createConversation();
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL | SWT.FULL_SELECTION);
createColumns(viewer);
*
* @param entity a {@link eu.etaxonomy.cdm.model.common.IdentifiableEntity} object.
*/
- public void updateReferencingObjects(final IdentifiableEntity entity) {
+ public void updateReferencingObjects(final UUID entityUUID, final Class objectClass) {
final Display display = Display.getCurrent();
- // Job job = new Job("Update Referencing Objects") {
-//
-// @Override
-// protected IStatus run(IProgressMonitor monitor) {
-// monitor.beginTask("Calculating referencing objects", 10);
-//
-// monitor.worked(3);
-//
-// display.asyncExec(new Runnable() {
-//
-// @Override
-// public void run() {
-// ConversationHolder conversation = CdmStore.createConversation();
- List<CdmBase> referencingObjects = getReferencingObjects(entity);
- updateView(referencingObjects);
-// conversation.close();
-// }
-// });
-//
-// monitor.done();
-//
-//
-// return Status.OK_STATUS;
-// }
-// };
-//
-// job.setPriority(Job.DECORATE);
-// job.schedule();
+ Job job = new Job("Update Referencing Objects") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ monitor.beginTask("Calculating referencing objects", 10);
+
+ monitor.worked(3);
+
+ display.asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ if (entityUUID != null){
+
+ List<CdmBase> referencingObjects = getReferencingObjects(entityUUID, objectClass);
+
+ updateView(referencingObjects);
+
+
+ }
+ }
+ });
+
+ monitor.done();
+
+
+ return Status.OK_STATUS;
+ }
+ };
+
+ job.setPriority(Job.DECORATE);
+ job.schedule();
}
- private List<CdmBase> getReferencingObjects(Object entity) {
+ private List<CdmBase> getReferencingObjects(UUID entity, Class objectClass) {
+ CdmBase referencedObject = null;
try {
- if(entity instanceof CdmBase){
- referencedObject = (CdmBase) entity;
- if (referencedObject instanceof AgentBase){
- referencedObject = CdmStore.getService(IAgentService.class).load(referencedObject.getUuid());
- }
+ if (objectClass.getSuperclass().equals(TeamOrPersonBase.class) ){
+ referencedObject = CdmStore.getService(IAgentService.class).load(entity);
+ } else if (objectClass.getSuperclass().equals(TaxonNameBase.class)){
+ referencedObject = CdmStore.getService(INameService.class).load(entity);
+ } else if (objectClass.getSuperclass().equals(TaxonBase.class)){
+ referencedObject = CdmStore.getService(ITaxonService.class).load(entity);
+ } else if (objectClass.equals(Reference.class)){
+ referencedObject = CdmStore.getService(IReferenceService.class).load(entity);
+ } else if (objectClass.getSuperclass().equals(SpecimenOrObservationBase.class)){
+ referencedObject = CdmStore.getService(IOccurrenceService.class).load(entity);
+ } else if (objectClass.isAssignableFrom(User.class)){
+ referencedObject = CdmStore.getService(IUserService.class).load(entity);
+ } else if (objectClass.isAssignableFrom(Group.class)){
+ referencedObject = CdmStore.getService(IGroupService.class).load(entity);
+ }
//referencedObject =(CdmBase) CdmStore.getService(IIdentifiableEntityService.class).load(referencedObject.getUuid());
- Set<CdmBase> setOfReferencingObjects = CdmStore.getService(ICommonService.class).getReferencingObjects(referencedObject);
-
- List<CdmBase> referencingObjects = new ArrayList<CdmBase>(setOfReferencingObjects);
+ Set<CdmBase> setOfReferencingObjects = null;
+
+ if (referencedObject != null){
+ referencedObjectTitleCache = ((IdentifiableEntity)referencedObject).getTitleCache();
+ setOfReferencingObjects = CdmStore.getService(ICommonService.class).getReferencingObjects(referencedObject);
+ }
+ if (setOfReferencingObjects != null){
+ List<CdmBase> referencingObjects = new ArrayList<CdmBase>(setOfReferencingObjects);
+
+ Collections.sort(referencingObjects, new ReferencingClassComparator());
+
+ return referencingObjects;
- Collections.sort(referencingObjects, new ReferencingClassComparator());
-
- return referencingObjects;
}
} catch (Exception e) {
logger.error("Error retrieving referencing objects", e);
*
*/
private void updateView(List<CdmBase> referencingObjects) {
- viewer.setInput(referencingObjects);
- setContentDescription("'" + referencedObject + "' is referenced by:");
- showViewer();
+ if (viewer != null && !viewer.getControl().isDisposed()){
+ viewer.setInput(referencingObjects);
+ if (referencedObjectTitleCache != null){
+ setContentDescription("'" + referencedObjectTitleCache + "' is referenced by:");
+ } else {
+ setContentDescription("");
+ }
+ showViewer();
+ }
}
/** {@inheritDoc} */
/** {@inheritDoc} */
@Override
public void showViewer(IWorkbenchPart part, IStructuredSelection selection) {
- this.part = part;
+ // this.part = part;
- updateReferencingObjects((IdentifiableEntity) selection.getFirstElement());
+ updateReferencingObjects(((IdentifiableEntity) selection.getFirstElement()).getUuid(),selection.getFirstElement().getClass() );
}
/** {@inheritDoc} */
@Override
public void dispose() {
+ conversation.close();
selectionService.removePostSelectionListener(this);
selectionService.removeSelectionListener(this);
super.dispose();
+
}
/* (non-Javadoc)
public boolean onComplete() {
return false;
}
+
+ public void refresh(){
+
+ selectionService.removePostSelectionListener(this);
+ selectionService.removeSelectionListener(this);
+ selectionService.addPostSelectionListener(this);
+ selectionService.addSelectionListener(this);
+
+ }
}
Bundle-ManifestVersion: 2
Bundle-Name: Editor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 3.4.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
eu.etaxonomy.taxeditor.editor.internal,
eu.etaxonomy.taxeditor.editor.name,
eu.etaxonomy.taxeditor.editor.name.handler,
+ eu.etaxonomy.taxeditor.editor.view.concept,
eu.etaxonomy.taxeditor.editor.view.dataimport,
eu.etaxonomy.taxeditor.editor.view.descriptive,
eu.etaxonomy.taxeditor.editor.view.media,
eu.etaxonomy.taxeditor.bulkeditor,
org.eclipse.zest.core,
org.eclipse.zest.layouts,
- eu.etaxonomy.taxeditor.cdmlib
+ eu.etaxonomy.taxeditor.cdmlib,
+ org.eclipse.ui.ide;bundle-version="3.7.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Import-Package: org.eclipse.core.databinding.beans,
command.name.38 = Open Checklist 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.
\ No newline at end of file
+wizard.description = Queries data provider for specimens with specified parameters.\nNote: Query results are currently limited to 100.\r
+command.name.40 = Validation\r
+view.name.6 = Validation\r
+marker.field.0 = Object Type\r
+marker.field.1 = Object\r
+marker.field.2 = Attribute\r
+marker.field.3 = Problematic Value\r
+marker.field.4 = Problem description\r
+marker.field.5 = Validator\r
+marker.field.6 = Entity Class\r
+marker.field.7 = Entity Id
\ No newline at end of file
command.name.38 = \u00d6ffne Checklist 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.
\ No newline at end of file
+wizard.description = Sendet eine Anfrage mit den eingegebenen Parametern an den Datenprovider.\nHinweis: Die Anzahl der Anfrageergebnisse sind auf 100 begrenzt.
+command.name.40 = Validierung
+view.name.6 = Validierung
+marker.field.0 = Objekt Typ
+marker.field.1 = Objekt
+marker.field.2 = Attribut
+marker.field.3 = Problematischer Wert
+marker.field.4 = Problem Beschreibung
+marker.field.5 = Validierer
+marker.field.6 = Entitäts Klasse
+marker.field.7 = Entitäts ID
\ No newline at end of file
command.name.38 = Open Checklist 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.
\ No newline at end of file
+wizard.description = Queries data provider for specimens with specified parameters.\nNote: Query results are currently limited to 100.\r
+command.name.40 = Validation\r
+view.name.6 = Validation\r
+marker.field.0 = Object Type\r
+marker.field.1 = Object\r
+marker.field.2 = Attribute\r
+marker.field.3 = Problematic Value\r
+marker.field.4 = Problem description\r
+marker.field.5 = Validator\r
+marker.field.6 = Entity Class\r
+marker.field.7 = Entity Id
\ No newline at end of file
bin.includes = META-INF/,\
.,\
plugin.xml,\
- OSGI-INF/l10n/plugin.properties,\
icons/,\
p2.inf,\
+ OSGI-INF/l10n/plugin.properties,\
OSGI-INF/l10n/plugin_de.properties,\
OSGI-INF/l10n/plugin_en.properties,\
lib/biojava3-alignment-3.0.7.jar,\
</editor>
<editor
class="eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor"
- icon="icons/address-book-new.png"
+ icon="icons/check.png"
id="eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor"
name="%editor.name.8">
</editor>
restorable="true">
</view>
</extension>
+ <!-- VALIDATION RELATED STUFF -->
+ <extension point="org.eclipse.core.resources.markers" name="Validation Error" id="eu.etaxonomy.taxeditor.markers.validationerror">
+ <super type="org.eclipse.core.resources.problemmarker"/>
+ <attribute name="databaseId"/>
+ <attribute name="userFriendlyTypeName"/>
+ <attribute name="userFriendlyDescription"/>
+ <attribute name="userFriendlyFieldName"/>
+ <attribute name="validatorMessage"/>
+ <attribute name="invalidValue"/>
+ <attribute name="validatorClass"/>
+ <attribute name="entityClass"/>
+ <attribute name="entityId"/>
+ <persistent value="false"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.ide.markerSupport">
+ <markerContentGenerator
+ id="eu.etaxonomy.taxeditor.editor.validation.ValidationProblemsMarkerGenerator"
+ name="Validation Problems Marker Generator">
+ <markerTypeReference id="eu.etaxonomy.taxeditor.markers.validationerror" />
+
+ <markerFieldReference id="eu.etaxonomy.taxeditor.markers.validation.userFriendlyTypeName" visible="true" />
+ <markerFieldReference id="eu.etaxonomy.taxeditor.markers.validation.userFriendlyDescription" visible="true" />
+ <markerFieldReference id="eu.etaxonomy.taxeditor.markers.validation.userFriendlyFieldName" visible="true" />
+ <markerFieldReference id="eu.etaxonomy.taxeditor.markers.validation.validatorMessage" visible="true" />
+ <markerFieldReference id="eu.etaxonomy.taxeditor.markers.validation.invalidValue" visible="true" />
+ <markerFieldReference id="eu.etaxonomy.taxeditor.markers.validation.validatorClass" visible="false" />
+ <markerFieldReference id="eu.etaxonomy.taxeditor.markers.validation.entityClass" visible="false" />
+ <markerFieldReference id="eu.etaxonomy.taxeditor.markers.validation.entityId" visible="false" />
+ </markerContentGenerator>
+
+ <markerField
+ class="eu.etaxonomy.taxeditor.editor.view.validation.UserFriendlyTypeNameMarkerField"
+ id="eu.etaxonomy.taxeditor.markers.validation.userFriendlyTypeName"
+ name="%marker.field.0">
+ </markerField>
+ <markerField
+ class="eu.etaxonomy.taxeditor.editor.view.validation.UserFriendlyDescriptionMarkerField"
+ id="eu.etaxonomy.taxeditor.markers.validation.userFriendlyDescription"
+ name="%marker.field.1">
+ </markerField>
+ <markerField
+ class="eu.etaxonomy.taxeditor.editor.view.validation.UserFriendlyFieldNameMarkerField"
+ id="eu.etaxonomy.taxeditor.markers.validation.userFriendlyFieldName"
+ name="%marker.field.2 = Attribute">
+ </markerField>
+ <markerField
+ class="eu.etaxonomy.taxeditor.editor.view.validation.InvalidValueMarkerField"
+ id="eu.etaxonomy.taxeditor.markers.validation.invalidValue"
+ name="%marker.field.3 = Problematic Value">
+ </markerField>
+ <markerField
+ class="eu.etaxonomy.taxeditor.editor.view.validation.ValidatorMessageMarkerField"
+ id="eu.etaxonomy.taxeditor.markers.validation.validatorMessage"
+ name="%marker.field.4 = Problem description">
+ </markerField>
+ <markerField
+ class="eu.etaxonomy.taxeditor.editor.view.validation.ValidatorClassMarkerField"
+ id="eu.etaxonomy.taxeditor.markers.validation.validatorClass"
+ name="%marker.field.5">
+ </markerField>
+ <markerField
+ class="eu.etaxonomy.taxeditor.editor.view.validation.EntityClassMarkerField"
+ id="eu.etaxonomy.taxeditor.markers.validation.entityClass"
+ name="%marker.field.6">
+ </markerField>
+ <markerField
+ class="eu.etaxonomy.taxeditor.editor.view.validation.EntityIdMarkerField"
+ id="eu.etaxonomy.taxeditor.markers.validation.entityId"
+ name="%marker.field.7">
+ </markerField>
+ </extension>
<extension
point="org.eclipse.ui.elementFactories">
<factory
name="taxeditor-editor.separator1"
visible="true">
</separator>
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.handler.openDerivateView"
+ label="Open in Derivate Editor"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <with
+ variable="selection">
+ <count
+ value="+">
+ </count>
+ </with>
+ </visibleWhen>
+ </command>
<command
commandId="eu.etaxonomy.taxeditor.editor.commands.description.moveDescriptionToTaxon"
label="%command.label.28"
label="%command.label.31"
style="push">
</command>
+ <separator
+ name="eu.etaxonomy.taxeditor.editor.separator1">
+ </separator>
</menuContribution>
<menuContribution
locationURI="popup:eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
label="Delete"
style="push">
</command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.derivate.createFieldUnit"
+ label="Create Field Unit"
+ style="push">
+ </command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
+ icon="icons/deep-delete-16x16-32.png"
+ label="Delete (with children)"
+ style="push">
+ </command>
</menuContribution>
<menuContribution
locationURI="popup:eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor">
commandId="eu.etaxonomy.taxeditor.editor.handler.openDerivateView"
label="Open Associated Derivates"
style="push">
+ <visibleWhen
+ checkEnabled="false">
+ <and>
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ <reference
+ definitionId="isTaxonNode">
+ </reference>
+ </and>
+ </visibleWhen>
</command>
<separator
name="eu.etaxonomy.taxeditor.editor.separator1"
visible="true">
</separator>
</menuContribution>
+ <menuContribution
+ locationURI="menu:eu.etaxonomy.taxeditor.menu.showView?after=org.eclipse.ui.views.showView.supplemental">
+ <separator
+ name="eu.etaxonomy.taxeditor.store.showViewMenu.validation.separator"
+ visible="true">
+ </separator>
+ <command
+ commandId="org.eclipse.ui.views.showView"
+ label="%command.name.40"
+ style="push">
+ <parameter
+ name="org.eclipse.ui.views.showView.viewId"
+ value="eu.etaxonomy.taxeditor.editor.view.validation.problems">
+ </parameter>
+ </command>
+ </menuContribution>
</extension>
<extension
point="org.eclipse.ui.handlers">
id="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleLeftRightInsertion"
name="Toggle left/right insertion in base call sequence">
</command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenTaxonEditorHandler"
+ id="eu.etaxonomy.taxeditor.editor.openTaxonEditor"
+ name="Open Taxon Editor">
+ <commandParameter
+ id="eu.etaxonomy.taxeditor.editor.taxonParameter"
+ name="taxonUUID"
+ optional="false"
+ typeId="eu.etaxonomy.taxeditor.editor.taxonParameterType">
+ </commandParameter>
+ </command>
+ <commandParameterType
+ converter="eu.etaxonomy.taxeditor.editor.handler.TaxonParameterConverter"
+ id="eu.etaxonomy.taxeditor.editor.taxonParameterType"
+ type="eu.etaxonomy.cdm.model.taxon.TaxonBase">
+ </commandParameterType>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler"
+ id="eu.etaxonomy.taxeditor.editor.derivate.createFieldUnit"
+ name="Create Field Unit">
+ </command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
+ id="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
+ name="Deep Delete">
+ </command>
</extension>
<extension
</description>
</wizard>
</extension>
+ <extension
+ point="eu.etaxonomy.taxeditor.store.cdmViewer">
+ <cdmViewer
+ class="eu.etaxonomy.taxeditor.editor.EditorCdmViewer">
+ </cdmViewer>
+ </extension>
</plugin>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.view.ICdmViewer;
+
+/**
+ * @author pplitzner
+ * @date Feb 23, 2015
+ *
+ */
+public class EditorCdmViewer implements ICdmViewer {
+
+ private final Logger logger = Logger.getLogger(EditorCdmViewer.class);
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.view.ICdmViewer#show(java.lang.Object)
+ */
+ @Override
+ public void show(Object input, Class<?> viewerClass) {
+ try {
+ if(viewerClass.equals(MultiPageTaxonEditor.class)){
+ if(input instanceof TaxonBase){
+ TaxonEditorInput editorInput = TaxonEditorInput.NewInstanceFromTaxonBase(((TaxonBase<?>) input).getUuid());
+ EditorUtil.open(editorInput);
+ }
+ }
+ else if(viewerClass.equals(DerivateView.class)){
+ if(input instanceof SpecimenOrObservationBase){
+ }
+ }
+ } catch (PartInitException e) {
+ String errorMessage = "Could not open editor";
+ logger.error(errorMessage, e);
+ MessagingUtils.error(EditorCdmViewer.class, errorMessage, e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.view.ICdmViewer#getViewerClasses(java.lang.Object)
+ */
+ @Override
+ public Map<Class<?>, String> getViewerClasses(Object input) {
+ Map<Class<?>, String> viewerNameMap = new HashMap<Class<?>, String>();
+ if(input instanceof TaxonBase){
+ viewerNameMap.put(MultiPageTaxonEditor.class, "Taxon Editor");
+ }
+ return viewerNameMap;
+ }
+
+}
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor;
import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor;
import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditorInput;
-import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
import eu.etaxonomy.taxeditor.editor.view.dataimport.BioCaseEditorInput;
import eu.etaxonomy.taxeditor.editor.view.dataimport.DataImportEditor;
import eu.etaxonomy.taxeditor.editor.view.dataimport.DataImportEditorInput;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* Utility for the editor package
*/
public static void openTaxonBase(UUID taxonBaseUuid)
throws PartInitException {
+ TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid);
+ if (taxonBase != null && taxonBase.isOrphaned()) {
+ MessagingUtils.warningDialog("Orphaned Taxon", TaxonEditorInput.class, "This is an orphaned taxon i.e. a taxon that is not connected to a classification and not having any taxonomic relationships. Editing of orphaned taxon is currently not supported.");
+ return;
+ }
TaxonEditorInput input = TaxonEditorInput
.NewInstanceFromTaxonBase(taxonBaseUuid);
open(input);
}
return null;
}
+
+ /**
+ * Opens a taxon editor for the given object if the given object is a valid input.
+ * @param object the object for which the editor will be opened
+ * @throws PartInitException
+ */
+ public static void openTaxonEditor(Object object) throws PartInitException {
+ if(object instanceof TaxonBase<?>){
+ openTaxonBase(((TaxonBase<?>) object).getUuid());
+ }
+ }
}
*/
public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPersistableElement {
- private ConversationHolder conversation;
+ private final ConversationHolder conversation;
- private TaxonNode taxonNode;
+ private final TaxonNode taxonNode;
private TaxonEditorInputDataChangeBehaviour dataChangeBehavior;
TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid);
if (taxonBase != null){
- if(taxonBase.isOrphaned()) {
- MessagingUtils.warningDialog("Orphaned Taxon", TaxonEditorInput.class, "This is an orphaned taxon i.e. a taxon that is not connected to a classification and not having any taxonomic relationships. Editing of orphaned taxon is currently not supported.");
- }
- else if(taxonBase.isInstanceOf(Taxon.class)){
+ if(taxonBase.isInstanceOf(Taxon.class)){
Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class);
-
+
if (taxon.getTaxonNodes().size() == 0 && taxon.isMisapplication()){
// TODO get accepted taxon
MessagingUtils.info("trying to open Mispplied Name ");
-
+
Set<Taxon> acceptedTaxa = new HashSet<Taxon>();
Set<TaxonRelationship> relations = taxon.getRelationsFromThisTaxon();
for(TaxonRelationship relation : relations){
}
}
input = getInputForMultipleTaxa(conversation, acceptedTaxa);
-
+
}else{
input = getInputForMultipleNodes(conversation, taxon.getTaxonNodes());
}
}else if(taxonBase instanceof Synonym){
Synonym synonym = (Synonym) taxonBase;
-
+
Set<Taxon> taxa = synonym.getAcceptedTaxa();
input = getInputForMultipleTaxa(conversation, taxa);
}
input.setInitiallySelectedTaxonBase(taxonBase);
}
}
-
+
return input;
}
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
if(object instanceof SpecimenOrObservationBase<?>){
selectedElementUUIDs.add(((SpecimenOrObservationBase<?>) object).getUuid());
}
+ else if(object instanceof IndividualsAssociation){
+ SpecimenOrObservationBase specimen = ((IndividualsAssociation) object).getAssociatedSpecimenOrObservation();
+ if(specimen!=null){
+ selectedElementUUIDs.add(specimen.getUuid());
+ }
+ }
}
DerivateViewEditorInput input = new DerivateViewEditorInput(selectedElementUUIDs);
try {
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.handler;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.ParameterType;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+
+
+public class OpenTaxonEditorHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ Object object = event.getObjectParameterForExecution("eu.etaxonomy.taxeditor.editor.taxonParameter");
+
+ try {
+ ParameterType parameterType = event.getCommand().getParameterType("eu.etaxonomy.taxeditor.editor.taxonParameter");
+ if(parameterType.isCompatible(object)){
+ EditorUtil.openTaxonEditor(object);
+ }
+ } catch (NotDefinedException e) {
+ MessagingUtils.error(this.getClass(), "Parameter type not defined", e);
+ } catch (PartInitException e) {
+ MessagingUtils.error(OpenTaxonEditorHandler.class, "Error opening the editor", e);
+ }
+ return null;
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.handler;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.AbstractParameterValueConverter;
+import org.eclipse.core.commands.ParameterValueConversionException;
+
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class TaxonParameterConverter extends AbstractParameterValueConverter {
+
+ public TaxonParameterConverter() {
+ }
+
+ @Override
+ public Object convertToObject(String parameterValue) throws ParameterValueConversionException {
+ return CdmStore.getService(ITaxonService.class).load(UUID.fromString(parameterValue));
+ }
+
+ @Override
+ public String convertToString(Object parameterValue) throws ParameterValueConversionException {
+ if(parameterValue instanceof TaxonBase<?>){
+ return ((TaxonBase<?>) parameterValue).getUuid().toString();
+ }
+ return null;
+ }
+
+}
import eu.etaxonomy.taxeditor.editor.EditorStateManager;
import eu.etaxonomy.taxeditor.editor.UseObjectManager;
+import eu.etaxonomy.taxeditor.editor.validation.ValidationContextListener;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
EditorStateManager stateManager = new EditorStateManager();
CdmStore.getContextManager().addContextListener(stateManager);
+ ValidationContextListener vcl = new ValidationContextListener();
+ CdmStore.getContextManager().addContextListener(vcl);
+
plugin = this;
logger.trace("Plugin started: " + this.getBundle().getSymbolicName());
}
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
* </p>
*/
public void createOrUpdateNameComposites() {
-
+ this.taxon = (Taxon)CdmStore.getService(ITaxonService.class).load(this.getTaxon().getUuid());
ContainerFactory.createOrUpdateAcceptedTaxonsHomotypicGroup(this);
ContainerFactory.createOrUpdateHeterotypicSynonymyGroups(this);
ContainerFactory.createOrUpdateMisapplicationsGroup(this);
/** {@inheritDoc} */
@Override
public void dispose() {
+ conversation.unregisterForDataStoreChanges(this);
super.dispose();
}
package eu.etaxonomy.taxeditor.editor.name.dnd;
import org.eclipse.core.runtime.Assert;
+import org.eclipse.swt.SWTException;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTargetAdapter;
import org.eclipse.swt.dnd.DropTargetEvent;
import eu.etaxonomy.cdm.model.common.ICdmBase;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation;
import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.MoveSynonymToAnotherAcceptedTaxonOperation;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
public class NameEditorDropTargetListener extends DropTargetAdapter {
private IDropTargetable target;
+
/**
* <p>Constructor for NameEditorDropTargetListener.</p>
} else {
EditorUtil.executeOperation(operation);
}
+ target.getEditor().getConversationHolder().commit();
+ if (!target.equals(EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor())){
+ ((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).redraw();
+ ((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();
+
+ }
+ target.getEditor().redraw();
+
}
private AbstractPostOperation createOperation(TaxonBase taxonBase) {
getEditor().getTaxon(), synonym, target);
}
else if(target instanceof TaxonNameEditor){
- return new ChangeHomotypicGroupOperation("Change Homotypical Group", getEditor().getUndoContext(),
+ if (target.equals(getEditor())){
+ return new ChangeHomotypicGroupOperation("Change Homotypical Group", getEditor().getUndoContext(),
getEditor().getTaxon(), synonym, null, target);
+ } else{
+ getEditor().getConversationHolder().commit();
+ ((TaxonNameEditor) target).getConversationHolder().commit();
+
+ return new MoveSynonymToAnotherAcceptedTaxonOperation("Change accepted Taxon", getEditor().getUndoContext(), getEditor().getTaxon().getUuid(), synonym.getUuid(), ((TaxonNameEditor) target).getTaxon(), null );
+
+ }
}
}else if(taxonBase instanceof Taxon){
*
*/
private TaxonNameEditor getEditor() {
- return target.getEditor();
+ return (TaxonNameEditor) EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor();
}
}
/**
* 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.
*/
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.Page;
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
import eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation;
import eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation;
import eu.etaxonomy.taxeditor.editor.name.operation.DeleteTaxonOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
-
+
Object selectedElement = EditorUtil.getSelection(event).getFirstElement();
-
+
doExecute(event, editor, selectedElement);
-
+
return null;
}
-
+
/**
* @param editor
* @param selectedElement
*/
protected void doExecute(ExecutionEvent event, TaxonNameEditor editor, Object selectedElement) {
AbstractPostOperation operation = null;
- String commandName = null;
+ String commandName = null;
try {
commandName = event.getCommand().getName();
} catch (NotDefinedException e) {
MessagingUtils.error(getClass(), e);
}
-
+
// synonym
if(selectedElement instanceof Synonym){
operation = new DeleteSynonymOperation(commandName, editor.getUndoContext(), editor.getTaxon(), (Synonym) selectedElement, editor);
if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Are you sure you want to delete the selected taxon?")){
return ;
}
+
IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
-
- operation = new DeleteTaxonOperation(commandName, editor.getUndoContext(),(Taxon) selectedElement, null, activePage, this, editor);
+
+ operation = new DeleteTaxonOperation(commandName, editor.getUndoContext(),(Taxon) selectedElement, new TaxonDeletionConfigurator(), null, activePage, this, editor);
//editor.dispose();
-
+
}
else {
throw new IllegalArgumentException("Element has to be Synonym, Misapplication or Concept");
}
-
- EditorUtil.executeOperation(operation);
-
-
-
-
+
+ AbstractUtility.executeOperation(operation);
}
@Override
public boolean postOperation(CdmBase objectAffectedByOperation) {
Display.getDefault().asyncExec(new Runnable(){
- public void run() {
- EditorUtil.close(editor.getMultiPageTaxonEditor());
-
+ @Override
+ public void run() {
+ AbstractUtility.close(editor.getMultiPageTaxonEditor());
}
-
});
-
-
return true;
}
// TODO Auto-generated method stub
return false;
}
-
-
+
}
// TODO pass in homotypical group's taxon in case we are dragging from one editor to another
// Switch groups
- oldHomotypicalGroup.removeTypifiedName(synonymName);
+ oldHomotypicalGroup.removeTypifiedName(synonymName, false);
monitor.worked(40);
newHomotypicalGroup = HibernateProxyHelper.deproxy(newHomotypicalGroup, HomotypicalGroup.class);
newHomotypicalGroup.addTypifiedName(synonymName);
// TODO pass in homotypical group's taxon in case we are dragging from one editor to another
// Switch groups
- newHomotypicalGroup.removeTypifiedName(synonymName);
+ newHomotypicalGroup.removeTypifiedName(synonymName, false);
oldHomotypicalGroup.addTypifiedName(synonymName);
// Redraw editor if it exists
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.remote.dto.tdwg.voc.TaxonName;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
DeleteResult result = service.deleteSynonym(synonym, null);
if (result.isError()){
- MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
+ MessageDialog.openError(null, "Delete failed", result.toString());
+ } else if (!result.getUpdatedObjects().isEmpty()){
+ MessageDialog.openInformation(null, "Delete successfull", "The Synonym could be deleted, but there is an updated object: " + result.toString());
}
}
// taxon.removeSynonym(synonym);
import org.eclipse.core.runtime.IAdaptable;\r
import org.eclipse.core.runtime.IProgressMonitor;\r
import org.eclipse.core.runtime.IStatus;\r
-import org.eclipse.ui.IEditorInput;\r
-import org.eclipse.ui.IEditorReference;\r
-import org.eclipse.ui.IPerspectiveDescriptor;\r
-import org.eclipse.ui.IViewPart;\r
import org.eclipse.ui.IWorkbenchPage;\r
-import org.eclipse.ui.PartInitException;\r
\r
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;\r
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;\r
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
\r
public class DeleteTaxonBaseOperation extends AbstractPersistentPostOperation {\r
- \r
- private IWorkbenchPage activePage;\r
- \r
+\r
+ protected TaxonDeletionConfigurator configurator;\r
+\r
public DeleteTaxonBaseOperation(String label, IUndoContext undoContext,\r
- Taxon taxon, IWorkbenchPage activePage, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {\r
+ TaxonDeletionConfigurator configurator, IWorkbenchPage activePage, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {\r
super(label, undoContext, postOperationEnabled,\r
conversationEnabled);\r
- this.activePage = activePage;\r
- \r
+ this.configurator = configurator;\r
+\r
}\r
\r
@Override\r
// TODO Auto-generated method stub\r
return null;\r
}\r
- \r
- protected void closeObsoleteEditor(Taxon taxon){\r
- for (IEditorReference ref : activePage.getEditorReferences()) {\r
- \r
- IViewPart view = activePage.findView("eu.etaxonomy.taxeditor.navigation.navigator");\r
- \r
- try {\r
- IEditorInput input = ref.getEditorInput(); \r
- if (input instanceof TaxonEditorInput) {\r
- TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();\r
- if (taxonNode.equals(node)) {\r
- activePage.closeEditor(ref.getEditor(false), false);\r
- }\r
- }\r
- } catch (PartInitException e) {\r
- continue;\r
- }\r
- }\r
- }\r
}\r
-\r
-\r
import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
\r
public class DeleteTaxonOperation extends DeleteTaxonBaseOperation{\r
- //private Taxon taxon;\r
- private final Classification classification;\r
-\r
-\r
\r
+ private final Classification classification;\r
\r
public DeleteTaxonOperation(String label, IUndoContext undoContext,\r
- Taxon taxon, Classification classification, IWorkbenchPage activePage, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {\r
- super(label, undoContext, taxon, activePage, postOperationEnabled, conversationEnabled);\r
+ Taxon taxon, TaxonDeletionConfigurator configurator, Classification classification, IWorkbenchPage activePage, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {\r
+ super(label, undoContext, configurator, activePage, postOperationEnabled, conversationEnabled);\r
this.element = taxon;\r
\r
Set<TaxonNode> nodes = taxon.getTaxonNodes();\r
\r
}\r
\r
-\r
-\r
@Override\r
public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
throws ExecutionException {\r
\r
ICdmApplicationConfiguration controller;\r
\r
- controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();\r
+ controller = CdmStore.getCurrentApplicationConfiguration();\r
\r
ITaxonService service = controller.getTaxonService();\r
- \r
\r
- DeleteResult result = service.deleteTaxon(element, new TaxonDeletionConfigurator(), classification);\r
+\r
+ DeleteResult result = service.deleteTaxon(element, configurator, classification);\r
if (result.isError()){\r
- MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());\r
+ MessageDialog.openError(null, "Delete failed", result.toString());\r
+ } else if (!result.getUpdatedObjects().isEmpty()){\r
+ MessagingUtils.informationDialog("Delete successfull", result.toString());\r
}\r
\r
- //closeObsoleteEditor(taxon);\r
monitor.worked(40);\r
\r
\r
return null;\r
}\r
\r
-\r
-}\r
+}
\ No newline at end of file
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.name.operation;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.UUID;\r
+\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+\r
+import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;\r
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
+import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
+import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;\r
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+\r
+public class MoveSynonymToAnotherAcceptedTaxonOperation extends\r
+ AbstractPostTaxonOperation {\r
+\r
+ /**\r
+ * The synonym to be moved.\r
+ */\r
+ private final Synonym synonym;\r
+\r
+ private final Taxon oldTaxon;\r
+ \r
+ \r
+ /**\r
+ * <p>Constructor for MoveSynonymToAnotherAcceptedTaxon.</p>\r
+ *\r
+ * @param label a {@link java.lang.String} object.\r
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.\r
+ * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.\r
+ * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.\r
+ \r
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.\r
+ */\r
+ public MoveSynonymToAnotherAcceptedTaxonOperation(String label, IUndoContext undoContext,\r
+ UUID oldTaxonUUID, UUID synonymUUID, Taxon taxon, IPostOperationEnabled postOperationEnabled) {\r
+ \r
+ super(label, undoContext, taxon, postOperationEnabled);\r
+ List<String> propertyPaths = new ArrayList<String>();\r
+ propertyPaths.add("synonymRelations");\r
+ this.element = (Taxon) CdmStore.getService(ITaxonService.class).load(taxon.getUuid(),propertyPaths);\r
+ this.oldTaxon = (Taxon) CdmStore.getService(ITaxonService.class).load(oldTaxonUUID);\r
+ this.synonym = (Synonym) CdmStore.getService(ITaxonService.class).load(synonymUUID);\r
+ if(synonym == null){\r
+ throw new IllegalArgumentException(\r
+ "A null synonym was provided.");\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+\r
+ // Get synonym name\r
+ TaxonNameBase<?, ?> synonymName = synonym.getName();\r
+ monitor.worked(20);\r
+\r
+ \r
+\r
+ // Switch groups\r
+ \r
+ monitor.worked(40);\r
+ SynonymRelationship synRel = synonym.getSynonymRelations().iterator().next();\r
+ \r
+ \r
+ \r
+ ((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();\r
+ \r
+ \r
+ \r
+ try {\r
+ synRel = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synRel, this.element, true, synRel.getType(), null, null, true);\r
+ } catch (HomotypicalGroupChangeException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ ((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();\r
+ \r
+ \r
+\r
+ // Redraw editor if it exists\r
+ return postExecute(synRel.getSynonym());\r
+ }\r
+\r
+ @Override\r
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.validation;\r
+\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
+import javax.xml.validation.Validator;\r
+\r
+import org.eclipse.core.resources.IMarker;\r
+import org.eclipse.core.resources.IResource;\r
+import org.eclipse.core.resources.IWorkspaceRoot;\r
+import org.eclipse.core.resources.ResourcesPlugin;\r
+import org.eclipse.core.runtime.CoreException;\r
+\r
+import eu.etaxonomy.cdm.model.validation.EntityConstraintViolation;\r
+import eu.etaxonomy.cdm.model.validation.EntityValidationResult;\r
+import eu.etaxonomy.cdm.model.validation.Severity;\r
+\r
+/**\r
+ * A class responsible for refreshing problem markers coming from the CVI\r
+ * (Cdmlib Validation Infrastructure).\r
+ * \r
+ * @author ayco_holleman\r
+ * \r
+ */\r
+/*\r
+ * See following for problems with icons in Problems view\r
+ * http://stackoverflow.com\r
+ * /questions/13497258/markers-view-shows-my-marker-with-\r
+ * a-red-square-insted-of-error-warning-icon\r
+ * http://stackoverflow.com/questions/2888207\r
+ * /eclipse-plugin-custom-icon-for-a-marker\r
+ * http://www.eclipse.org/articles/Article-Mark%20My%20Words/mark-my-words.html\r
+ * http\r
+ * ://cubussapiens.hu/2010/11/markers-and-annotations-in-eclipse-for-error-feedback\r
+ * /\r
+ * \r
+ * See here for difficulty of attaching markers to non-resources (files,\r
+ * folders):\r
+ * http://stackoverflow.com/questions/12493179/eclipse-virtual-resources\r
+ */\r
+public class MarkerManager {\r
+\r
+ public static final String MARKER_TYPE_ID = "eu.etaxonomy.taxeditor.markers.validationerror";\r
+\r
+ /**\r
+ * The primary key (id) of the EntityValidationResult record\r
+ */\r
+ public static final String ATTRIB_DATABASE_ID = "databaseId";\r
+\r
+ // The values of the following constants must correspond to the attributes\r
+ // defined for the org.eclipse.core.resources.markers extension point in\r
+ // plugin.xml\r
+\r
+ /**\r
+ * A user-friendly description of the type of the entity\r
+ */\r
+ public static final String ATTRIB_USER_FRIENDLY_TYPE_NAME = "userFriendlyTypeName";\r
+ /**\r
+ * A user-friendly description of the entity\r
+ */\r
+ public static final String ATTRIB_USER_FRIENDLY_DESCRIPTION = "userFriendlyDescription";\r
+ /**\r
+ * The field whose value violated a constraint\r
+ */\r
+ public static final String ATTRIB_USER_FRIENDLY_FIELD_NAME = "userFriendlyFieldName";\r
+ /**\r
+ * The value violating a constraint\r
+ */\r
+ public static final String ATTRIB_INVALID_VALUE = "invalidValue";\r
+ /**\r
+ * The message from the {@link Validator} about what was wrong.\r
+ */\r
+ public static final String ATTRIB_VALIDATOR_MESSAGE = "validatorMessage";\r
+ /**\r
+ * The class of the {@link Validator} coding for the constraint\r
+ */\r
+ public static final String ATTRIB_VALIDATOR_CLASS = "validatorClass";\r
+ /**\r
+ * The class of the validated entity\r
+ */\r
+ public static final String ATTRIB_ENTITY_CLASS = "entityClass";\r
+ /**\r
+ * The id of the validated entity\r
+ */\r
+ public static final String ATTRIB_ENTITY_ID = "entityId";\r
+\r
+ private final IWorkspaceRoot root;\r
+ private final IMarker[] markers;\r
+ private final List<EntityValidationResult> results;\r
+ private final HashMap<Integer, EntityValidationResult> resultMap;\r
+ private final HashMap<Integer, IMarker> markerMap;\r
+\r
+\r
+ MarkerManager(List<EntityValidationResult> results) throws CoreException\r
+ {\r
+ this.root = ResourcesPlugin.getWorkspace().getRoot();\r
+ this.markers = root.findMarkers(MARKER_TYPE_ID, true, IResource.DEPTH_INFINITE);\r
+ this.markerMap = new HashMap<Integer, IMarker>();\r
+ for (IMarker marker : markers) {\r
+ markerMap.put(getDatabaseId(marker), marker);\r
+ }\r
+ this.results = results;\r
+ this.resultMap = new HashMap<Integer, EntityValidationResult>();\r
+ for (EntityValidationResult result : results) {\r
+ resultMap.put(result.getId(), result);\r
+ }\r
+ }\r
+\r
+\r
+ /**\r
+ * Delete all markers that refer to errors that do not exist any longer\r
+ * (i.e. the corresponding database record has been deleted).\r
+ * \r
+ * @return The number of deleted markers\r
+ * \r
+ * @throws CoreException\r
+ */\r
+ int deleteObsoleteMarkers() throws CoreException\r
+ {\r
+ int i = 0;\r
+ IMarker[] markers = root.findMarkers(MARKER_TYPE_ID, true, IResource.DEPTH_INFINITE);\r
+ for (IMarker marker : markers) {\r
+ if (isObsoleteMarker(marker)) {\r
+ ++i;\r
+ marker.delete();\r
+ }\r
+ }\r
+ return i;\r
+ }\r
+\r
+\r
+ /**\r
+ * Create markers for new errors (i.e. no marker has been created for them\r
+ * yet).\r
+ * \r
+ * @return The number of new markers\r
+ * \r
+ * @throws CoreException\r
+ */\r
+ int createMarkers() throws CoreException\r
+ {\r
+ int i = 0;\r
+ IMarker[] markers = root.findMarkers(MARKER_TYPE_ID, true, IResource.DEPTH_INFINITE);\r
+ for (EntityValidationResult result : results) {\r
+ if (!isNewResult(result)) {\r
+ continue;\r
+ }\r
+ Set<EntityConstraintViolation> problems = result.getEntityConstraintViolations();\r
+ for (EntityConstraintViolation problem : problems) {\r
+ if (markerExistsForProblem(problem, markers)) {\r
+ continue;\r
+ }\r
+ IMarker marker = root.createMarker(MARKER_TYPE_ID);\r
+ ++i;\r
+ if (problem.getSeverity() == Severity.ERROR) {\r
+ marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);\r
+ }\r
+ else if (problem.getSeverity() == Severity.WARNING) {\r
+ marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);\r
+ }\r
+ else {\r
+ marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);\r
+ }\r
+ marker.setAttribute(IMarker.MESSAGE, problem.getMessage());\r
+ marker.setAttribute(ATTRIB_DATABASE_ID, result.getId());\r
+ marker.setAttribute(ATTRIB_USER_FRIENDLY_TYPE_NAME, result.getUserFriendlyTypeName());\r
+ marker.setAttribute(ATTRIB_USER_FRIENDLY_DESCRIPTION, result.getUserFriendlyDescription());\r
+ marker.setAttribute(ATTRIB_USER_FRIENDLY_FIELD_NAME, problem.getUserFriendlyFieldName());\r
+ marker.setAttribute(ATTRIB_VALIDATOR_MESSAGE, problem.getMessage());\r
+ marker.setAttribute(ATTRIB_INVALID_VALUE, problem.getInvalidValue());\r
+ marker.setAttribute(ATTRIB_VALIDATOR_CLASS, problem.getValidator());\r
+ marker.setAttribute(ATTRIB_ENTITY_CLASS, result.getValidatedEntityClass());\r
+ marker.setAttribute(ATTRIB_ENTITY_ID, result.getValidatedEntityId());\r
+ }\r
+ }\r
+ return i;\r
+ }\r
+\r
+\r
+ /**\r
+ * Is there a problem marker that captures the specified\r
+ * {@link EntityConstraintViolation}? See\r
+ * {@link #markerCapturesProblem(IMarker, EntityConstraintViolation)}.\r
+ * \r
+ * @param problem\r
+ * @param markers\r
+ * @return\r
+ * @throws CoreException\r
+ */\r
+ private boolean markerExistsForProblem(EntityConstraintViolation problem, IMarker[] markers) throws CoreException\r
+ {\r
+ for (IMarker marker : markers) {\r
+ if (markerCapturesProblem(marker, problem)) {\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+\r
+\r
+ /**\r
+ * <p>\r
+ * This method determines whether the problem exposed by the specified\r
+ * marker is <b>de facto</b> equivalent to the specified\r
+ * {@code EntityConstraintViolation}. When the CVI validates an entity, it\r
+ * first deletes previous validation results for that entity and only then\r
+ * saves the new validation result. Thus you cannot rely on the database id\r
+ * of the {@code EntityConstraintViolation} to determine equivalence. Maybe\r
+ * later we can make the CVI more sophisticated in this respect. Or maybe\r
+ * see if solving it through the equals() method of\r
+ * {@code EntityValidationResult} and/or {@code EntityConstraintViolation}\r
+ * is possible. But for now this is the easiest solution.\r
+ * </p>\r
+ * <p>\r
+ * The reason we check for equivalence, is that we don't want to\r
+ * unnecessarily update the Problems view. If a marker is there, we don't\r
+ * want to replace it with an equivalent marker, because that might lead to\r
+ * strange click behaviour for end users (e.g. selected problems will\r
+ * disappear and re-appear unselected).\r
+ * </p>\r
+ * \r
+ * @param marker\r
+ * @param problem\r
+ * @return\r
+ * @throws CoreException\r
+ */\r
+ private static boolean markerCapturesProblem(IMarker marker, EntityConstraintViolation problem) throws CoreException\r
+ {\r
+ EntityValidationResult result = problem.getEntityValidationResult();\r
+ if (!marker.getAttribute(ATTRIB_ENTITY_CLASS).equals(result.getValidatedEntityClass())) {\r
+ return false;\r
+ }\r
+ if (!marker.getAttribute(ATTRIB_ENTITY_ID).equals(result.getValidatedEntityId())) {\r
+ return false;\r
+ }\r
+ if (!marker.getAttribute(ATTRIB_USER_FRIENDLY_FIELD_NAME).equals(problem.getPropertyPath())) {\r
+ return false;\r
+ }\r
+ if (!marker.getAttribute(ATTRIB_INVALID_VALUE).equals(problem.getInvalidValue())) {\r
+ return false;\r
+ }\r
+ if (!marker.getAttribute(ATTRIB_VALIDATOR_CLASS).equals(problem.getValidator())) {\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+\r
+ /**\r
+ * Is this a marker without a corresponding database record (\r
+ * {@link EntityValidationResult})?\r
+ * \r
+ * @param marker\r
+ * @return\r
+ * @throws CoreException\r
+ */\r
+ private boolean isObsoleteMarker(IMarker marker) throws CoreException\r
+ {\r
+ return resultMap.get(getDatabaseId(marker)) == null;\r
+ }\r
+\r
+\r
+ /**\r
+ * Is this an {@link EntityValidationResult} for which no marker has been\r
+ * created yet?\r
+ * \r
+ * @param result\r
+ * @return\r
+ */\r
+ private boolean isNewResult(EntityValidationResult result)\r
+ {\r
+ return markerMap.get(result.getId()) == null;\r
+ }\r
+\r
+\r
+ /**\r
+ * Get the id of the {@link EntityValidationResult} that was stored as one\r
+ * of the marker's attributes.\r
+ * \r
+ * @param marker\r
+ * @return\r
+ * @throws CoreException\r
+ */\r
+ private static Integer getDatabaseId(IMarker marker) throws CoreException\r
+ {\r
+ return (Integer) marker.getAttribute(ATTRIB_DATABASE_ID);\r
+ }\r
+\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.validation;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.ui.IMemento;\r
+\r
+import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;\r
+import eu.etaxonomy.taxeditor.model.IContextListener;\r
+\r
+/**\r
+ * An {@code IContextListener} responsible for starting the\r
+ * {@link ValidationDaemon}.\r
+ * \r
+ * @see TaxeditorEditorPlugin#start(org.osgi.framework.BundleContext)\r
+ * \r
+ * @author ayco_holleman\r
+ * \r
+ */\r
+public class ValidationContextListener implements IContextListener {\r
+\r
+ @SuppressWarnings("unused")\r
+ private static final Logger logger = Logger.getLogger(ValidationContextListener.class);\r
+\r
+ private ValidationDaemon daemon;\r
+\r
+\r
+ public ValidationContextListener(){\r
+ }\r
+\r
+\r
+ @Override\r
+ public void contextAboutToStop(IMemento memento, IProgressMonitor monitor){\r
+ if (daemon != null) {\r
+ daemon.cancel();\r
+ daemon.setCancelRequested();\r
+ }\r
+ }\r
+\r
+\r
+ @Override\r
+ public void contextStop(IMemento memento, IProgressMonitor monitor){\r
+ if (daemon != null) {\r
+ daemon.cancel();\r
+ daemon.setCancelRequested();\r
+ }\r
+ }\r
+\r
+\r
+ @Override\r
+ public void contextStart(IMemento memento, IProgressMonitor monitor){\r
+ if (daemon == null) {\r
+ daemon = new ValidationDaemon();\r
+ }\r
+ daemon.schedule();\r
+ }\r
+\r
+\r
+ @Override\r
+ public void contextRefresh(IProgressMonitor monitor){\r
+ if (daemon != null) {\r
+ daemon.cancel();\r
+ daemon.setCancelRequested();\r
+ }\r
+ }\r
+\r
+\r
+ @Override\r
+ public void workbenchShutdown(IMemento memento, IProgressMonitor monitor){\r
+ if (daemon != null) {\r
+ daemon.cancel();\r
+ daemon.setCancelRequested();\r
+ daemon = null;\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.validation;\r
+\r
+import java.util.List;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.core.runtime.jobs.Job;\r
+\r
+import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;\r
+import eu.etaxonomy.cdm.api.service.IEntityValidationResultService;\r
+import eu.etaxonomy.cdm.model.validation.EntityValidationResult;\r
+import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+\r
+/**\r
+ * A job that repeatedly checks the error tables and refreshes the problem\r
+ * markers created from them.\r
+ * \r
+ * @author ayco_holleman\r
+ * \r
+ */\r
+public class ValidationDaemon extends Job {\r
+\r
+ @SuppressWarnings("unused")\r
+ private static final Logger logger = Logger.getLogger(ValidationDaemon.class);\r
+\r
+ private final IEntityValidationResultService validationResultService;\r
+ \r
+ @SuppressWarnings("unused")\r
+ /* Not currently needed but present for future use if/when required */\r
+ private final IEntityConstraintViolationService constraintViolationService;\r
+\r
+ private boolean cancelRequested = false;\r
+\r
+ public ValidationDaemon(){\r
+ super("Initializing validation module");\r
+// StoreUtil.info("Initializing validation module");\r
+ MessagingUtils.info("Initializing validation module");\r
+ constraintViolationService = CdmStore.getService(IEntityConstraintViolationService.class);\r
+ validationResultService = CdmStore.getService(IEntityValidationResultService.class);\r
+ }\r
+\r
+ \r
+ @Override\r
+ protected void canceling(){\r
+ cancelRequested = true;\r
+ }\r
+\r
+\r
+ /**\r
+ * This method is called by {@link ValidationContextListener} rather than\r
+ * {@link Job#cancel()}, because that method does not have the desired\r
+ * effect.\r
+ */\r
+ public void setCancelRequested(){\r
+ cancelRequested = true;\r
+ }\r
+\r
+\r
+ @Override\r
+ protected IStatus run(IProgressMonitor monitor){\r
+ MarkerManager markerManager;\r
+ List<EntityValidationResult> results;\r
+ try {\r
+ while (!cancelRequested) {\r
+ results = validationResultService.getValidationResults();\r
+ markerManager = new MarkerManager(results);\r
+ markerManager.deleteObsoleteMarkers();\r
+ markerManager.createMarkers();\r
+ // Might want to make this configurable:\r
+ Thread.sleep(5000);\r
+ }\r
+// StoreUtil.info("Validation module stopped");\r
+ MessagingUtils.info("Validation module stopped");\r
+ return Status.OK_STATUS;\r
+ }\r
+ catch (Throwable t) {\r
+// StoreUtil.info("Validation module terminated unexpectedly: " + t.getMessage());\r
+ MessagingUtils.info("Validation module terminated unexpectedly: " + t.getMessage());\r
+ return Status.CANCEL_STATUS;\r
+ }\r
+ }\r
+\r
+}\r
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.SimpleSelectionProvider;
import eu.etaxonomy.taxeditor.editor.view.checklist.edit.DistributionEditingSupport;
-import eu.etaxonomy.taxeditor.editor.view.checklist.edit.RankEditingSupport;
import eu.etaxonomy.taxeditor.editor.view.checklist.filter.ChecklistEditorFilter;
import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistDropdownSelectionListener;
import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistFocusListener;
@Override
public void run() {
- viewer.setInput(taxonList);
+ viewer.setInput(taxonList);
}
});
monitor.worked(1);
private Label statusLabel;
private SortedSet<DefinedTermBase> terms = null;
+ private ToolItem toolItem;
+ private ChecklistDropdownSelectionListener dropListener;
/**
* @return the selectedTaxonNodes
parent.setLayout(gridLayout);
final Text searchText = createSearchBar(parent);
-
-// if (terms != null && !terms.isEmpty()) {
- createToolbar(parent);
-// }
+ createToolbar(parent);
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
getSite().setSelectionProvider(viewer);
searchText.addFocusListener(new ChecklistFocusListener(searchText, modifyListener));
searchText.addModifyListener(modifyListener);
-
- // Layout the viewer
- GridData gridData = new GridData();
- gridData.verticalAlignment = GridData.FILL;
- gridData.horizontalSpan = 3;
- gridData.grabExcessHorizontalSpace = true;
- gridData.grabExcessVerticalSpace = true;
- gridData.horizontalAlignment = GridData.FILL;
- viewer.getControl().setLayoutData(gridData);
+ createGridDataForViewerLayout();
viewer.addFilter(filter);
- createColumns(viewer);
+ createTable();
viewer.setContentProvider(new ChecklistContentProvider());
- viewer.setLabelProvider(new ChecklistLabelProvider());
+ viewer.setLabelProvider(new ChecklistLabelProvider(viewer));
comparator = new ChecklistEditorComparator();
viewer.setComparator(comparator);
createStatusBar(parent);
}
+ private void createGridDataForViewerLayout() {
+ GridData gridData = new GridData();
+ gridData.verticalAlignment = GridData.FILL;
+ gridData.horizontalSpan = 3;
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.grabExcessVerticalSpace = true;
+ gridData.horizontalAlignment = GridData.FILL;
+ viewer.getControl().setLayoutData(gridData);
+ }
+
/**
* @param parent
* @return
*/
private void createToolbar(Composite parent) {
ToolBar toolBar = new ToolBar(parent, SWT.NONE);
- ToolItem toolItem = new ToolItem(toolBar, SWT.DROP_DOWN | SWT.BORDER);
+ toolItem = new ToolItem(toolBar, SWT.DROP_DOWN | SWT.BORDER);
toolItem.setText("Distribution Status");
toolItem.setToolTipText("Show Distribution Status for selected Areas");
- ChecklistDropdownSelectionListener dropListener = new ChecklistDropdownSelectionListener(toolItem, this, terms);
+ createToolbarItems();
+ toolItem.addSelectionListener(dropListener);
+ toolBar.pack();
+ }
+
+ private void createToolbarItems() {
+ dropListener = new ChecklistDropdownSelectionListener(toolItem, this, terms);
for (DefinedTermBase<DefinedTermBase> term : terms) {
if(term!=null){
dropListener.add(term);
}
}
- toolItem.addSelectionListener(dropListener);
- toolBar.pack();
- }
+ }
private void createStatusBar(Composite composite) {
GridData gridData = new GridData();
statusLabel.setLayoutData(gridData);
}
- // This will create the columns for the table
- private void createColumns(TableViewer viewer) {
- Table table = viewer.getTable();
+ private void createTable() {
+ Table table = viewer.getTable();//new Table(parent, viewer.getTable().getStyle());
List<String> titles = new ArrayList<String>();
Collections.addAll(titles, "Taxon", "Author", "Reference", "Rank");
List<Integer> bounds = new ArrayList<Integer>();
Collections.addAll(bounds, 300, 200, 200, 200);
- Map<Integer, Boolean>restoreColumnWidth = new HashMap<Integer, Boolean>();
- if (terms != null) {
- int i = 4;
- for (DefinedTermBase<DefinedTermBase> term : terms) {
- if(term != null){
- restoreColumnWidth.put(i, PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString()));
- titles.add(term.getTitleCache());
- bounds.add(200);
- i++;
- }
- }
- }
-
- for (int i = 0; i < titles.size(); i++) {
+ Map<Integer, Boolean> restoreValuesForColumnWidth = restoreValuesForColumnWidth(titles, bounds);
+ createInitalDistributionColumns(table, titles, bounds, restoreValuesForColumnWidth);
+ table.setSortDirection(SWT.DOWN);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+ }
+ /**
+ * This method creates initially the distribution columns for a table. It should only be called for creation.<br>
+ *<p>
+ *
+ *<b>Notice:</b> If you want to add additional columns later please use <b>addTableViewerColumn()</b>
+ *
+ * @param table
+ * @param titles
+ * @param bounds
+ * @param restoreValuesForColumnWidth
+ */
+ private void createInitalDistributionColumns(Table table,
+ 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(i));
- column.getColumn().setWidth(bounds.get(i));
+ column.getColumn().setText(titles.get(columnIndex));
+ column.getColumn().setWidth(bounds.get(columnIndex));
column.getColumn().setResizable(true);
column.getColumn().setMoveable(true);
- column.getColumn().addSelectionListener(getSelectionAdapter(column.getColumn(), i));
- if (i == 1) {
+ column.getColumn().addSelectionListener(getSelectionAdapter(column.getColumn(), columnIndex));
+ if (columnIndex == 1) {
table.setSortColumn(column.getColumn());
}
- if (i == 3) {
- column.setEditingSupport(new RankEditingSupport(viewer, this));
+ if (columnIndex == 3) {
+ /** uncommented it for now because no rank editing is wanted **/
+// column.setEditingSupport(new RankEditingSupport(viewer, this));
}
- if (i >= 4) {
+ if (columnIndex >= 4) {
//read PrefrenceStore to setWidth according to last saved state
- if(restoreColumnWidth.get(i)){
+ if(restoreValuesForColumnWidth.get(columnIndex)){
column.getColumn().setWidth(100);
}else{
column.getColumn().setWidth(0);
}
- column.setEditingSupport(new DistributionEditingSupport(viewer, this, i));
+ column.setEditingSupport(new DistributionEditingSupport(viewer, this, columnIndex));
}
}
- table.setSortDirection(SWT.DOWN);
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
- }
+ }
+
+ /**
+ * This methods loads the last opened distribution columns for the table viewer from the prefrence store.<br>
+ *<p>
+ * <b>Notice:</b> It adds also the TitleCache to the titles list for the header of each column.<p>
+ *
+ * @param titles
+ * @param bounds
+ * @return Map<Integer, Boolean>
+ */
+ private Map<Integer, Boolean> restoreValuesForColumnWidth(List<String> titles,
+ List<Integer> bounds) {
+ Map<Integer, Boolean> restoreColumnWidth = new HashMap<Integer, Boolean>();
+ if (terms != null) {
+ int columnIndex = 4;
+ for (DefinedTermBase<DefinedTermBase> term : terms) {
+ if(term != null){
+ restoreColumnWidth.put(columnIndex, PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString()));
+ titles.add(term.getTitleCache());
+ bounds.add(200);
+ columnIndex++;
+ }
+ }
+ }
+ return restoreColumnWidth;
+ }
+ /**
+ * This method adds new DistributionColumns to an existing table.
+ *
+ * @param title
+ * @param bound
+ * @param colNumber
+ * @return
+ */
+ private TableViewerColumn addTableViewerColumn(String title, int bound, final int colNumber) {
+ final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
+ final TableColumn column = viewerColumn.getColumn();
+ column.setText(title);
+ column.setWidth(200);
+ viewerColumn.setEditingSupport(new DistributionEditingSupport(viewer, this, colNumber));
+ column.setResizable(true);
+ column.setMoveable(true);
+ return viewerColumn;
+ }
+
+
+
/**
*
* pull data from database and set input for view
viewer.refresh();
}
+ /**
+ * This method should only be called for adding new Distribution columns and reloading the table.<br>
+ * It will hide the old distribution column and load the newly added columns.<br>
+ * <p>
+ * <b>Notice:</b> for data update please use <b>refresh()</b>
+ *
+ */
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public void reload(){
+ //create new Items for Dropdown menue
+ 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;
+ toolItem.removeSelectionListener(dropListener);
+ hideDistributionColumns(oldTerms);
+ createToolbarItems();
+ toolItem.addSelectionListener(dropListener);
+ for(DefinedTermBase term:newTerms){
+ int count = viewer.getTable().getColumnCount();
+ addTableViewerColumn(term.getTitleCache(), 200, count);
+ acitivateNewColumnInDropDownMenu(term);
+ }
+ viewer.setLabelProvider(new ChecklistLabelProvider(viewer));
+ getService().schedule(new ChecklistJob("loading Taxa", selectedTaxonNodes), Job.LONG);
+ table.setRedraw(true);
+ viewer.refresh();
+ }
+
+ private void acitivateNewColumnInDropDownMenu(DefinedTermBase term) {
+ Menu menu = dropListener.getMenu();
+ MenuItem[] items = menu.getItems();
+ for(MenuItem item: items){
+ if(item.getText().equalsIgnoreCase(term.getTitleCache())){
+ item.setSelection(true);
+ PreferencesUtil.getPreferenceStore().setValue(term.getUuid().toString(), true);
+ }
+ }
+ }
+
+ private void hideDistributionColumns(SortedSet<DefinedTermBase> oldTerms) {
+ TableColumn[] columns = viewer.getTable().getColumns();
+ for(int i=4; i<columns.length; i++){
+ //remove all columns
+ columns[i].dispose();
+ Menu menu = dropListener.getMenu();
+ int itemCount = menu.getItemCount();
+ MenuItem item = menu.getItem(i-3);
+ item.setSelection(false);
+ }
+ if(oldTerms != null){
+ for(DefinedTermBase term : oldTerms){
+ PreferencesUtil.getPreferenceStore().setValue(term.getUuid().toString(), false);
+ }
+ }
+ }
+
/**
* <p>
* Getter for the field <code>service</code>.
@Override
public void doSaveAs() {
- // TODO Auto-generated method stub
-
}
@Override
@Override
public boolean isSaveAsAllowed() {
- // TODO Auto-generated method stub
return false;
}
*/
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- // TODO Auto-generated method stub
-
}
/*
*/
@Override
public void contextStop(IMemento memento, IProgressMonitor monitor) {
- // TODO Auto-generated method stub
// IStructuredSelection sel = (IStructuredSelection) this.viewer.getSelection();
// if (sel.isEmpty()) {
// return;
*/
@Override
public void contextRefresh(IProgressMonitor monitor) {
- // TODO Auto-generated method stub
-
}
/*
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.TableColumn;
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.api.service.ITermService;
*/
public class ChecklistLabelProvider extends LabelProvider implements ITableLabelProvider {
- public static final String DEFAULT_ENTRY = "-";
+ public static final String DEFAULT_ENTRY = "";
private IDescriptionService descriptionService;
private final List<DefinedTermBase<?>> namedAreas;
-
-
+ TableViewer viewer = null;
/**
*
namedAreas = loadNamedAreas();
}
+ public ChecklistLabelProvider(TableViewer viewer) {
+ namedAreas = loadNamedAreas();
+ this.viewer = viewer;
+ }
+
/*
* (non-Javadoc)
*
* .Object, int)
*/
/** {@inheritDoc} */
- @Override
+ @Override
public String getColumnText(Object element, int columnIndex) {
descriptionService = CdmStore.getService(IDescriptionService.class);
Taxon taxon = (Taxon) element;
//TODO load areas by this list
- SortedSet<DefinedTermBase<?>> sortedNamedAreas = (SortedSet<DefinedTermBase<?>>) getTermsOrderedByLabels(namedAreas, CdmStore.getDefaultLanguage());
List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null, null, null, null, DESC_INIT_STRATEGY);;
NonViralName<?> nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
if (deb instanceof Distribution) {
Distribution distribution = (Distribution) deb;
String area = distribution.toString();
- if(sortedNamedAreas != null){
- Object[] array = sortedNamedAreas.toArray();
- DefinedTermBase<DefinedTermBase> term = (DefinedTermBase<DefinedTermBase>) array[columnIndex-4];
- if(term != null){
- if (area.equalsIgnoreCase(term.getTitleCache())) {
- return (distribution.getStatus().getTitleCache() != null)?distribution.getStatus().getTitleCache():DEFAULT_ENTRY;
- }
- }
+ if(viewer != null){
+ TableColumn column = viewer.getTable().getColumn(columnIndex);
+ if (area.equalsIgnoreCase(column.getText())) {
+ return (distribution.getStatus().getTitleCache() != null)?distribution.getStatus().getTitleCache():DEFAULT_ENTRY;
+ }
}
}
}
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.Distribution;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.taxon.Taxon;
cellEditor.setLabelProvider(new LabelProvider());
cellEditor.setContentProvider(new ArrayContentProvider());
// TODO set input
- List<PresenceAbsenceTermBase> input = CdmStore.getTermManager()
- .getPreferredTerms(PresenceAbsenceTermBase.class);
+// List<PresenceAbsenceTermBase> input = CdmStore.getTermManager()
+// .getPreferredTerms(PresenceAbsenceTermBase.class);
+ List<DefinedTermBase<?>> input = CdmStore.getTermManager().getPreferredTerms(TermType.PresenceAbsenceTerm);
cellEditor.setInput(input);
}
@Override
protected void setValue(Object element, Object value) {
- if (element instanceof Taxon && value instanceof PresenceAbsenceTermBase) {
+ if (element instanceof Taxon && value instanceof PresenceAbsenceTerm) {
Taxon taxon = (Taxon) element;
- PresenceAbsenceTermBase occurenceStatus = (PresenceAbsenceTermBase) value;
+ PresenceAbsenceTerm occurenceStatus = (PresenceAbsenceTerm) value;
Distribution distribution = getDistributionForColumn(taxon);
if (distribution != null) {
// change status for already exsiting distribution
return null;
}
- private void createDistributionForColumn(Taxon taxon, PresenceAbsenceTermBase occurenceStatus) {
+ private void createDistributionForColumn(Taxon taxon, PresenceAbsenceTerm occurenceStatus) {
TableColumn column = viewer.getTable().getColumn(columnIndex);
ChecklistLabelProvider labelProvider = new ChecklistLabelProvider();
import java.util.SortedSet;
+import org.apache.log4j.Logger;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
public class ChecklistDropdownSelectionListener extends SelectionAdapter {
private final Menu menu;
- private final ToolItem dropdown;
private final ChecklistEditor editor;
private final SortedSet<DefinedTermBase> termSet;
-
+ private Logger logger = Logger.getLogger(ChecklistDropdownSelectionListener.class);
+
public ChecklistDropdownSelectionListener(ToolItem dropdown, ChecklistEditor editor,
SortedSet<DefinedTermBase> termSet) {
- this.dropdown = dropdown;
this.editor = editor;
this.termSet = termSet;
menu = new Menu(dropdown.getParent().getShell());
TableColumn column = null;
DefinedTermBase<DefinedTermBase> selectedTerm = null;
if (termSet != null) {
- int i = 0;
- for (DefinedTermBase<DefinedTermBase> term : termSet) {
- if (term != null) {
- if (selected.getText().equalsIgnoreCase(term.getTitleCache())) {
- selectedTerm = term;
- column = table.getColumn(4 + i);
- }
- i++;
- }
- }
+ TableColumn[] columns = viewer.getTable().getColumns();
+ for(int i=0; i<columns.length; i++){
+ if(selected.getText().equalsIgnoreCase(columns[i].getText())){
+ column = columns[i];
+ logger.info("Column no " +i +" Column Header "+ column.getText() );
+ for (DefinedTermBase<DefinedTermBase> term : termSet) {
+ if(column.getText().equalsIgnoreCase(term.getTitleCache())){
+ selectedTerm = term;
+ break;
+ }
+ }
+ }
+ }
}
if (column != null && column.getWidth() == 0) {
// save column status if shown or not
}
column.setWidth(0);
}
- viewer.refresh();
}
});
}
WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
availableDistributionWizard);
- dialog.open();
+ int open = dialog.open();
+ if(open == 0){
+ editor.reload();
+ }
}
});
new MenuItem(menu, SWT.SEPARATOR);
menu.setVisible(true);
}
}
+
+ public Menu getMenu(){
+ return menu;
+ }
}
\ No newline at end of file
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.view.AbstractCdmEditorViewPart;
/**
* @created Jan 24, 2011
* @version 1.0
*/
-public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails{
+public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData{
public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept";
new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
configurator.setCdmAppController(repo);
configurator.setAddMediaAsMediaSpecimen(true);
- configurator.setDeterminationOnFieldUnitLevel(true);
CdmDefaultImport<Abcd206ImportConfigurator> importer = new CdmDefaultImport<Abcd206ImportConfigurator>();
importer.invoke(configurator);
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.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.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;
*/
public class TransientAgentService implements IAgentService {
- private IAgentService defaultAgentService;
+ private IAgentService defaultService;
/**
* @param defaultAgentService
*/
public TransientAgentService(IAgentService defaultAgentService) {
- this.defaultAgentService = defaultAgentService;
+ this.defaultService = defaultAgentService;
}
/**
*/
@Override
public Pager<AuditEventRecord<AgentBase>> pageAuditEvents(AgentBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
- return defaultAgentService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+ return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
}
/**
*/
@Override
public Pager<Annotation> getAnnotations(AgentBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultAgentService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<Institution> searchInstitutionByCode(String code) {
- return defaultAgentService.searchInstitutionByCode(code);
+ return defaultService.searchInstitutionByCode(code);
}
/**
*/
@Override
public Pager<InstitutionalMembership> getInstitutionalMemberships(Person person, Integer pageSize, Integer pageNumber) {
- return defaultAgentService.getInstitutionalMemberships(person, pageSize, pageNumber);
+ return defaultService.getInstitutionalMemberships(person, pageSize, pageNumber);
}
/**
*/
@Override
public void clear() {
- defaultAgentService.clear();
+ defaultService.clear();
}
/**
*/
@Override
public void lock(AgentBase t, LockOptions lockOptions) {
- defaultAgentService.lock(t, lockOptions);
+ defaultService.lock(t, lockOptions);
}
/**
*/
@Override
public void refresh(AgentBase t, LockOptions lockOptions, List<String> propertyPaths) {
- defaultAgentService.refresh(t, lockOptions, propertyPaths);
+ defaultService.refresh(t, lockOptions, propertyPaths);
}
/**
*/
@Override
public Pager<Person> getMembers(Team team, Integer pageSize, Integer pageNumber) {
- return defaultAgentService.getMembers(team, pageSize, pageNumber);
+ return defaultService.getMembers(team, pageSize, pageNumber);
}
/**
*/
@Override
public void updateTitleCache() {
- defaultAgentService.updateTitleCache();
+ defaultService.updateTitleCache();
}
/**
*/
@Override
public AuditEventRecord<AgentBase> getNextAuditEvent(AgentBase t) {
- return defaultAgentService.getNextAuditEvent(t);
+ return defaultService.getNextAuditEvent(t);
}
/**
*/
@Override
public Pager<Marker> getMarkers(AgentBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultAgentService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache(Class<? extends AgentBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<AgentBase> cacheStrategy, IProgressMonitor monitor) {
- defaultAgentService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+ defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
}
/**
*/
@Override
public Pager<Address> getAddresses(AgentBase agent, Integer pageSize, Integer pageNumber) {
- return defaultAgentService.getAddresses(agent, pageSize, pageNumber);
+ return defaultService.getAddresses(agent, pageSize, pageNumber);
}
/**
*/
@Override
public AuditEventRecord<AgentBase> getPreviousAuditEvent(AgentBase t) {
- return defaultAgentService.getPreviousAuditEvent(t);
+ return defaultService.getPreviousAuditEvent(t);
}
/**
*/
@Override
public int count(Class<? extends AgentBase> clazz) {
- return defaultAgentService.count(clazz);
+ return defaultService.count(clazz);
}
/**
*/
@Override
public Pager<AgentBase> search(Class<? extends AgentBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultAgentService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@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 defaultAgentService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+ return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
}
/**
*/
@Override
public AgentBase find(LSID lsid) {
- return defaultAgentService.find(lsid);
+ return defaultService.find(lsid);
}
/**
*/
@Override
public DeleteResult delete(AgentBase persistentObject) {
- return defaultAgentService.delete(persistentObject);
+ return defaultService.delete(persistentObject);
}
/**
*/
@Override
public List<Object[]> groupMarkers(Class<? extends AgentBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultAgentService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+ return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public boolean exists(UUID uuid) {
- return defaultAgentService.exists(uuid);
+ return defaultService.exists(uuid);
}
/**
*/
@Override
public AgentBase replace(AgentBase x, AgentBase y) {
- return defaultAgentService.replace(x, y);
+ return defaultService.replace(x, y);
}
/**
*/
@Override
public List<AgentBase> find(Set<UUID> uuidSet) {
- return defaultAgentService.find(uuidSet);
+ return defaultService.find(uuidSet);
}
/**
*/
@Override
public Pager<IdentifiableSource> getSources(AgentBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultAgentService.getSources(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public AgentBase find(UUID uuid) {
- return defaultAgentService.find(uuid);
+ return defaultService.find(uuid);
}
/**
*/
@Override
public List<UuidAndTitleCache<Person>> getPersonUuidAndTitleCache() {
- return defaultAgentService.getPersonUuidAndTitleCache();
+ return defaultService.getPersonUuidAndTitleCache();
}
/**
*/
@Override
public List<UuidAndTitleCache<Team>> getTeamUuidAndTitleCache() {
- return defaultAgentService.getTeamUuidAndTitleCache();
+ return defaultService.getTeamUuidAndTitleCache();
}
/**
*/
@Override
public AgentBase find(int id) {
- return defaultAgentService.find(id);
+ return defaultService.find(id);
}
/**
*/
@Override
public Pager<Rights> getRights(AgentBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultAgentService.getRights(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public int countMarkers(Class<? extends AgentBase> clazz, Boolean technical) {
- return defaultAgentService.countMarkers(clazz, technical);
+ return defaultService.countMarkers(clazz, technical);
}
/**
*/
@Override
public List<UuidAndTitleCache<Team>> getTeamUuidAndNomenclaturalTitle() {
- return defaultAgentService.getTeamUuidAndNomenclaturalTitle();
+ return defaultService.getTeamUuidAndNomenclaturalTitle();
}
/**
*/
@Override
public List<AgentBase> findById(Set<Integer> idSet) {
- return defaultAgentService.findById(idSet);
+ return defaultService.findById(idSet);
}
/**
*/
@Override
public List<UuidAndTitleCache<Institution>> getInstitutionUuidAndTitleCache() {
- return defaultAgentService.getInstitutionUuidAndTitleCache();
+ return defaultService.getInstitutionUuidAndTitleCache();
}
/**
*/
@Override
public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
- return defaultAgentService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+ return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
}
/**
*/
@Override
public Session getSession() {
- return defaultAgentService.getSession();
+ return defaultService.getSession();
}
/**
*/
@Override
public List<UuidAndTitleCache<AgentBase>> getUuidAndTitleCache() {
- return defaultAgentService.getUuidAndTitleCache();
+ return defaultService.getUuidAndTitleCache();
}
/**
*/
@Override
public List<Object[]> group(Class<? extends AgentBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
- return defaultAgentService.group(clazz, limit, start, groups, propertyPaths);
+ return defaultService.group(clazz, limit, start, groups, propertyPaths);
}
/**
*/
@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 defaultAgentService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends AgentBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultAgentService.list(type, limit, start, orderHints, propertyPaths);
+ return defaultService.list(type, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<AgentBase> findByTitle(IIdentifiableEntityServiceConfigurator<AgentBase> configurator) {
- return defaultAgentService.findByTitle(configurator);
+ return defaultService.findByTitle(configurator);
}
/**
*/
@Override
public Integer countByTitle(Class<? extends AgentBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
- return defaultAgentService.countByTitle(clazz, queryString, matchmode, criteria);
+ return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
}
/**
*/
@Override
public AgentBase load(UUID uuid) {
- return defaultAgentService.load(uuid);
+ return defaultService.load(uuid);
}
/**
*/
@Override
public AgentBase load(UUID uuid, List<String> propertyPaths) {
- return defaultAgentService.load(uuid, propertyPaths);
+ return defaultService.load(uuid, propertyPaths);
}
/**
*/
@Override
public Integer countByTitle(IIdentifiableEntityServiceConfigurator<AgentBase> configurator) {
- return defaultAgentService.countByTitle(configurator);
+ return defaultService.countByTitle(configurator);
}
/**
*/
@Override
public AgentBase merge(AgentBase transientObject) {
- return defaultAgentService.merge(transientObject);
+ return defaultService.merge(transientObject);
}
/**
*/
@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 defaultAgentService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends AgentBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultAgentService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public UUID refresh(AgentBase persistentObject) {
- return defaultAgentService.refresh(persistentObject);
+ return defaultService.refresh(persistentObject);
}
/**
*/
@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 defaultAgentService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<AgentBase> rows(String tableName, int limit, int start) {
- return defaultAgentService.rows(tableName, limit, start);
+ return defaultService.rows(tableName, limit, start);
}
/**
*/
@Override
public UUID update(AgentBase transientObject) {
- return defaultAgentService.update(transientObject);
+ return defaultService.update(transientObject);
}
/**
*/
@Override
public List<AgentBase> list(AgentBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultAgentService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+ return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public int deduplicate(Class<? extends AgentBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
- return defaultAgentService.deduplicate(clazz, matchStrategy, mergeStrategy);
+ return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
}
/**
*/
@Override
public Pager<AgentBase> findTitleCache(Class<? extends AgentBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
- return defaultAgentService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+ return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
}
@Override
- public List<String> isDeletable(AgentBase object,
+ public DeleteResult isDeletable(AgentBase object,
DeleteConfiguratorBase config) {
// TODO Auto-generated method stub
return null;
@Override
public AgentBase findWithoutFlush(UUID uuid) {
- return defaultAgentService.findWithoutFlush(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);
+ }
}
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.IEntityValidationResultService;
import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;
return defaultApplicationConfiguration.getTransactionManager();
}
- /**
- * @return
- * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getUserService()
- */
@Override
public IUserService getUserService() {
return defaultApplicationConfiguration.getUserService();
// return new TransientVocabularyService(defaultApplicationConfiguration.getVocabularyService());
}
- /**
- * @return
- * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getWorkingSetService()
- */
@Override
public IWorkingSetService getWorkingSetService() {
return defaultApplicationConfiguration.getWorkingSetService();
// return new TransientWorkingSetService(defaultApplicationConfiguration.getWorkingSetService());
}
- /**
- * @return
- * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#startTransaction()
- */
@Override
public TransactionStatus startTransaction() {
return defaultApplicationConfiguration.startTransaction();
}
- /**
- * @param arg0
- * @return
- * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#startTransaction(java.lang.Boolean)
- */
+
@Override
public TransactionStatus startTransaction(Boolean arg0) {
return defaultApplicationConfiguration.startTransaction(arg0);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getPrimerService()
- */
@Override
public IPrimerService getPrimerService() {
return defaultApplicationConfiguration.getPrimerService();
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getAmplificationService()
- */
@Override
public IAmplificationService getAmplificationService() {
return defaultApplicationConfiguration.getAmplificationService();
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getSequenceService()
- */
@Override
public ISequenceService getSequenceService() {
return defaultApplicationConfiguration.getSequenceService();
}
+
+ @Override
+ public IEntityConstraintViolationService getEntityConstraintViolationService() {
+ return defaultApplicationConfiguration.getEntityConstraintViolationService();
+ }
+
+ @Override
+ public IEntityValidationResultService getEntityValidationResultService() {
+ return defaultApplicationConfiguration.getEntityValidationResultService();
+ }
}
import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.IClassificationService;
+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;
*/
public class TransientClassificationService implements IClassificationService {
- private final IClassificationService defaultClassificationService;
+ private final IClassificationService defaultService;
/**
* @param defaultClassificationService
*/
public TransientClassificationService(IClassificationService defaultClassificationService) {
- this.defaultClassificationService = defaultClassificationService;
+ this.defaultService = defaultClassificationService;
}
/**
*/
@Override
public Pager<AuditEventRecord<Classification>> pageAuditEvents(Classification t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
- return defaultClassificationService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+ return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
}
/**
*/
@Override
public Pager<Annotation> getAnnotations(Classification annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultClassificationService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public TaxonNode getTaxonNodeByUuid(UUID uuid) {
- return defaultClassificationService.getTaxonNodeByUuid(uuid);
+ return defaultService.getTaxonNodeByUuid(uuid);
}
/**
*/
@Override
public ITaxonTreeNode getTreeNodeByUuid(UUID uuid) {
- return defaultClassificationService.getTreeNodeByUuid(uuid);
+ return defaultService.getTreeNodeByUuid(uuid);
}
/**
*/
@Override
public void clear() {
- defaultClassificationService.clear();
+ defaultService.clear();
}
/**
*/
@Override
public List<Classification> listClassifications(Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultClassificationService.listClassifications(limit, start, orderHints, propertyPaths);
+ return defaultService.listClassifications(limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public void lock(Classification t, LockOptions lockOptions) {
- defaultClassificationService.lock(t, lockOptions);
+ defaultService.lock(t, lockOptions);
}
/**
*/
@Override
public void refresh(Classification t, LockOptions lockOptions, List<String> propertyPaths) {
- defaultClassificationService.refresh(t, lockOptions, propertyPaths);
+ defaultService.refresh(t, lockOptions, propertyPaths);
}
/**
@Deprecated
@Override
public TaxonNode loadTaxonNodeByTaxon(Taxon taxon, UUID classificationUuid, List<String> propertyPaths) {
- return defaultClassificationService.loadTaxonNodeByTaxon(taxon, classificationUuid, propertyPaths);
+ return defaultService.loadTaxonNodeByTaxon(taxon, classificationUuid, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache() {
- defaultClassificationService.updateTitleCache();
+ defaultService.updateTitleCache();
}
/**
*/
@Override
public AuditEventRecord<Classification> getNextAuditEvent(Classification t) {
- return defaultClassificationService.getNextAuditEvent(t);
+ return defaultService.getNextAuditEvent(t);
}
/**
*/
@Override
public Pager<Marker> getMarkers(Classification annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultClassificationService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache(Class<? extends Classification> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<Classification> cacheStrategy, IProgressMonitor monitor) {
- defaultClassificationService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+ defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
}
/**
@Deprecated
@Override
public TaxonNode loadTaxonNode(TaxonNode taxonNode, List<String> propertyPaths) {
- return defaultClassificationService.loadTaxonNode(taxonNode, propertyPaths);
+ return defaultService.loadTaxonNode(taxonNode, propertyPaths);
}
/**
*/
@Override
public AuditEventRecord<Classification> getPreviousAuditEvent(Classification t) {
- return defaultClassificationService.getPreviousAuditEvent(t);
+ return defaultService.getPreviousAuditEvent(t);
}
/**
@Deprecated
@Override
public List<TaxonNode> loadRankSpecificRootNodes(Classification classification, Rank rank, Integer limit, Integer start, List<String> propertyPaths) {
- return defaultClassificationService.loadRankSpecificRootNodes(classification, rank, limit, start, propertyPaths);
+ return defaultService.loadRankSpecificRootNodes(classification, rank, limit, start, propertyPaths);
}
/**
*/
@Override
public int count(Class<? extends Classification> clazz) {
- return defaultClassificationService.count(clazz);
+ return defaultService.count(clazz);
}
/**
*/
@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 defaultClassificationService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+ return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
}
/**
*/
@Override
public Classification find(LSID lsid) {
- return defaultClassificationService.find(lsid);
+ return defaultService.find(lsid);
}
/**
*/
@Override
public DeleteResult delete(Classification persistentObject) {
- return defaultClassificationService.delete(persistentObject);
+ return defaultService.delete(persistentObject);
}
/**
*/
@Override
public List<Object[]> groupMarkers(Class<? extends Classification> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultClassificationService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+ return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public boolean exists(UUID uuid) {
- return defaultClassificationService.exists(uuid);
+ return defaultService.exists(uuid);
}
/**
*/
@Override
public Classification replace(Classification x, Classification y) {
- return defaultClassificationService.replace(x, y);
+ return defaultService.replace(x, y);
}
/**
*/
@Override
public List<Classification> find(Set<UUID> uuidSet) {
- return defaultClassificationService.find(uuidSet);
+ return defaultService.find(uuidSet);
}
/**
*/
@Override
public Pager<IdentifiableSource> getSources(Classification t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultClassificationService.getSources(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public List<TaxonNode> listRankSpecificRootNodes(Classification classification, Rank rank, Integer pageSize, Integer pageIndex, List<String> propertyPaths) {
- return defaultClassificationService.listRankSpecificRootNodes(classification, rank, pageSize, pageIndex, propertyPaths);
+ return defaultService.listRankSpecificRootNodes(classification, rank, pageSize, pageIndex, propertyPaths);
}
/**
*/
@Override
public Classification find(UUID uuid) {
- return defaultClassificationService.find(uuid);
+ return defaultService.find(uuid);
}
/**
*/
@Override
public Classification find(int id) {
- return defaultClassificationService.find(id);
+ return defaultService.find(id);
}
/**
*/
@Override
public Pager<Rights> getRights(Classification t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultClassificationService.getRights(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public int countMarkers(Class<? extends Classification> clazz, Boolean technical) {
- return defaultClassificationService.countMarkers(clazz, technical);
+ return defaultService.countMarkers(clazz, technical);
}
/**
*/
@Override
public List<Classification> findById(Set<Integer> idSet) {
- return defaultClassificationService.findById(idSet);
+ return defaultService.findById(idSet);
}
/**
*/
@Override
public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
- return defaultClassificationService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+ return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
}
/**
*/
@Override
public Pager<TaxonNode> pageRankSpecificRootNodes(Classification classification, Rank rank, Integer pageSize, Integer pageIndex, List<String> propertyPaths) {
- return defaultClassificationService.pageRankSpecificRootNodes(classification, rank, pageSize, pageIndex, propertyPaths);
+ return defaultService.pageRankSpecificRootNodes(classification, rank, pageSize, pageIndex, propertyPaths);
}
/**
*/
@Override
public Session getSession() {
- return defaultClassificationService.getSession();
+ return defaultService.getSession();
}
/**
*/
@Override
public List<UuidAndTitleCache<Classification>> getUuidAndTitleCache() {
- return defaultClassificationService.getUuidAndTitleCache();
+ return defaultService.getUuidAndTitleCache();
}
/**
*/
@Override
public List<Object[]> group(Class<? extends Classification> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
- return defaultClassificationService.group(clazz, limit, start, groups, propertyPaths);
+ return defaultService.group(clazz, limit, start, groups, propertyPaths);
}
/**
*/
@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 defaultClassificationService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<TaxonNode> loadTreeBranch(TaxonNode taxonNode, Rank baseRank, List<String> propertyPaths) {
- return defaultClassificationService.loadTreeBranch(taxonNode, baseRank, propertyPaths);
+ return defaultService.loadTreeBranch(taxonNode, baseRank, propertyPaths);
}
/**
*/
@Override
public <S extends Classification> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultClassificationService.list(type, limit, start, orderHints, propertyPaths);
+ return defaultService.list(type, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public List<TaxonNode> loadTreeBranchToTaxon(Taxon taxon, Classification classification, Rank baseRank, List<String> propertyPaths) {
- return defaultClassificationService.loadTreeBranchToTaxon(taxon, classification, baseRank, propertyPaths);
+ return defaultService.loadTreeBranchToTaxon(taxon, classification, baseRank, propertyPaths);
}
/**
*/
@Override
public Pager<Classification> findByTitle(IIdentifiableEntityServiceConfigurator<Classification> configurator) {
- return defaultClassificationService.findByTitle(configurator);
+ return defaultService.findByTitle(configurator);
}
/**
*/
@Override
public Integer countByTitle(Class<? extends Classification> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
- return defaultClassificationService.countByTitle(clazz, queryString, matchmode, criteria);
+ return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
}
/**
*/
@Override
public Classification load(UUID uuid) {
- return defaultClassificationService.load(uuid);
+ return defaultService.load(uuid);
}
/**
*/
@Override
public Classification load(UUID uuid, List<String> propertyPaths) {
- return defaultClassificationService.load(uuid, propertyPaths);
+ return defaultService.load(uuid, propertyPaths);
}
/**
*/
@Override
public Integer countByTitle(IIdentifiableEntityServiceConfigurator<Classification> configurator) {
- return defaultClassificationService.countByTitle(configurator);
+ return defaultService.countByTitle(configurator);
}
/**
*/
@Override
public Classification merge(Classification transientObject) {
- return defaultClassificationService.merge(transientObject);
+ return defaultService.merge(transientObject);
}
/**
*/
@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 defaultClassificationService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends Classification> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultClassificationService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public List<TaxonNode> loadChildNodesOfTaxonNode(TaxonNode taxonNode, List<String> propertyPaths) {
- return defaultClassificationService.loadChildNodesOfTaxonNode(taxonNode, propertyPaths);
+ return defaultService.loadChildNodesOfTaxonNode(taxonNode, propertyPaths);
}
/**
*/
@Override
public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(Classification classification) {
- return defaultClassificationService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification);
+ return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification);
}
/**
@Deprecated
@Override
public Map<UUID, List<MediaRepresentation>> getAllMediaForChildNodes(Taxon taxon, Classification taxTree, List<String> propertyPaths, int size, int height, int widthOrDuration, String[] mimeTypes) {
- return defaultClassificationService.getAllMediaForChildNodes(taxon, taxTree, propertyPaths, size, height, widthOrDuration, mimeTypes);
+ return defaultService.getAllMediaForChildNodes(taxon, taxTree, propertyPaths, size, height, widthOrDuration, mimeTypes);
}
/**
*/
@Override
public UUID refresh(Classification persistentObject) {
- return defaultClassificationService.refresh(persistentObject);
+ return defaultService.refresh(persistentObject);
}
/**
*/
@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 defaultClassificationService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Map<UUID, List<MediaRepresentation>> getAllMediaForChildNodes(TaxonNode taxonNode, List<String> propertyPaths, int size, int height, int widthOrDuration, String[] mimeTypes) {
- return defaultClassificationService.getAllMediaForChildNodes(taxonNode, propertyPaths, size, height, widthOrDuration, mimeTypes);
+ return defaultService.getAllMediaForChildNodes(taxonNode, propertyPaths, size, height, widthOrDuration, mimeTypes);
}
/**
*/
@Override
public List<Classification> rows(String tableName, int limit, int start) {
- return defaultClassificationService.rows(tableName, limit, start);
+ return defaultService.rows(tableName, limit, start);
}
/**
@Deprecated
@Override
public UUID removeTaxonNode(TaxonNode taxonNode) {
- return defaultClassificationService.removeTaxonNode(taxonNode);
+ return defaultService.removeTaxonNode(taxonNode);
}
/**
*/
@Override
public UUID removeTreeNode(ITaxonTreeNode treeNode) {
- return defaultClassificationService.removeTreeNode(treeNode);
+ return defaultService.removeTreeNode(treeNode);
}
/**
*/
@Override
public Pager<Classification> search(Class<? extends Classification> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultClassificationService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<TaxonNode> getAllNodes() {
- return defaultClassificationService.getAllNodes();
+ return defaultService.getAllNodes();
}
/**
*/
@Override
public UUID update(Classification transientObject) {
- return defaultClassificationService.update(transientObject);
+ return defaultService.update(transientObject);
}
/**
*/
@Override
public List<Classification> list(Classification example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultClassificationService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+ return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public int deduplicate(Class<? extends Classification> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
- return defaultClassificationService.deduplicate(clazz, matchStrategy, mergeStrategy);
+ return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
}
/**
*/
@Override
public Pager<Classification> findTitleCache(Class<? extends Classification> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
- return defaultClassificationService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+ return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
}
/* (non-Javadoc)
@Override
public List<TaxonNode> listChildNodesOfTaxon(UUID taxonUuid, UUID classificationUuid, Integer pageSize,
Integer pageIndex, List<String> propertyPaths) {
- return defaultClassificationService.listChildNodesOfTaxon(taxonUuid, classificationUuid, pageSize, pageIndex, propertyPaths);
+ return defaultService.listChildNodesOfTaxon(taxonUuid, classificationUuid, pageSize, pageIndex, propertyPaths);
}
@Override
- public List<String> isDeletable(Classification object,
+ public DeleteResult isDeletable(Classification object,
DeleteConfiguratorBase config) {
// TODO Auto-generated method stub
return null;
@Override
public Classification findWithoutFlush(UUID uuid) {
- return defaultClassificationService.findWithoutFlush(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);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IClassificationService#createHierarchyInClassification(java.util.Map, eu.etaxonomy.cdm.model.taxon.Classification)
+ */
+ @Override
+ public Classification createHierarchyInClassification(Classification arg1, CreateHierarchyForClassificationConfigurator arg2) {
+ return defaultService.createHierarchyInClassification(arg1, arg2);
+ }
+
}
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.agent.AgentBase;
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;
* @see eu.etaxonomy.cdm.api.service.IVersionableService#isDeletable(eu.etaxonomy.cdm.model.common.VersionableEntity, eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase)
*/
@Override
- public List<String> isDeletable(Collection object, DeleteConfiguratorBase config) {
+ public DeleteResult isDeletable(Collection object, DeleteConfiguratorBase config) {
return defaultService.isDeletable(object, config);
}
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);
+ }
}
import eu.etaxonomy.cdm.api.service.IDescriptionService;
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.AgentBase;
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.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+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;
*/
public class TransientDescriptionService implements IDescriptionService {
- private IDescriptionService defaultDescriptionService;
+ private final IDescriptionService defaultService;
/**
* @param defaultDescriptionService
*/
public TransientDescriptionService(IDescriptionService defaultDescriptionService) {
- this.defaultDescriptionService = defaultDescriptionService;
+ this.defaultService = defaultDescriptionService;
}
/**
*/
@Override
public Pager<AuditEventRecord<DescriptionBase>> pageAuditEvents(DescriptionBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
- return defaultDescriptionService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+ return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
}
/**
*/
@Override
public Pager<Annotation> getAnnotations(DescriptionBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void clear() {
- defaultDescriptionService.clear();
+ defaultService.clear();
}
/**
*/
@Override
public void lock(DescriptionBase t, LockOptions lockOptions) {
- defaultDescriptionService.lock(t, lockOptions);
+ defaultService.lock(t, lockOptions);
}
/**
*/
@Override
public void refresh(DescriptionBase t, LockOptions lockOptions, List<String> propertyPaths) {
- defaultDescriptionService.refresh(t, lockOptions, propertyPaths);
+ defaultService.refresh(t, lockOptions, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache() {
- defaultDescriptionService.updateTitleCache();
+ defaultService.updateTitleCache();
}
/**
*/
@Override
public AuditEventRecord<DescriptionBase> getNextAuditEvent(DescriptionBase t) {
- return defaultDescriptionService.getNextAuditEvent(t);
+ return defaultService.getNextAuditEvent(t);
}
/**
@Deprecated
@Override
public TermVocabulary<Feature> getDefaultFeatureVocabulary() {
- return defaultDescriptionService.getDefaultFeatureVocabulary();
+ return defaultService.getDefaultFeatureVocabulary();
}
/**
*/
@Override
public Pager<Marker> getMarkers(DescriptionBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public TermVocabulary<Feature> getFeatureVocabulary(UUID uuid) {
- return defaultDescriptionService.getFeatureVocabulary(uuid);
+ return defaultService.getFeatureVocabulary(uuid);
}
/**
*/
@Override
public void updateTitleCache(Class<? extends DescriptionBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<DescriptionBase> cacheStrategy, IProgressMonitor monitor) {
- defaultDescriptionService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+ defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
}
/**
*/
@Override
public AuditEventRecord<DescriptionBase> getPreviousAuditEvent(DescriptionBase t) {
- return defaultDescriptionService.getPreviousAuditEvent(t);
+ return defaultService.getPreviousAuditEvent(t);
}
/**
*/
@Override
public DescriptionElementBase getDescriptionElementByUuid(UUID uuid) {
- return defaultDescriptionService.getDescriptionElementByUuid(uuid);
+ return defaultService.getDescriptionElementByUuid(uuid);
}
/**
*/
@Override
public int count(Class<? extends DescriptionBase> clazz) {
- return defaultDescriptionService.count(clazz);
+ return defaultService.count(clazz);
}
/**
*/
@Override
public DescriptionElementBase loadDescriptionElement(UUID uuid, List<String> propertyPaths) {
- return defaultDescriptionService.loadDescriptionElement(uuid, propertyPaths);
+ return defaultService.loadDescriptionElement(uuid, propertyPaths);
}
/**
*/
@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 defaultDescriptionService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+ return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
}
/**
*/
@Override
public DescriptionBase find(LSID lsid) {
- return defaultDescriptionService.find(lsid);
+ return defaultService.find(lsid);
}
/**
*/
@Override
public DeleteResult delete(DescriptionBase persistentObject) {
- return defaultDescriptionService.delete(persistentObject);
+ return defaultService.delete(persistentObject);
}
/**
*/
@Override
public List<Object[]> groupMarkers(Class<? extends DescriptionBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+ return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public boolean exists(UUID uuid) {
- return defaultDescriptionService.exists(uuid);
+ return defaultService.exists(uuid);
}
/**
*/
@Override
public DescriptionBase replace(DescriptionBase x, DescriptionBase y) {
- return defaultDescriptionService.replace(x, y);
+ return defaultService.replace(x, y);
}
/**
*/
@Override
public List<DescriptionBase> find(Set<UUID> uuidSet) {
- return defaultDescriptionService.find(uuidSet);
+ return defaultService.find(uuidSet);
}
/**
*/
@Override
public Pager<IdentifiableSource> getSources(DescriptionBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.getSources(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public UUID deleteDescriptionElement(DescriptionElementBase descriptionElement) {
- return defaultDescriptionService.deleteDescriptionElement(descriptionElement);
+ return defaultService.deleteDescriptionElement(descriptionElement);
}
/**
*/
@Override
public DescriptionBase find(UUID uuid) {
- return defaultDescriptionService.find(uuid);
+ return defaultService.find(uuid);
}
/**
*/
@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 defaultDescriptionService.page(type, hasMedia, hasText, feature, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.page(type, hasMedia, hasText, feature, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public DescriptionBase find(int id) {
- return defaultDescriptionService.find(id);
+ return defaultService.find(id);
}
/**
*/
@Override
public Pager<Rights> getRights(DescriptionBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.getRights(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public int countMarkers(Class<? extends DescriptionBase> clazz, Boolean technical) {
- return defaultDescriptionService.countMarkers(clazz, technical);
+ return defaultService.countMarkers(clazz, technical);
}
/**
*/
@Override
public List<DescriptionBase> findById(Set<Integer> idSet) {
- return defaultDescriptionService.findById(idSet);
+ return defaultService.findById(idSet);
}
/**
*/
@Override
public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
- return defaultDescriptionService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+ return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
}
/**
*/
@Override
public Session getSession() {
- return defaultDescriptionService.getSession();
+ return defaultService.getSession();
}
/**
*/
@Override
public List<UuidAndTitleCache<DescriptionBase>> getUuidAndTitleCache() {
- return defaultDescriptionService.getUuidAndTitleCache();
+ return defaultService.getUuidAndTitleCache();
}
/**
*/
@Override
public List<Object[]> group(Class<? extends DescriptionBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
- return defaultDescriptionService.group(clazz, limit, start, groups, propertyPaths);
+ return defaultService.group(clazz, limit, start, groups, propertyPaths);
}
/**
*/
@Override
public int count(Class<? extends DescriptionBase> type, Boolean hasImages, Boolean hasText, Set<Feature> feature) {
- return defaultDescriptionService.count(type, hasImages, hasText, feature);
+ return defaultService.count(type, hasImages, hasText, feature);
}
/**
*/
@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 defaultDescriptionService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends DescriptionBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.list(type, limit, start, orderHints, propertyPaths);
+ return defaultService.list(type, limit, start, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public Pager<DescriptionElementBase> getDescriptionElements(DescriptionBase description, Set<Feature> features, Class<? extends DescriptionElementBase> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.getDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
+ return defaultService.getDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public Pager<DescriptionBase> findByTitle(IIdentifiableEntityServiceConfigurator<DescriptionBase> configurator) {
- return defaultDescriptionService.findByTitle(configurator);
+ return defaultService.findByTitle(configurator);
}
/**
*/
@Override
public Integer countByTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
- return defaultDescriptionService.countByTitle(clazz, queryString, matchmode, criteria);
+ return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
}
/**
*/
@Override
public DescriptionBase load(UUID uuid) {
- return defaultDescriptionService.load(uuid);
+ return defaultService.load(uuid);
}
/**
*/
@Override
public DescriptionBase load(UUID uuid, List<String> propertyPaths) {
- return defaultDescriptionService.load(uuid, propertyPaths);
+ return defaultService.load(uuid, propertyPaths);
}
/**
*/
@Override
public Integer countByTitle(IIdentifiableEntityServiceConfigurator<DescriptionBase> configurator) {
- return defaultDescriptionService.countByTitle(configurator);
+ return defaultService.countByTitle(configurator);
}
/**
*/
@Override
public DescriptionBase merge(DescriptionBase transientObject) {
- return defaultDescriptionService.merge(transientObject);
+ return defaultService.merge(transientObject);
}
/**
*/
@Override
public Pager<DescriptionElementBase> pageDescriptionElements(DescriptionBase description, Class<? extends DescriptionBase> descriptionType, Set<Feature> features, Class<? extends DescriptionElementBase> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.pageDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
+ return defaultService.pageDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
}
/**
*/
@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 defaultDescriptionService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends DescriptionBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public UUID refresh(DescriptionBase persistentObject) {
- return defaultDescriptionService.refresh(persistentObject);
+ return defaultService.refresh(persistentObject);
}
/**
*/
@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 defaultDescriptionService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public List<DescriptionElementBase> listDescriptionElements(DescriptionBase description, Set<Feature> features, Class<? extends DescriptionElementBase> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.listDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
+ return defaultService.listDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public List<DescriptionBase> rows(String tableName, int limit, int start) {
- return defaultDescriptionService.rows(tableName, limit, start);
+ return defaultService.rows(tableName, limit, start);
}
/**
*/
@Override
public Pager<DescriptionBase> search(Class<? extends DescriptionBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public UUID update(DescriptionBase transientObject) {
- return defaultDescriptionService.update(transientObject);
+ return defaultService.update(transientObject);
}
/**
*/
@Override
public List<DescriptionElementBase> listDescriptionElements(DescriptionBase description, Class<? extends DescriptionBase> descriptionType, Set<Feature> features, Class<? extends DescriptionElementBase> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.listDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
+ return defaultService.listDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public List<DescriptionBase> list(DescriptionBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+ return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public int deduplicate(Class<? extends DescriptionBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
- return defaultDescriptionService.deduplicate(clazz, matchStrategy, mergeStrategy);
+ return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
}
/**
*/
@Override
public Pager<Annotation> getDescriptionElementAnnotations(DescriptionElementBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.getDescriptionElementAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getDescriptionElementAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<DescriptionBase> findTitleCache(Class<? extends DescriptionBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
- return defaultDescriptionService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+ return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
}
/**
*/
@Override
public Pager<TaxonDescription> pageTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.pageTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
+ return defaultService.pageTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonDescription> pageTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.pageTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
+ return defaultService.pageTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public List<TaxonDescription> listTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.listTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
+ return defaultService.listTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public List<TaxonDescription> listTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.listTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
+ return defaultService.listTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public List<Media> listTaxonDescriptionMedia(UUID taxonUuid, boolean limitToGalleries, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.listTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes, pageSize, pageNumber, propertyPaths);
+ return defaultService.listTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public int countTaxonDescriptionMedia(UUID taxonUuid, boolean limitToGalleries, Set<MarkerType> markerTypes) {
- return defaultDescriptionService.countTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes);
+ return defaultService.countTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes);
}
/**
*/
@Override
public Pager<TaxonNameDescription> getTaxonNameDescriptions(TaxonNameBase name, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.getTaxonNameDescriptions(name, pageSize, pageNumber, propertyPaths);
+ return defaultService.getTaxonNameDescriptions(name, pageSize, pageNumber, propertyPaths);
}
/**
* @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, PresenceAbsenceTermBase presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.searchDescriptionByDistribution(namedAreas, presence, pageSize, pageNumber, orderHints, propertyPaths);
+ 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);
}
/**
*/
@Override
public Pager<DescriptionElementBase> searchElements(Class<? extends DescriptionElementBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultDescriptionService.searchElements(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.searchElements(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<Media> getMedia(DescriptionElementBase descriptionElement, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.getMedia(descriptionElement, pageSize, pageNumber, propertyPaths);
+ return defaultService.getMedia(descriptionElement, pageSize, pageNumber, propertyPaths);
}
/**
@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 defaultDescriptionService.getDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
+ return defaultService.getDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public <T extends DescriptionElementBase> List<T> listDescriptionElementsForTaxon(Taxon taxon, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.listDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
+ return defaultService.listDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public <T extends DescriptionElementBase> Pager<T> pageDescriptionElementsForTaxon(Taxon taxon, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.pageDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
+ return defaultService.pageDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public String generateNaturalLanguageDescription(FeatureTree featureTree, TaxonDescription description, List<Language> preferredLanguages, String separator) {
- return defaultDescriptionService.generateNaturalLanguageDescription(featureTree, description, preferredLanguages, separator);
+ return defaultService.generateNaturalLanguageDescription(featureTree, description, preferredLanguages, separator);
}
/**
@Deprecated
@Override
public boolean hasStructuredData(DescriptionBase<?> description) {
- return defaultDescriptionService.hasStructuredData(description);
+ return defaultService.hasStructuredData(description);
}
/**
*/
@Override
public void moveDescriptionElementsToDescription(Collection<DescriptionElementBase> descriptionElements, DescriptionBase targetDescription, boolean isPaste) {
- defaultDescriptionService.moveDescriptionElementsToDescription(descriptionElements, targetDescription, isPaste);
+ defaultService.moveDescriptionElementsToDescription(descriptionElements, targetDescription, isPaste);
}
/* (non-Javadoc)
*/
@Override
public Pager<NamedArea> pageNamedAreasInUse(Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultDescriptionService.pageNamedAreasInUse(pageSize, pageNumber, propertyPaths);
+ return defaultService.pageNamedAreasInUse(pageSize, pageNumber, propertyPaths);
}
/* (non-Javadoc)
*/
@Override
public DistributionTree getOrderedDistributions(Set<TaxonDescription> taxonDescriptions, boolean subAreaPreference, boolean statusOrderPreference, Set<MarkerType> hideMarkedAreas, Set<NamedAreaLevel> omitLevels, List<String> propertyPaths) {
- return defaultDescriptionService.getOrderedDistributions(taxonDescriptions, subAreaPreference, statusOrderPreference, hideMarkedAreas, omitLevels, propertyPaths);
+ return defaultService.getOrderedDistributions(taxonDescriptions, subAreaPreference, statusOrderPreference, hideMarkedAreas, omitLevels, propertyPaths);
}
@Override
- public List<String> isDeletable(DescriptionBase object,
+ public DeleteResult isDeletable(DescriptionBase object,
DeleteConfiguratorBase config) {
// TODO Auto-generated method stub
return null;
@Override
public DescriptionBase findWithoutFlush(UUID uuid) {
- return defaultDescriptionService.findWithoutFlush(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 UUID deleteDescription(DescriptionBase description) {
+ return defaultService.deleteDescription(description);
+ }
}
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.agent.AgentBase;
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;
*/
public class TransientNameService implements INameService {
- private INameService defaultNameService;
+ private INameService defaultService;
/**
*
*/
public TransientNameService(INameService defaultNameService) {
- this.defaultNameService = defaultNameService;
+ this.defaultService = defaultNameService;
}
/**
*/
@Override
public Pager<AuditEventRecord<TaxonNameBase>> pageAuditEvents(TaxonNameBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
- return defaultNameService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+ return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
}
/**
*/
@Override
public Pager<Annotation> getAnnotations(TaxonNameBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void clear() {
- defaultNameService.clear();
+ defaultService.clear();
}
/**
*/
@Override
public void lock(TaxonNameBase t, LockOptions lockOptions) {
- defaultNameService.lock(t, lockOptions);
+ defaultService.lock(t, lockOptions);
}
/**
*/
@Override
public void refresh(TaxonNameBase t, LockOptions lockOptions, List<String> propertyPaths) {
- defaultNameService.refresh(t, lockOptions, propertyPaths);
+ defaultService.refresh(t, lockOptions, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache() {
- defaultNameService.updateTitleCache();
+ defaultService.updateTitleCache();
}
/**
*/
@Override
public AuditEventRecord<TaxonNameBase> getNextAuditEvent(TaxonNameBase t) {
- return defaultNameService.getNextAuditEvent(t);
+ return defaultService.getNextAuditEvent(t);
}
/**
*/
@Override
public Pager<Marker> getMarkers(TaxonNameBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache(Class<? extends TaxonNameBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<TaxonNameBase> cacheStrategy, IProgressMonitor monitor) {
- defaultNameService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+ defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
}
/**
*/
@Override
public AuditEventRecord<TaxonNameBase> getPreviousAuditEvent(TaxonNameBase t) {
- return defaultNameService.getPreviousAuditEvent(t);
+ return defaultService.getPreviousAuditEvent(t);
}
/**
*/
@Override
public int count(Class<? extends TaxonNameBase> clazz) {
- return defaultNameService.count(clazz);
+ return defaultService.count(clazz);
}
/**
*/
@Override
public DeleteResult delete(TaxonNameBase name, NameDeletionConfigurator config) {
- return defaultNameService.delete(name, config);
+ return defaultService.delete(name, config);
}
/**
*/
@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 defaultNameService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+ return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
}
/**
*/
@Override
public TaxonNameBase find(LSID lsid) {
- return defaultNameService.find(lsid);
+ return defaultService.find(lsid);
}
/**
*/
@Override
public DeleteResult delete(TaxonNameBase persistentObject) {
- return defaultNameService.delete(persistentObject);
+ return defaultService.delete(persistentObject);
}
/**
*/
@Override
public List<Object[]> groupMarkers(Class<? extends TaxonNameBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultNameService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+ return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public boolean exists(UUID uuid) {
- return defaultNameService.exists(uuid);
+ return defaultService.exists(uuid);
}
/**
*/
@Override
public void deleteTypeDesignation(TaxonNameBase name, TypeDesignationBase typeDesignation) {
- defaultNameService.deleteTypeDesignation(name, typeDesignation);
+ defaultService.deleteTypeDesignation(name, typeDesignation);
}
/**
*/
@Override
public TaxonNameBase replace(TaxonNameBase x, TaxonNameBase y) {
- return defaultNameService.replace(x, y);
+ return defaultService.replace(x, y);
}
/**
*/
@Override
public List<TaxonNameBase> find(Set<UUID> uuidSet) {
- return defaultNameService.find(uuidSet);
+ return defaultService.find(uuidSet);
}
/**
*/
@Override
public Pager<IdentifiableSource> getSources(TaxonNameBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultNameService.getSources(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public TaxonNameBase find(UUID uuid) {
- return defaultNameService.find(uuid);
+ return defaultService.find(uuid);
}
/**
*/
@Override
public TaxonNameBase find(int id) {
- return defaultNameService.find(id);
+ return defaultService.find(id);
}
/**
*/
@Override
public Pager<Rights> getRights(TaxonNameBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultNameService.getRights(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public int countMarkers(Class<? extends TaxonNameBase> clazz, Boolean technical) {
- return defaultNameService.countMarkers(clazz, technical);
+ return defaultService.countMarkers(clazz, technical);
}
/**
*/
@Override
public List<NomenclaturalStatus> getAllNomenclaturalStatus(int limit, int start) {
- return defaultNameService.getAllNomenclaturalStatus(limit, start);
+ return defaultService.getAllNomenclaturalStatus(limit, start);
}
/**
*/
@Override
public List<TypeDesignationBase> getAllTypeDesignations(int limit, int start) {
- return defaultNameService.getAllTypeDesignations(limit, start);
+ return defaultService.getAllTypeDesignations(limit, start);
}
/**
*/
@Override
public List<TaxonNameBase> findById(Set<Integer> idSet) {
- return defaultNameService.findById(idSet);
+ return defaultService.findById(idSet);
}
/**
*/
@Override
public List<TaxonNameBase> getNamesByName(String name) {
- return defaultNameService.getNamesByName(name);
+ return defaultService.getNamesByName(name);
}
/**
*/
@Override
public List<NonViralName> getNamesByNameCache(String nameCache) {
- return defaultNameService.getNamesByNameCache(nameCache);
+ return defaultService.getNamesByNameCache(nameCache);
}
/**
*/
@Override
public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
- return defaultNameService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+ return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
}
/**
*/
@Override
public Session getSession() {
- return defaultNameService.getSession();
+ return defaultService.getSession();
}
/**
*/
@Override
public List<UuidAndTitleCache<TaxonNameBase>> getUuidAndTitleCache() {
- return defaultNameService.getUuidAndTitleCache();
+ return defaultService.getUuidAndTitleCache();
}
/**
*/
@Override
public List<Object[]> group(Class<? extends TaxonNameBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
- return defaultNameService.group(clazz, limit, start, groups, propertyPaths);
+ return defaultService.group(clazz, limit, start, groups, propertyPaths);
}
/**
*/
@Override
public List<NonViralName> findNamesByTitleCache(String titleCache, MatchMode matchMode, List<String> propertyPaths) {
- return defaultNameService.findNamesByTitleCache(titleCache, matchMode, propertyPaths);
+ return defaultService.findNamesByTitleCache(titleCache, matchMode, propertyPaths);
}
/**
*/
@Override
public List<NonViralName> findNamesByNameCache(String nameCache, MatchMode matchMode, List<String> propertyPaths) {
- return defaultNameService.findNamesByNameCache(nameCache, matchMode, propertyPaths);
+ return defaultService.findNamesByNameCache(nameCache, matchMode, propertyPaths);
}
/**
*/
@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 defaultNameService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public NonViralName findNameByUuid(UUID uuid, List<String> propertyPaths) {
- return defaultNameService.findNameByUuid(uuid, propertyPaths);
+ return defaultService.findNameByUuid(uuid, propertyPaths);
}
/**
*/
@Override
public List getNamesByName(String name, CdmBase sessionObject) {
- return defaultNameService.getNamesByName(name, sessionObject);
+ return defaultService.getNamesByName(name, sessionObject);
}
/**
*/
@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 defaultNameService.findByNameFuzzySearch(name, accuracy, languages, highlightFragments, propertyPaths, maxNoOfResults);
+ return defaultService.findByNameFuzzySearch(name, accuracy, languages, highlightFragments, propertyPaths, maxNoOfResults);
}
/**
*/
@Override
public <S extends TaxonNameBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.list(type, limit, start, orderHints, propertyPaths);
+ return defaultService.list(type, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonNameBase> findByTitle(IIdentifiableEntityServiceConfigurator<TaxonNameBase> configurator) {
- return defaultNameService.findByTitle(configurator);
+ return defaultService.findByTitle(configurator);
}
/**
*/
@Override
public Integer countByTitle(Class<? extends TaxonNameBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
- return defaultNameService.countByTitle(clazz, queryString, matchmode, criteria);
+ return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
}
/**
*/
@Override
public TaxonNameBase load(UUID uuid) {
- return defaultNameService.load(uuid);
+ return defaultService.load(uuid);
}
/**
*/
@Override
public List<DocumentSearchResult> findByNameFuzzySearch(String name, float accuracy, List<Language> languages, boolean highlightFragments, int maxNoOfResults) throws CorruptIndexException, IOException, ParseException {
- return defaultNameService.findByNameFuzzySearch(name, accuracy, languages, highlightFragments, maxNoOfResults);
+ return defaultService.findByNameFuzzySearch(name, accuracy, languages, highlightFragments, maxNoOfResults);
}
/**
*/
@Override
public TaxonNameBase load(UUID uuid, List<String> propertyPaths) {
- return defaultNameService.load(uuid, propertyPaths);
+ return defaultService.load(uuid, propertyPaths);
}
/**
*/
@Override
public Integer countByTitle(IIdentifiableEntityServiceConfigurator<TaxonNameBase> configurator) {
- return defaultNameService.countByTitle(configurator);
+ return defaultService.countByTitle(configurator);
}
/**
*/
@Override
public TaxonNameBase merge(TaxonNameBase transientObject) {
- return defaultNameService.merge(transientObject);
+ return defaultService.merge(transientObject);
}
/**
*/
@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 defaultNameService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends TaxonNameBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<DocumentSearchResult> findByFuzzyNameCacheSearch(String name, float accuracy, List<Language> languages, boolean highlightFragments, int maxNoOfResults) throws CorruptIndexException, IOException, ParseException {
- return defaultNameService.findByFuzzyNameCacheSearch(name, accuracy, languages, highlightFragments, maxNoOfResults);
+ return defaultService.findByFuzzyNameCacheSearch(name, accuracy, languages, highlightFragments, maxNoOfResults);
}
/**
*/
@Override
public List<DocumentSearchResult> findByNameExactSearch(String name, boolean wildcard, List<Language> languages, boolean highlightFragments, int maxNoOfResults) throws CorruptIndexException, IOException, ParseException {
- return defaultNameService.findByNameExactSearch(name, wildcard, languages, highlightFragments, maxNoOfResults);
+ return defaultService.findByNameExactSearch(name, wildcard, languages, highlightFragments, maxNoOfResults);
}
/**
*/
@Override
public UUID refresh(TaxonNameBase persistentObject) {
- return defaultNameService.refresh(persistentObject);
+ return defaultService.refresh(persistentObject);
}
/**
*/
@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 defaultNameService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<TaxonNameBase> rows(String tableName, int limit, int start) {
- return defaultNameService.rows(tableName, limit, start);
+ return defaultService.rows(tableName, limit, start);
}
/**
*/
@Override
public List findNamesByTitle(String title) {
- return defaultNameService.findNamesByTitle(title);
+ return defaultService.findNamesByTitle(title);
}
/**
*/
@Override
public List findNamesByTitle(String title, CdmBase sessionObject) {
- return defaultNameService.findNamesByTitle(title, sessionObject);
+ return defaultService.findNamesByTitle(title, sessionObject);
}
/**
*/
@Override
public List<HomotypicalGroup> getAllHomotypicalGroups(int limit, int start) {
- return defaultNameService.getAllHomotypicalGroups(limit, start);
+ return defaultService.getAllHomotypicalGroups(limit, start);
}
/**
@Deprecated
@Override
public List<RelationshipBase> getAllRelationships(int limit, int start) {
- return defaultNameService.getAllRelationships(limit, start);
+ return defaultService.getAllRelationships(limit, start);
}
/**
*/
@Override
public UUID update(TaxonNameBase transientObject) {
- return defaultNameService.update(transientObject);
+ return defaultService.update(transientObject);
}
/**
*/
@Override
public List<TaxonNameBase> list(TaxonNameBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+ return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public int deduplicate(Class<? extends TaxonNameBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
- return defaultNameService.deduplicate(clazz, matchStrategy, mergeStrategy);
+ return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
}
/**
*/
@Override
public List<NameRelationship> listNameRelationships(TaxonNameBase name, Direction direction, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.listNameRelationships(name, direction, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listNameRelationships(name, direction, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonNameBase> findTitleCache(Class<? extends TaxonNameBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
- return defaultNameService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+ return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
}
/**
*/
@Override
public Pager<NameRelationship> pageNameRelationships(TaxonNameBase name, Direction direction, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.pageNameRelationships(name, direction, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.pageNameRelationships(name, direction, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public List<NameRelationship> listFromNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.listFromNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listFromNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public Pager<NameRelationship> pageFromNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.pageFromNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.pageFromNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public List<NameRelationship> listToNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.listToNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listToNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public Pager<NameRelationship> pageToNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.pageToNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.pageToNameRelationships(name, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<HybridRelationship> getHybridNames(NonViralName name, HybridRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.getHybridNames(name, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getHybridNames(name, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<TypeDesignationBase> getTypeDesignations(TaxonNameBase name, SpecimenTypeDesignationStatus status, Integer pageSize, Integer pageNumber) {
- return defaultNameService.getTypeDesignations(name, status, pageSize, pageNumber);
+ return defaultService.getTypeDesignations(name, status, pageSize, pageNumber);
}
/**
*/
@Override
public Pager<TypeDesignationBase> getTypeDesignations(TaxonNameBase name, SpecimenTypeDesignationStatus status, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultNameService.getTypeDesignations(name, status, pageSize, pageNumber, propertyPaths);
+ return defaultService.getTypeDesignations(name, status, pageSize, pageNumber, propertyPaths);
}
/**
*/
@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 defaultNameService.searchNames(uninomial, infraGenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.searchNames(uninomial, infraGenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonNameBase> search(Class<? extends TaxonNameBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultNameService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<UuidAndTitleCache> getUuidAndTitleCacheOfNames() {
- return defaultNameService.getUuidAndTitleCacheOfNames();
+ return defaultService.getUuidAndTitleCacheOfNames();
}
/**
*/
@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 defaultNameService.findByName(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByName(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public HomotypicalGroup findHomotypicalGroup(UUID uuid) {
- return defaultNameService.findHomotypicalGroup(uuid);
+ return defaultService.findHomotypicalGroup(uuid);
}
/**
*/
@Override
public List<TaggedText> getTaggedName(UUID uuid) {
- return defaultNameService.getTaggedName(uuid);
+ return defaultService.getTaggedName(uuid);
}
@Override
- public List<String> isDeletable(TaxonNameBase object,
+ public DeleteResult isDeletable(TaxonNameBase object,
DeleteConfiguratorBase config) {
// TODO Auto-generated method stub
return null;
@Override
public TaxonNameBase findWithoutFlush(UUID uuid) {
- return defaultNameService.findWithoutFlush(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);
}
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
import eu.etaxonomy.cdm.api.service.dto.DerivateHierarchyDTO;
+import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
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.CdmBase;
+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.MarkerType;
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
+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.occurrence.DerivationEvent;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
}
@Override
- public List<String> isDeletable(SpecimenOrObservationBase object,
+ public DeleteResult isDeletable(SpecimenOrObservationBase object,
DeleteConfiguratorBase config) {
return defaultService.isDeletable(object, config);
}
return defaultService.findWithoutFlush(uuid);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listFieldUnitsByAssociatedTaxon(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 Collection<FieldUnit> listFieldUnitsByAssociatedTaxon(Set<TaxonRelationshipEdge> includeRelationships,
- Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
- List<String> propertyPaths) {
- return defaultService.listFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
- }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listFieldUnitsByAssociatedTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List, java.util.List)
+ */
+ @Override
+ public Collection<SpecimenOrObservationBase> listFieldUnitsByAssociatedTaxon(Taxon associatedTaxon,
+ List<OrderHint> orderHints, List<String> propertyPaths) {
+ return defaultService.listFieldUnitsByAssociatedTaxon(associatedTaxon, orderHints, propertyPaths);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageFieldUnitsByAssociatedTaxon(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 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);
+ }
+
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assembleDerivateHierarchyDTO(eu.etaxonomy.cdm.model.occurrence.FieldUnit, java.util.UUID)
* @see eu.etaxonomy.cdm.api.service.IOccurrenceService#deleteDerivateHierarchy(eu.etaxonomy.cdm.model.common.ICdmBase)
*/
@Override
- public DeleteResult deleteDerivateHierarchy(ICdmBase from, SpecimenDeleteConfigurator config) {
+ public DeleteResult deleteDerivateHierarchy(CdmBase from, SpecimenDeleteConfigurator config) {
return defaultService.deleteDerivateHierarchy(from, config);
}
}
/* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listAssociatedTaxa(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase)
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listIndividualsAssociations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
*/
@Override
- public Collection<TaxonBase<?>> listAssociatedTaxa(SpecimenOrObservationBase<?> specimen) {
- return defaultService.listAssociatedTaxa(specimen);
+ public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
+ Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+ return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listTypeDesignations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+ */
+ @Override
+ public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen,
+ Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+ return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDescriptionsWithDescriptionSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+ */
+ @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);
+ }
+
}
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.agent.AgentBase;
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;
*/
public class TransientReferenceService implements IReferenceService {
- private IReferenceService defaultReferenceService;
+ private IReferenceService defaultService;
/**
* @param defaultReferenceService
*/
public TransientReferenceService(IReferenceService defaultReferenceService) {
- this.defaultReferenceService = defaultReferenceService;
+ this.defaultService = defaultReferenceService;
}
/**
*/
@Override
public Pager<Reference> search(Class<? extends Reference> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultReferenceService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<AuditEventRecord<Reference>> pageAuditEvents(Reference t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
- return defaultReferenceService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+ return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
}
/**
*/
@Override
public Pager<Annotation> getAnnotations(Reference annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultReferenceService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void clear() {
- defaultReferenceService.clear();
+ defaultService.clear();
}
/**
*/
@Override
public void lock(Reference t, LockOptions lockOptions) {
- defaultReferenceService.lock(t, lockOptions);
+ defaultService.lock(t, lockOptions);
}
/**
*/
@Override
public void refresh(Reference t, LockOptions lockOptions, List<String> propertyPaths) {
- defaultReferenceService.refresh(t, lockOptions, propertyPaths);
+ defaultService.refresh(t, lockOptions, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache() {
- defaultReferenceService.updateTitleCache();
+ defaultService.updateTitleCache();
}
/**
*/
@Override
public AuditEventRecord<Reference> getNextAuditEvent(Reference t) {
- return defaultReferenceService.getNextAuditEvent(t);
+ return defaultService.getNextAuditEvent(t);
}
/**
*/
@Override
public Pager<Marker> getMarkers(Reference annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultReferenceService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<UuidAndTitleCache<Reference>> getUuidAndTitle() {
- return defaultReferenceService.getUuidAndTitle();
+ return defaultService.getUuidAndTitle();
}
/**
*/
@Override
public void updateTitleCache(Class<? extends Reference> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<Reference> cacheStrategy, IProgressMonitor monitor) {
- defaultReferenceService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+ defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
}
/**
*/
@Override
public AuditEventRecord<Reference> getPreviousAuditEvent(Reference t) {
- return defaultReferenceService.getPreviousAuditEvent(t);
+ return defaultService.getPreviousAuditEvent(t);
}
/**
*/
@Override
public List<Reference> getAllReferencesForPublishing() {
- return defaultReferenceService.getAllReferencesForPublishing();
+ return defaultService.getAllReferencesForPublishing();
}
/**
*/
@Override
public int count(Class<? extends Reference> clazz) {
- return defaultReferenceService.count(clazz);
+ return defaultService.count(clazz);
}
/**
*/
@Override
public List<Reference> getAllNomenclaturalReferences() {
- return defaultReferenceService.getAllNomenclaturalReferences();
+ return defaultService.getAllNomenclaturalReferences();
}
/**
*/
@Override
public List<TaxonBase> listCoveredTaxa(Reference reference, boolean includeSubordinateReferences, List<String> propertyPaths) {
- return defaultReferenceService.listCoveredTaxa(reference, includeSubordinateReferences, propertyPaths);
+ return defaultService.listCoveredTaxa(reference, includeSubordinateReferences, propertyPaths);
}
/**
*/
@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 defaultReferenceService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+ return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
}
/**
*/
@Override
public Reference find(LSID lsid) {
- return defaultReferenceService.find(lsid);
+ return defaultService.find(lsid);
}
/**
*/
@Override
public DeleteResult delete(Reference persistentObject) {
- return defaultReferenceService.delete(persistentObject);
+ return defaultService.delete(persistentObject);
}
/**
*/
@Override
public List<Object[]> groupMarkers(Class<? extends Reference> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultReferenceService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+ return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public boolean exists(UUID uuid) {
- return defaultReferenceService.exists(uuid);
+ return defaultService.exists(uuid);
}
/**
*/
@Override
public Reference replace(Reference x, Reference y) {
- return defaultReferenceService.replace(x, y);
+ return defaultService.replace(x, y);
}
/**
*/
@Override
public List<Reference> find(Set<UUID> uuidSet) {
- return defaultReferenceService.find(uuidSet);
+ return defaultService.find(uuidSet);
}
/**
*/
@Override
public Pager<IdentifiableSource> getSources(Reference t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultReferenceService.getSources(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public Reference find(UUID uuid) {
- return defaultReferenceService.find(uuid);
+ return defaultService.find(uuid);
}
/**
*/
@Override
public Reference find(int id) {
- return defaultReferenceService.find(id);
+ return defaultService.find(id);
}
/**
*/
@Override
public Pager<Rights> getRights(Reference t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultReferenceService.getRights(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public int countMarkers(Class<? extends Reference> clazz, Boolean technical) {
- return defaultReferenceService.countMarkers(clazz, technical);
+ return defaultService.countMarkers(clazz, technical);
}
/**
*/
@Override
public List<Reference> findById(Set<Integer> idSet) {
- return defaultReferenceService.findById(idSet);
+ return defaultService.findById(idSet);
}
/**
*/
@Override
public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
- return defaultReferenceService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+ return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
}
/**
*/
@Override
public Session getSession() {
- return defaultReferenceService.getSession();
+ return defaultService.getSession();
}
/**
*/
@Override
public List<UuidAndTitleCache<Reference>> getUuidAndTitleCache() {
- return defaultReferenceService.getUuidAndTitleCache();
+ return defaultService.getUuidAndTitleCache();
}
/**
*/
@Override
public List<Object[]> group(Class<? extends Reference> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
- return defaultReferenceService.group(clazz, limit, start, groups, propertyPaths);
+ return defaultService.group(clazz, limit, start, groups, propertyPaths);
}
/**
*/
@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 defaultReferenceService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends Reference> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultReferenceService.list(type, limit, start, orderHints, propertyPaths);
+ return defaultService.list(type, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<Reference> findByTitle(IIdentifiableEntityServiceConfigurator<Reference> configurator) {
- return defaultReferenceService.findByTitle(configurator);
+ return defaultService.findByTitle(configurator);
}
/**
*/
@Override
public Integer countByTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
- return defaultReferenceService.countByTitle(clazz, queryString, matchmode, criteria);
+ return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
}
/**
*/
@Override
public Reference load(UUID uuid) {
- return defaultReferenceService.load(uuid);
+ return defaultService.load(uuid);
}
/**
*/
@Override
public Reference load(UUID uuid, List<String> propertyPaths) {
- return defaultReferenceService.load(uuid, propertyPaths);
+ return defaultService.load(uuid, propertyPaths);
}
/**
*/
@Override
public Integer countByTitle(IIdentifiableEntityServiceConfigurator<Reference> configurator) {
- return defaultReferenceService.countByTitle(configurator);
+ return defaultService.countByTitle(configurator);
}
/**
*/
@Override
public Reference merge(Reference transientObject) {
- return defaultReferenceService.merge(transientObject);
+ return defaultService.merge(transientObject);
}
/**
*/
@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 defaultReferenceService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends Reference> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultReferenceService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public UUID refresh(Reference persistentObject) {
- return defaultReferenceService.refresh(persistentObject);
+ return defaultService.refresh(persistentObject);
}
/**
*/
@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 defaultReferenceService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<Reference> rows(String tableName, int limit, int start) {
- return defaultReferenceService.rows(tableName, limit, start);
+ return defaultService.rows(tableName, limit, start);
}
/**
*/
@Override
public UUID update(Reference transientObject) {
- return defaultReferenceService.update(transientObject);
+ return defaultService.update(transientObject);
}
/**
*/
@Override
public List<Reference> list(Reference example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultReferenceService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+ return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public int deduplicate(Class<? extends Reference> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
- return defaultReferenceService.deduplicate(clazz, matchStrategy, mergeStrategy);
+ return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
}
/**
*/
@Override
public Pager<Reference> findTitleCache(Class<? extends Reference> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
- return defaultReferenceService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+ return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
}
@Override
- public List<String> isDeletable(Reference object,
+ public DeleteResult isDeletable(Reference object,
DeleteConfiguratorBase config) {
// TODO Auto-generated method stub
return null;
@Override
public Reference findWithoutFlush(UUID uuid) {
- return defaultReferenceService.findWithoutFlush(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);
}
-
}
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.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.UuidAndTitleCache;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+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.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.strategy.cache.common.IIdentifiableEntityCacheStrategy;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-import eu.etaxonomy.taxeditor.ui.section.supplemental.IdentifiableSourceElement;
/**
* @author pplitzner
*/
public class TransientTaxonService implements ITaxonService {
- private final ITaxonService defaultTaxonService;
+ private final ITaxonService defaultService;
/**
* @param defaultTaxonService
*/
public TransientTaxonService(ITaxonService defaultTaxonService) {
- this.defaultTaxonService = defaultTaxonService;
+ this.defaultService = defaultTaxonService;
}
/**
*/
@Override
public Pager<AuditEventRecord<TaxonBase>> pageAuditEvents(TaxonBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
- return defaultTaxonService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+ return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
}
/**
*/
@Override
public Pager<Annotation> getAnnotations(TaxonBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void clear() {
- defaultTaxonService.clear();
+ defaultService.clear();
}
/**
*/
@Override
public void lock(TaxonBase t, LockOptions lockOptions) {
- defaultTaxonService.lock(t, lockOptions);
+ defaultService.lock(t, lockOptions);
}
/**
*/
@Override
public void refresh(TaxonBase t, LockOptions lockOptions, List<String> propertyPaths) {
- defaultTaxonService.refresh(t, lockOptions, propertyPaths);
+ defaultService.refresh(t, lockOptions, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache() {
- defaultTaxonService.updateTitleCache();
+ defaultService.updateTitleCache();
}
/**
*/
@Override
public AuditEventRecord<TaxonBase> getNextAuditEvent(TaxonBase t) {
- return defaultTaxonService.getNextAuditEvent(t);
+ return defaultService.getNextAuditEvent(t);
}
/**
*/
@Override
public Pager<Marker> getMarkers(TaxonBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void updateTitleCache(Class<? extends TaxonBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<TaxonBase> cacheStrategy, IProgressMonitor monitor) {
- defaultTaxonService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+ defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
}
/**
*/
@Override
public AuditEventRecord<TaxonBase> getPreviousAuditEvent(TaxonBase t) {
- return defaultTaxonService.getPreviousAuditEvent(t);
+ return defaultService.getPreviousAuditEvent(t);
}
/**
*/
@Override
public int count(Class<? extends TaxonBase> clazz) {
- return defaultTaxonService.count(clazz);
+ return defaultService.count(clazz);
}
/**
*/
@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 defaultTaxonService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+ return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
}
/**
*/
@Override
public TaxonBase find(LSID lsid) {
- return defaultTaxonService.find(lsid);
+ return defaultService.find(lsid);
}
/**
*/
@Override
public DeleteResult delete(TaxonBase persistentObject) {
- return defaultTaxonService.delete(persistentObject);
+ return defaultService.delete(persistentObject);
}
/**
*/
@Override
public List<Object[]> groupMarkers(Class<? extends TaxonBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultTaxonService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+ return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public boolean exists(UUID uuid) {
- return defaultTaxonService.exists(uuid);
+ return defaultService.exists(uuid);
}
*/
@Override
public TaxonBase replace(TaxonBase x, TaxonBase y) {
- return defaultTaxonService.replace(x, y);
+ return defaultService.replace(x, y);
}
/**
*/
@Override
public List<TaxonBase> find(Set<UUID> uuidSet) {
- return defaultTaxonService.find(uuidSet);
+ return defaultService.find(uuidSet);
}
/**
*/
@Override
public Pager<IdentifiableSource> getSources(TaxonBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultTaxonService.getSources(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
}
/**
@Deprecated
@Override
public List<Taxon> getRootTaxa(Reference sec, CdmFetch cdmFetch, boolean onlyWithChildren) {
- return defaultTaxonService.getRootTaxa(sec, cdmFetch, onlyWithChildren);
+ return defaultService.getRootTaxa(sec, cdmFetch, onlyWithChildren);
}
/**
*/
@Override
public TaxonBase find(UUID uuid) {
- return defaultTaxonService.find(uuid);
+ return defaultService.find(uuid);
}
/**
@Deprecated
@Override
public List<Taxon> getRootTaxa(Rank rank, Reference sec, boolean onlyWithChildren, boolean withMisapplications, List<String> propertyPaths) {
- return defaultTaxonService.getRootTaxa(rank, sec, onlyWithChildren, withMisapplications, propertyPaths);
+ return defaultService.getRootTaxa(rank, sec, onlyWithChildren, withMisapplications, propertyPaths);
}
/**
*/
@Override
public TaxonBase find(int id) {
- return defaultTaxonService.find(id);
+ return defaultService.find(id);
}
/**
*/
@Override
public Pager<Rights> getRights(TaxonBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultTaxonService.getRights(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public int countMarkers(Class<? extends TaxonBase> clazz, Boolean technical) {
- return defaultTaxonService.countMarkers(clazz, technical);
+ return defaultService.countMarkers(clazz, technical);
}
/**
*/
@Override
public List<TaxonBase> findById(Set<Integer> idSet) {
- return defaultTaxonService.findById(idSet);
+ return defaultService.findById(idSet);
}
/**
*/
@Override
public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
- return defaultTaxonService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+ return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
}
/**
*/
@Override
public Session getSession() {
- return defaultTaxonService.getSession();
+ return defaultService.getSession();
}
/**
*/
@Override
public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCache() {
- return defaultTaxonService.getUuidAndTitleCache();
+ return defaultService.getUuidAndTitleCache();
}
/**
*/
@Override
public List<Object[]> group(Class<? extends TaxonBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
- return defaultTaxonService.group(clazz, limit, start, groups, propertyPaths);
+ return defaultService.group(clazz, limit, start, groups, propertyPaths);
}
/**
*/
@Override
public List<RelationshipBase> getAllRelationships(int limit, int start) {
- return defaultTaxonService.getAllRelationships(limit, start);
+ return defaultService.getAllRelationships(limit, start);
}
/**
*/
@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 defaultTaxonService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypeVocabulary() {
- return defaultTaxonService.getTaxonRelationshipTypeVocabulary();
+ return defaultService.getTaxonRelationshipTypeVocabulary();
}
/**
*/
@Override
public List<TaxonBase> searchTaxaByName(String name, Reference sec) {
- return defaultTaxonService.searchTaxaByName(name, sec);
+ return defaultService.searchTaxaByName(name, sec);
}
/**
*/
@Override
public void swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon) {
- defaultTaxonService.swapSynonymAndAcceptedTaxon(synonym, acceptedTaxon);
+ defaultService.swapSynonymAndAcceptedTaxon(synonym, acceptedTaxon);
}
/**
*/
@Override
public <S extends TaxonBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.list(type, limit, start, orderHints, propertyPaths);
+ return defaultService.list(type, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonBase> findByTitle(IIdentifiableEntityServiceConfigurator<TaxonBase> configurator) {
- return defaultTaxonService.findByTitle(configurator);
+ return defaultService.findByTitle(configurator);
}
/**
*/
@Override
public Taxon changeSynonymToAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean deleteSynonym, boolean copyCitationInfo, Reference citation, String microCitation) throws HomotypicalGroupChangeException {
- return defaultTaxonService.changeSynonymToAcceptedTaxon(synonym, acceptedTaxon, deleteSynonym, copyCitationInfo, citation, microCitation);
+ return defaultService.changeSynonymToAcceptedTaxon(synonym, acceptedTaxon, deleteSynonym, copyCitationInfo, citation, microCitation);
}
/**
*/
@Override
public Integer countByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
- return defaultTaxonService.countByTitle(clazz, queryString, matchmode, criteria);
+ return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
}
/**
*/
@Override
public TaxonBase load(UUID uuid) {
- return defaultTaxonService.load(uuid);
+ return defaultService.load(uuid);
}
/**
*/
@Override
public TaxonBase load(UUID uuid, List<String> propertyPaths) {
- return defaultTaxonService.load(uuid, propertyPaths);
+ return defaultService.load(uuid, propertyPaths);
}
/**
*/
@Override
public Integer countByTitle(IIdentifiableEntityServiceConfigurator<TaxonBase> configurator) {
- return defaultTaxonService.countByTitle(configurator);
+ return defaultService.countByTitle(configurator);
}
/**
*/
@Override
public TaxonBase merge(TaxonBase transientObject) {
- return defaultTaxonService.merge(transientObject);
+ return defaultService.merge(transientObject);
}
/**
*/
@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 defaultTaxonService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends TaxonBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public UUID refresh(TaxonBase persistentObject) {
- return defaultTaxonService.refresh(persistentObject);
+ return defaultService.refresh(persistentObject);
}
/**
*/
@Override
public Taxon changeSynonymToRelatedTaxon(Synonym synonym, Taxon toTaxon, TaxonRelationshipType taxonRelationshipType, Reference reference, String microReference) {
- return defaultTaxonService.changeSynonymToRelatedTaxon(synonym, toTaxon, taxonRelationshipType, reference, microReference);
+ return defaultService.changeSynonymToRelatedTaxon(synonym, toTaxon, taxonRelationshipType, reference, microReference);
}
/**
*/
@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 defaultTaxonService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<TaxonBase> rows(String tableName, int limit, int start) {
- return defaultTaxonService.rows(tableName, limit, start);
+ return defaultService.rows(tableName, limit, start);
}
/**
*/
@Override
public long deleteSynonymRelationships(Synonym syn, Taxon taxon) {
- return defaultTaxonService.deleteSynonymRelationships(syn, taxon);
+ return defaultService.deleteSynonymRelationships(syn, taxon);
}
/**
*/
@Override
public void changeHomotypicalGroupOfSynonym(Synonym synonym, HomotypicalGroup newHomotypicalGroup, Taxon targetTaxon, boolean removeFromOtherTaxa, boolean setBasionymRelationIfApplicable) {
- defaultTaxonService.changeHomotypicalGroupOfSynonym(synonym, newHomotypicalGroup, targetTaxon, removeFromOtherTaxa, setBasionymRelationIfApplicable);
+ defaultService.changeHomotypicalGroupOfSynonym(synonym, newHomotypicalGroup, targetTaxon, removeFromOtherTaxa, setBasionymRelationIfApplicable);
}
/**
*/
@Override
public UUID update(TaxonBase transientObject) {
- return defaultTaxonService.update(transientObject);
+ return defaultService.update(transientObject);
}
/**
*/
@Override
public List<TaxonBase> list(TaxonBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+ return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public SynonymRelationship moveSynonymToAnotherTaxon(SynonymRelationship oldSynonymRelation, Taxon newTaxon, boolean moveHomotypicGroup, SynonymRelationshipType newSynonymRelationshipType, Reference newReference, String newReferenceDetail, boolean keepReference) throws HomotypicalGroupChangeException {
- return defaultTaxonService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxon, moveHomotypicGroup, newSynonymRelationshipType, newReference, newReferenceDetail, keepReference);
+ return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxon, moveHomotypicGroup, newSynonymRelationshipType, newReference, newReferenceDetail, keepReference);
}
/**
*/
@Override
public int deduplicate(Class<? extends TaxonBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
- return defaultTaxonService.deduplicate(clazz, matchStrategy, mergeStrategy);
+ return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
}
/**
*/
@Override
public Pager<TaxonBase> findTitleCache(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
- return defaultTaxonService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+ return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
}
/**
*/
@Override
public List<TaxonRelationship> listToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.listToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonRelationship> pageToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.pageToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.pageToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<TaxonRelationship> listFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.listFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonRelationship> pageFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.pageFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.pageFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Set<Taxon> listRelatedTaxa(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Integer maxDepth, Integer limit, Integer start, List<String> propertyPaths) {
- return defaultTaxonService.listRelatedTaxa(taxon, includeRelationships, maxDepth, limit, start, propertyPaths);
+ return defaultService.listRelatedTaxa(taxon, includeRelationships, maxDepth, limit, start, propertyPaths);
}
/**
*/
@Override
public List<Classification> listClassifications(TaxonBase taxonBase, Integer limit, Integer start, List<String> propertyPaths) {
- return defaultTaxonService.listClassifications(taxonBase, limit, start, propertyPaths);
+ return defaultService.listClassifications(taxonBase, limit, start, propertyPaths);
}
/**
*/
@Override
public Pager<SynonymRelationship> getSynonyms(Synonym synonym, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.getSynonyms(synonym, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getSynonyms(synonym, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<SynonymRelationship> getSynonyms(Taxon taxon, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.getSynonyms(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getSynonyms(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<Synonym> getHomotypicSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
- return defaultTaxonService.getHomotypicSynonymsByHomotypicGroup(taxon, propertyPaths);
+ return defaultService.getHomotypicSynonymsByHomotypicGroup(taxon, propertyPaths);
}
/**
*/
@Override
public List<List<Synonym>> getHeterotypicSynonymyGroups(Taxon taxon, List<String> propertyPaths) {
- return defaultTaxonService.getHeterotypicSynonymyGroups(taxon, propertyPaths);
+ return defaultService.getHeterotypicSynonymyGroups(taxon, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonBase> search(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<TaxonBase> findTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {
- return defaultTaxonService.findTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
+ return defaultService.findTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
}
/**
*/
@Override
public List<TaxonBase> listTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {
- return defaultTaxonService.listTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
+ return defaultService.listTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
}
/**
*/
@Override
public Pager<IdentifiableEntity> findTaxaAndNames(IFindTaxaAndNamesConfigurator configurator) {
- return defaultTaxonService.findTaxaAndNames(configurator);
+ return defaultService.findTaxaAndNames(configurator);
}
/**
@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 defaultTaxonService.findByEverythingFullText(queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByEverythingFullText(queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@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 defaultTaxonService.findByFullText(clazz, queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByFullText(clazz, queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
}
- /**
- * @param areaFilter
- * @param statusFilter
- * @param classification
- * @param pageSize
- * @param pageNumber
- * @param orderHints
- * @param propertyPaths
- * @return
- * @throws IOException
- * @throws ParseException
+
+ /* (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<PresenceAbsenceTermBase<?>> statusFilter, Classification classification, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws IOException, ParseException {
- return defaultTaxonService.findByDistribution(areaFilter, statusFilter, classification, pageSize, pageNumber, orderHints, propertyPaths);
+ 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);
}
- /**
- * @param searchModes
- * @param queryString
- * @param classification
- * @param namedAreas
- * @param distributionStatus
- * @param languages
- * @param highlightFragments
- * @param pageSize
- * @param pageNumber
- * @param orderHints
- * @param propertyPaths
- * @return
- * @throws CorruptIndexException
- * @throws IOException
- * @throws ParseException
- * @throws LuceneMultiSearchException
+
+ /* (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<PresenceAbsenceTermBase<?>> distributionStatus, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
- return defaultTaxonService.findTaxaAndNamesByFullText(searchModes, queryString, classification, namedAreas, distributionStatus, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
+ 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);
}
/**
*/
@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 defaultTaxonService.findByDescriptionElementFullText(clazz, queryString, classification, features, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByDescriptionElementFullText(clazz, queryString, classification, features, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
@Deprecated
@Override
public List<MediaRepresentation> getAllMedia(Taxon taxon, int size, int height, int widthOrDuration, String[] mimeTypes) {
- return defaultTaxonService.getAllMedia(taxon, size, height, widthOrDuration, mimeTypes);
+ return defaultService.getAllMedia(taxon, size, height, widthOrDuration, mimeTypes);
}
/**
@Deprecated
@Override
public List<Media> listTaxonDescriptionMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, boolean limitToGalleries, List<String> propertyPath) {
- return defaultTaxonService.listTaxonDescriptionMedia(taxon, includeRelationships, limitToGalleries, propertyPath);
+ return defaultService.listTaxonDescriptionMedia(taxon, includeRelationships, limitToGalleries, propertyPath);
}
/**
*/
@Override
public List<Media> listMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Boolean limitToGalleries, Boolean includeTaxonDescriptions, Boolean includeOccurrences, Boolean includeTaxonNameDescriptions, List<String> propertyPath) {
- return defaultTaxonService.listMedia(taxon, includeRelationships, limitToGalleries, includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions, propertyPath);
+ return defaultService.listMedia(taxon, includeRelationships, limitToGalleries, includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions, propertyPath);
}
/**
*/
@Override
public List<TaxonBase> findTaxaByID(Set<Integer> listOfIDs) {
- return defaultTaxonService.findTaxaByID(listOfIDs);
+ return defaultService.findTaxaByID(listOfIDs);
}
/**
*/
@Override
public TaxonBase findTaxonByUuid(UUID uuid, List<String> propertyPaths) {
- return defaultTaxonService.findTaxonByUuid(uuid, propertyPaths);
+ return defaultService.findTaxonByUuid(uuid, propertyPaths);
}
/**
*/
@Override
public int countAllRelationships() {
- return defaultTaxonService.countAllRelationships();
+ return defaultService.countAllRelationships();
}
/**
*/
@Override
public List<TaxonNameBase> findIdenticalTaxonNames(List<String> propertyPath) {
- return defaultTaxonService.findIdenticalTaxonNames(propertyPath);
+ return defaultService.findIdenticalTaxonNames(propertyPath);
}
/**
*/
@Override
public List<TaxonNameBase> findIdenticalTaxonNameIds(List<String> propertyPath) {
- return defaultTaxonService.findIdenticalTaxonNameIds(propertyPath);
+ return defaultService.findIdenticalTaxonNameIds(propertyPath);
}
/**
*/
@Override
public String getPhylumName(TaxonNameBase name) {
- return defaultTaxonService.getPhylumName(name);
+ return defaultService.getPhylumName(name);
}
/**
*/
@Override
public long deleteSynonymRelationships(Synonym syn) {
- return defaultTaxonService.deleteSynonymRelationships(syn);
+ return defaultService.deleteSynonymRelationships(syn);
}
/**
*/
@Override
public List<SynonymRelationship> listSynonymRelationships(TaxonBase taxonBase, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths, Direction direction) {
- return defaultTaxonService.listSynonymRelationships(taxonBase, type, pageSize, pageNumber, orderHints, propertyPaths, direction);
+ return defaultService.listSynonymRelationships(taxonBase, type, pageSize, pageNumber, orderHints, propertyPaths, direction);
}
/**
*/
@Override
public Taxon findBestMatchingTaxon(String taxonName) {
- return defaultTaxonService.findBestMatchingTaxon(taxonName);
+ return defaultService.findBestMatchingTaxon(taxonName);
}
/**
*/
@Override
public Taxon findBestMatchingTaxon(MatchingTaxonConfigurator config) {
- return defaultTaxonService.findBestMatchingTaxon(config);
+ return defaultService.findBestMatchingTaxon(config);
}
/**
*/
@Override
public Synonym findBestMatchingSynonym(String taxonName) {
- return defaultTaxonService.findBestMatchingSynonym(taxonName);
+ return defaultService.findBestMatchingSynonym(taxonName);
}
/**
*/
@Override
public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCacheTaxon() {
- return defaultTaxonService.getUuidAndTitleCacheTaxon();
+ return defaultService.getUuidAndTitleCacheTaxon();
}
/**
*/
@Override
public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCacheSynonym() {
- return defaultTaxonService.getUuidAndTitleCacheSynonym();
+ return defaultService.getUuidAndTitleCacheSynonym();
}
/**
*/
@Override
public List<UuidAndTitleCache<IdentifiableEntity>> findTaxaAndNamesForEditor(IFindTaxaAndNamesConfigurator configurator) {
- return defaultTaxonService.findTaxaAndNamesForEditor(configurator);
+ return defaultService.findTaxaAndNamesForEditor(configurator);
}
/**
*/
@Override
public List<Synonym> createInferredSynonyms(Taxon taxon, Classification tree, SynonymRelationshipType type, boolean doWithMisappliedNames) {
- return defaultTaxonService.createInferredSynonyms(taxon, tree, type, doWithMisappliedNames);
+ return defaultService.createInferredSynonyms(taxon, tree, type, doWithMisappliedNames);
}
/**
*/
@Override
public List<Synonym> createAllInferredSynonyms(Taxon taxon, Classification tree, boolean doWithMisappliedNames) {
- return defaultTaxonService.createAllInferredSynonyms(taxon, tree, doWithMisappliedNames);
+ return defaultService.createAllInferredSynonyms(taxon, tree, doWithMisappliedNames);
}
@Override
public DeleteResult deleteSynonym(Synonym arg0, SynonymDeletionConfigurator arg1) {
- return defaultTaxonService.deleteSynonym(arg0, arg1);
+ return defaultService.deleteSynonym(arg0, arg1);
}
@Override
public DeleteResult deleteSynonym(Synonym arg0, Taxon arg1, SynonymDeletionConfigurator arg2) {
- return defaultTaxonService.deleteSynonym(arg0, arg1, arg2);
+ return defaultService.deleteSynonym(arg0, arg1, arg2);
}
@Override
public DeleteResult deleteTaxon(Taxon arg0, TaxonDeletionConfigurator arg1, Classification arg2) {
- return defaultTaxonService.deleteTaxon(arg0, arg1, arg2);
+ return defaultService.deleteTaxon(arg0, arg1, arg2);
}
@Override
public List<List<Synonym>> getSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
- return defaultTaxonService.getSynonymsByHomotypicGroup(taxon, propertyPaths);
+ return defaultService.getSynonymsByHomotypicGroup(taxon, propertyPaths);
}
@Override
SynonymRelationshipType synonymRelationshipType)
throws DataChangeNoRollbackException {
- return defaultTaxonService.changeRelatedTaxonToSynonym(fromTaxon, toTaxon, oldRelationshipType, synonymRelationshipType);
+ return defaultService.changeRelatedTaxonToSynonym(fromTaxon, toTaxon, oldRelationshipType, synonymRelationshipType);
}
/* (non-Javadoc)
@Override
public Pager<Taxon> pageAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.pageAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.pageAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
}
/* (non-Javadoc)
@Override
public List<Taxon> listAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTaxonService.listAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
}
@Override
- public List<String> isDeletable(TaxonBase object,
+ public DeleteResult isDeletable(TaxonBase object,
DeleteConfiguratorBase config) {
// TODO Auto-generated method stub
return null;
@Override
public TaxonBase findWithoutFlush(UUID uuid) {
- return defaultTaxonService.findWithoutFlush(uuid);
+ return defaultService.findWithoutFlush(uuid);
}
/* (non-Javadoc)
*/
@Override
public List<TaxonBase> findTaxaByName(MatchingTaxonConfigurator config) {
- return defaultTaxonService.findTaxaByName(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);
+ }
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.agent.AgentBase;
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;
*/
public class TransientTermService implements ITermService {
- private final ITermService defaultTermService;
+ private final ITermService defaultService;
/**
* @param defaultTermService
*/
public TransientTermService(ITermService defaultTermService) {
- this.defaultTermService = defaultTermService;
+ this.defaultService = defaultTermService;
}
/**
*/
@Override
public Pager<AuditEventRecord<DefinedTermBase>> pageAuditEvents(DefinedTermBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
- return defaultTermService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+ return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
}
/**
*/
@Override
public Pager<Annotation> getAnnotations(DefinedTermBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTermService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public void clear() {
- defaultTermService.clear();
+ defaultService.clear();
}
/**
*/
@Override
public void lock(DefinedTermBase t, LockOptions lockOptions) {
- defaultTermService.lock(t, lockOptions);
+ defaultService.lock(t, lockOptions);
}
/**
*/
@Override
public DefinedTermBase getByUri(URI uri) {
- return defaultTermService.getByUri(uri);
+ return defaultService.getByUri(uri);
}
/**
*/
@Override
public void refresh(DefinedTermBase t, LockOptions lockOptions, List<String> propertyPaths) {
- defaultTermService.refresh(t, lockOptions, propertyPaths);
+ defaultService.refresh(t, lockOptions, propertyPaths);
}
/**
*/
@Override
public List<LanguageString> getAllLanguageStrings(int limit, int start) {
- return defaultTermService.getAllLanguageStrings(limit, start);
+ return defaultService.getAllLanguageStrings(limit, start);
}
/**
*/
@Override
public List<Representation> getAllRepresentations(int limit, int start) {
- return defaultTermService.getAllRepresentations(limit, start);
+ return defaultService.getAllRepresentations(limit, start);
}
/**
*/
@Override
public void updateTitleCache() {
- defaultTermService.updateTitleCache();
+ defaultService.updateTitleCache();
}
/**
*/
@Override
public AuditEventRecord<DefinedTermBase> getNextAuditEvent(DefinedTermBase t) {
- return defaultTermService.getNextAuditEvent(t);
+ return defaultService.getNextAuditEvent(t);
}
/**
*/
@Override
public Language getLanguageByIso(String iso639) {
- return defaultTermService.getLanguageByIso(iso639);
+ return defaultService.getLanguageByIso(iso639);
}
/**
*/
@Override
public List<Language> getLanguagesByLocale(Enumeration<Locale> locales) {
- return defaultTermService.getLanguagesByLocale(locales);
+ return defaultService.getLanguagesByLocale(locales);
}
/**
*/
@Override
public NamedArea getAreaByTdwgAbbreviation(String tdwgAbbreviation) {
- return defaultTermService.getAreaByTdwgAbbreviation(tdwgAbbreviation);
+ return defaultService.getAreaByTdwgAbbreviation(tdwgAbbreviation);
}
/**
*/
@Override
public Pager<Marker> getMarkers(DefinedTermBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTermService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public Pager<Media> getMedia(DefinedTermBase definedTerm, Integer pageSize, Integer pageNumber) {
- return defaultTermService.getMedia(definedTerm, pageSize, pageNumber);
+ return defaultService.getMedia(definedTerm, pageSize, pageNumber);
}
/**
*/
@Override
public void updateTitleCache(Class<? extends DefinedTermBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<DefinedTermBase> cacheStrategy, IProgressMonitor monitor) {
- defaultTermService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+ defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
}
/**
*/
@Override
public AuditEventRecord<DefinedTermBase> getPreviousAuditEvent(DefinedTermBase t) {
- return defaultTermService.getPreviousAuditEvent(t);
+ return defaultService.getPreviousAuditEvent(t);
}
/**
*/
@Override
public int count(Class<? extends DefinedTermBase> clazz) {
- return defaultTermService.count(clazz);
+ return defaultService.count(clazz);
}
/**
*/
@Override
public Pager<NamedArea> list(NamedAreaLevel level, NamedAreaType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTermService.list(level, type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.list(level, type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@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 defaultTermService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+ return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
}
/**
*/
@Override
public DefinedTermBase find(LSID lsid) {
- return defaultTermService.find(lsid);
+ return defaultService.find(lsid);
}
/**
*/
@Override
public DeleteResult delete(DefinedTermBase persistentObject) {
- return defaultTermService.delete(persistentObject);
+ return defaultService.delete(persistentObject);
}
/**
*/
@Override
public List<Object[]> groupMarkers(Class<? extends DefinedTermBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultTermService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+ return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public boolean exists(UUID uuid) {
- return defaultTermService.exists(uuid);
+ return defaultService.exists(uuid);
}
/**
*/
@Override
public DefinedTermBase replace(DefinedTermBase x, DefinedTermBase y) {
- return defaultTermService.replace(x, y);
+ return defaultService.replace(x, y);
}
/**
*/
@Override
public <T extends DefinedTermBase> Pager<T> getGeneralizationOf(T definedTerm, Integer pageSize, Integer pageNumber) {
- return defaultTermService.getGeneralizationOf(definedTerm, pageSize, pageNumber);
+ return defaultService.getGeneralizationOf(definedTerm, pageSize, pageNumber);
}
/**
*/
@Override
public List<DefinedTermBase> find(Set<UUID> uuidSet) {
- return defaultTermService.find(uuidSet);
+ return defaultService.find(uuidSet);
}
/**
*/
@Override
public Pager<IdentifiableSource> getSources(DefinedTermBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultTermService.getSources(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public DefinedTermBase find(UUID uuid) {
- return defaultTermService.find(uuid);
+ return defaultService.find(uuid);
}
/**
*/
@Override
public <T extends DefinedTermBase> Pager<T> getPartOf(Set<T> definedTerms, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultTermService.getPartOf(definedTerms, pageSize, pageNumber, propertyPaths);
+ return defaultService.getPartOf(definedTerms, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public DefinedTermBase find(int id) {
- return defaultTermService.find(id);
+ return defaultService.find(id);
}
/**
*/
@Override
public Pager<Rights> getRights(DefinedTermBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultTermService.getRights(t, pageSize, pageNumber, propertyPaths);
+ return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public int countMarkers(Class<? extends DefinedTermBase> clazz, Boolean technical) {
- return defaultTermService.countMarkers(clazz, technical);
+ return defaultService.countMarkers(clazz, technical);
}
/**
*/
@Override
public List<DefinedTermBase> findById(Set<Integer> idSet) {
- return defaultTermService.findById(idSet);
+ return defaultService.findById(idSet);
}
/**
*/
@Override
public <T extends DefinedTermBase> Pager<T> getIncludes(Collection<T> definedTerms, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
- return defaultTermService.getIncludes(definedTerms, pageSize, pageNumber, propertyPaths);
+ return defaultService.getIncludes(definedTerms, pageSize, pageNumber, propertyPaths);
}
/**
*/
@Override
public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
- return defaultTermService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+ return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
}
/**
*/
@Override
public Session getSession() {
- return defaultTermService.getSession();
+ return defaultService.getSession();
}
/**
*/
@Override
public List<UuidAndTitleCache<DefinedTermBase>> getUuidAndTitleCache() {
- return defaultTermService.getUuidAndTitleCache();
+ return defaultService.getUuidAndTitleCache();
}
/**
*/
@Override
public List<Object[]> group(Class<? extends DefinedTermBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
- return defaultTermService.group(clazz, limit, start, groups, propertyPaths);
+ return defaultService.group(clazz, limit, start, groups, propertyPaths);
}
/**
*/
@Override
public <T extends DefinedTermBase> Pager<T> findByRepresentationText(String label, Class<T> clazz, Integer pageSize, Integer pageNumber) {
- return defaultTermService.findByRepresentationText(label, clazz, pageSize, pageNumber);
+ return defaultService.findByRepresentationText(label, clazz, pageSize, pageNumber);
}
/**
*/
@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 defaultTermService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <T extends DefinedTermBase> Pager<T> findByRepresentationAbbreviation(String abbrev, Class<T> clazz, Integer pageSize, Integer pageNumber) {
- return defaultTermService.findByRepresentationAbbreviation(abbrev, clazz, pageSize, pageNumber);
+ return defaultService.findByRepresentationAbbreviation(abbrev, clazz, pageSize, pageNumber);
}
/**
*/
@Override
public <S extends DefinedTermBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTermService.list(type, limit, start, orderHints, propertyPaths);
+ return defaultService.list(type, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public DeleteResult delete(DefinedTermBase term, TermDeletionConfigurator config) {
- return defaultTermService.delete(term, config);
+ return defaultService.delete(term, config);
}
/**
*/
@Override
public Pager<DefinedTermBase> findByTitle(IIdentifiableEntityServiceConfigurator<DefinedTermBase> configurator) {
- return defaultTermService.findByTitle(configurator);
+ return defaultService.findByTitle(configurator);
}
/**
*/
@Override
public Integer countByTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
- return defaultTermService.countByTitle(clazz, queryString, matchmode, criteria);
+ return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
}
/**
*/
@Override
public DefinedTermBase load(UUID uuid) {
- return defaultTermService.load(uuid);
+ return defaultService.load(uuid);
}
/**
*/
@Override
public DefinedTermBase load(UUID uuid, List<String> propertyPaths) {
- return defaultTermService.load(uuid, propertyPaths);
+ return defaultService.load(uuid, propertyPaths);
}
/**
*/
@Override
public Integer countByTitle(IIdentifiableEntityServiceConfigurator<DefinedTermBase> configurator) {
- return defaultTermService.countByTitle(configurator);
+ return defaultService.countByTitle(configurator);
}
/**
*/
@Override
public DefinedTermBase merge(DefinedTermBase transientObject) {
- return defaultTermService.merge(transientObject);
+ return defaultService.merge(transientObject);
}
/**
*/
@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 defaultTermService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public <S extends DefinedTermBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTermService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public UUID refresh(DefinedTermBase persistentObject) {
- return defaultTermService.refresh(persistentObject);
+ return defaultService.refresh(persistentObject);
}
/**
*/
@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 defaultTermService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public List<DefinedTermBase> rows(String tableName, int limit, int start) {
- return defaultTermService.rows(tableName, limit, start);
+ return defaultService.rows(tableName, limit, start);
}
/**
*/
@Override
public Pager<DefinedTermBase> search(Class<? extends DefinedTermBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTermService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
}
/**
*/
@Override
public UUID update(DefinedTermBase transientObject) {
- return defaultTermService.update(transientObject);
+ return defaultService.update(transientObject);
}
/**
*/
@Override
public List<DefinedTermBase> list(DefinedTermBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTermService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+ return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
}
/**
*/
@Override
public int deduplicate(Class<? extends DefinedTermBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
- return defaultTermService.deduplicate(clazz, matchStrategy, mergeStrategy);
+ return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
}
/**
*/
@Override
public Pager<DefinedTermBase> findTitleCache(Class<? extends DefinedTermBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
- return defaultTermService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, 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 defaultTermService.findByIdInVocabulary(id, vocabularyUuid, clazz);
+ return defaultService.findByIdInVocabulary(id, vocabularyUuid, clazz);
}
@Override
- public List<String> isDeletable(DefinedTermBase object,
+ public DeleteResult isDeletable(DefinedTermBase object,
DeleteConfiguratorBase config) {
- return defaultTermService.isDeletable(object, config);
+ return defaultService.isDeletable(object, config);
}
/* (non-Javadoc)
@Override
public List<DefinedTermBase<?>> listByTermType(TermType termType, Integer limit, Integer start,
List<OrderHint> orderHints, List<String> propertyPaths) {
- return defaultTermService.listByTermType(termType, limit, start, orderHints, propertyPaths);
+ return defaultService.listByTermType(termType, limit, start, orderHints, propertyPaths);
}
@Override
public DefinedTermBase findWithoutFlush(UUID uuid) {
- return defaultTermService.findWithoutFlush(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);
}
}
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateContentProvider;
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
/**
generateMultiLinkSingleReads();
labelProvider.setMultiLinkSingleReads(multiLinkSingleReads);
IEditorInput editorInput = getEditorInput();
- viewer.setInput(editorInput);
+ viewer.setInput(((DerivateViewEditorInput) editorInput).getRootUUIDs());
//set selection to selected derivate if only one was selected
if(editorInput instanceof DerivateViewEditorInput){
Set<UUID> derivateUUIDs = ((DerivateViewEditorInput) editorInput).getDerivateUUIDs();
/**
* The selected derivate {@link UUID}s
*/
- private Set<UUID> derivateUUIDs;
+ private final Set<UUID> derivateUUIDs;
/**
* List of the {@link UUID}s of the root elements of the hierarchy (may be the same objects as the derivates)
*/
return derivateUUIDs;
}
- public void setRootAsDerivate(){
- this.derivateUUIDs = this.rootUUIDs;
+ public void addRootUuid(UUID root){
+ rootUUIDs.add(root);
}
+
public ConversationHolder getConversationHolder() {
return conversationHolder;
}
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.CompoundContributionItem;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
/**
* Context menu for the creation of derivates in the derivate hierarchy.
return contributionItems;
}
- private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DerivationEventType derivationEventType) {
- MenuItem menuItem = new MenuItem(menu, SWT.NONE);
- menuItem.setText(menuLabel);
- menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, derivationEventType));
+ 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)){
+ //media submenu
+ MenuItem mediaItem = new MenuItem(menu, SWT.CASCADE);
+ mediaItem.setText("Media...");
+ Menu mediaMenu = new Menu(menu);
+ mediaItem.setMenu(mediaMenu);
+
+ //media specimen menu
+ MenuItem menuItem = new MenuItem(mediaMenu, SWT.NONE);
+ menuItem.setText(menuLabel);
+ menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, derivationEventType));
+
+ //existing media menu
+ MenuItem existingMediaItem = new MenuItem(mediaMenu, SWT.NONE);
+ existingMediaItem.setText("Media Specimen with existing media");
+ existingMediaItem.addSelectionListener(new SelectionAdapter() {
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ //select media
+ Media media = MediaSelectionDialog.select(AbstractUtility.getShell(), null, null);
+ //create MediaSpecimen
+ MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(specimenType);
+ mediaSpecimen.setMediaSpecimen(media);
+
+ //attach to parent
+ if(selectedNode.getValue() instanceof SpecimenOrObservationBase){
+ SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedNode.getValue();
+
+ specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, mediaSpecimen, derivationEventType));
+ mediaSpecimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
+ mediaSpecimen.getTitleCache(); //update title cache
+ }
+
+ //refresh view
+ DerivateView derivateView = null;
+ if(AbstractUtility.getActivePart() instanceof DerivateView){
+ derivateView = (DerivateView) AbstractUtility.getActivePart();
+ }
+ if(derivateView!=null){
+ derivateView.getConversationHolder().commit();
+ derivateView.refreshTree(mediaSpecimen);
+ }
+ }
+ });
+ }
+ else{
+ MenuItem menuItem = new MenuItem(menu, SWT.NONE);
+ menuItem.setText(menuLabel);
+ menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, derivationEventType));
+ }
}
private class WidgetSelectionListener extends SelectionAdapter{
*/
@Override
public void widgetSelected(SelectionEvent e) {
+ DerivateView derivateView = null;
+ if(AbstractUtility.getActivePart() instanceof DerivateView){
+ derivateView = (DerivateView) AbstractUtility.getActivePart();
+ }
+ if(derivateView!=null){
+ if(derivateView.isDirty()){
+ e.doit = false;
+ MessagingUtils.warningDialog("View has unsaved changes", this, "You need to save before performing this action");
+ return;
+ }
+ }
+
Object createdElement = null;
Object selectedDerivate = selectedNode.getValue();
if(selectedDerivate instanceof DnaSample && ((DnaSample) selectedDerivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
}
//refresh view
- IWorkbenchPart activePart = AbstractUtility.getActivePart();
- if(activePart instanceof DerivateView){
- DerivateView derivateView = (DerivateView)activePart;
- derivateView.changed(null);
+ if(derivateView!=null){
+ derivateView.getConversationHolder().commit();
derivateView.refreshTree(createdElement);
}
}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class CreateFieldUnitHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if(AbstractUtility.getActivePart() instanceof DerivateView){
+ DerivateView derivateView = (DerivateView)AbstractUtility.getActivePart();
+ if(derivateView.isDirty()){
+ MessagingUtils.warningDialog("View has unsaved changes", this, "You need to save before performing this action");
+ return null;
+ }
+ FieldUnit fieldUnit = FieldUnit.NewInstance();
+ CdmStore.getService(IOccurrenceService.class).save(fieldUnit);
+ derivateView.getConversationHolder().commit();
+ DerivateViewEditorInput input = (DerivateViewEditorInput) derivateView.getEditorInput();
+ input.addRootUuid(fieldUnit.getUuid());
+ derivateView.refreshTree();
+ }
+ return null;
+ }
+
+}
label += " "+DerivateLabelProvider.getDerivateText(value, conversationHolder);
}
SpecimenDeleteConfigurator config = new SpecimenDeleteConfigurator();
- config.setDeleteChildren(false);
- config.setShiftHierarchyUp(false);
+ boolean deepDelete = event.getCommand().getId().equals("eu.etaxonomy.taxeditor.editor.derivate.deepDelete");
+ config.setDeleteChildren(deepDelete);
+ config.setDeleteMolecularData(deepDelete);
DeleteDerivateOperation deleteDerivateOperation = new DeleteDerivateOperation(label, undoContext, (CdmBase) value, postOperationEnabled, config);
AbstractUtility.executeOperation(deleteDerivateOperation);
}
}
}
}
+ if(derivateUuids.isEmpty()){
+ MessagingUtils.warningDialog("Could not open Derivate Editor", this, "No Derivates found");
+ return null;
+ }
DerivateViewEditorInput input = new DerivateViewEditorInput(derivateUuids);
try {
EditorUtil.open(input);
import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator.DeleteConfiguratorDialog;
/**
*
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
if(getPostOperationEnabled() instanceof ISaveablePart){
- if(!MessagingUtils.confirmDialog("Confirm deletion", "Do you really want to delete the selected element?")){
+ String confirmationQuestion = "Do you really want to delete the selected element";
+ if(deleteConfigurator.isDeleteChildren()){
+ confirmationQuestion += " and its children";
+ }
+ confirmationQuestion += "?";
+ if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfigurator, null, "Confirm Deletion", confirmationQuestion)){
return Status.CANCEL_STATUS;
}
if(((ISaveablePart) getPostOperationEnabled()).isDirty()){
DerivateView derivateView = (DerivateView) getPostOperationEnabled();
//update DerivateView
derivateView.getConversationHolder().commit();
- return postExecute(null);
+ IStatus returnStatus = postExecute(null);
+ //close if no more items left
+ if(derivateView.getViewer().getTree().getItemCount()<1){
+ AbstractUtility.close(derivateView);
+ }
+ return returnStatus;
}
}
else{
- String exceptionMessage = "";
- for(Exception exception:deleteResult.getExceptions()){
- exceptionMessage += exception.getLocalizedMessage();
- }
- //TODO: add method to DeleteResult to sum up exceptions
- MessagingUtils.warningDialog("Deletion failed", this, exceptionMessage);
+ MessagingUtils.warningDialog("Deletion failed", this, deleteResult.toString());
return Status.CANCEL_STATUS;
}
return Status.OK_STATUS;
package eu.etaxonomy.taxeditor.editor.view.descriptive;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeNode;
+import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.IDescribable;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
+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.view.checklist.ChecklistEditor;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
// if(getEditor() != null){
// viewer.setInput(getEditor().getEditorInput());
// }
+
+ viewer.addDoubleClickListener(new IDoubleClickListener() {
+ @Override
+ public void doubleClick(DoubleClickEvent event) {
+ //Open derivate editor when specimen description element is double clicked
+ TreeSelection selection = (TreeSelection) viewer.getSelection();
+ Iterator iterator = selection.iterator();
+ Set<UUID> specimenUuids = new HashSet<UUID>();
+ while(iterator.hasNext()){
+ Object next = iterator.next();
+ if(next instanceof IndividualsAssociation){
+ SpecimenOrObservationBase<?> specimen = ((IndividualsAssociation)next).getAssociatedSpecimenOrObservation();
+ if(specimen!=null){
+ specimenUuids.add(specimen.getUuid());
+ }
+ }
+ }
+ try {
+ EditorUtil.open(new DerivateViewEditorInput(specimenUuids));
+ } catch (PartInitException e) {
+ MessagingUtils.error(DescriptiveViewPart.class, "Could not open Derivate Editor", e);
+ }
+
+
+ //TODO: extend command to accept parameter to open editor
+// String commandId = "eu.etaxonomy.taxeditor.editor.handler.openDerivateView";
+// IHandlerService handlerService = (IHandlerService) AbstractUtility.getService(IHandlerService.class);
+// try {
+// handlerService.executeCommand(commandId, null);
+// } catch (ExecutionException e) {
+// MessagingUtils.error(DerivateSearchCompositeController.class, e);
+// } catch (NotDefinedException e) {
+// MessagingUtils.error(DerivateSearchCompositeController.class, e);
+// } catch (NotEnabledException e) {
+// MessagingUtils.error(DerivateSearchCompositeController.class, e);
+// } catch (NotHandledException e) {
+// MessagingUtils.error(DerivateSearchCompositeController.class, e);
+// }
+
+ }
+ });
}
/* (non-Javadoc)
}
if(selection instanceof IStructuredSelection
&& ((IStructuredSelection) selection).getFirstElement() instanceof IDescribable<?>
- && part instanceof IPartContentHasFactualData){
+ && part instanceof IPartContentHasFactualData && !(((IStructuredSelection) selection).getFirstElement() instanceof SpecimenOrObservationBase && part instanceof BulkEditor)){
featureNodeContainerCache.clear();
showViewer(part, (IStructuredSelection) selection);
return;
StructuredSelection selection = new StructuredSelection(object);
viewer.setSelection(selection, true);
}
+ if(part instanceof BulkEditor && !(object instanceof SpecimenOrObservationBase<?>)){
+ ((BulkEditor) part).forceDirty();
+ }
super.changed(object);
}
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.expressions.EvaluationContext;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
MessagingUtils.warn(getClass(), "Command name not set.");
}
}
+ if(viewerInput instanceof TaxonBase){
+ try{
+ operation = createTaxonOperation(event.getCommand().getName(), (Taxon) viewerInput, postOperationEnabled);
+ AbstractUtility.executeOperation(operation);
+ } catch (NotDefinedException e) {
+ MessagingUtils.warn(getClass(), "Command name not set.");
+ }
+
+ }
}
return null;
}
// $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.
*/
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteSpecimenDescriptionOperation;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteTaxonDescriptionOperation;
import eu.etaxonomy.taxeditor.editor.view.media.operation.DeleteMediaOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
* @version 1.0
*/
public class DeleteHandler extends AbstractHandler {
-
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getActiveSite(event).getSelectionProvider().getSelection();
IWorkbenchPart part = HandlerUtil.getActivePart(event);
IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
-
+
try {
String label = event.getCommand().getName();
-
+
IUndoContext undoContext = EditorUtil.getUndoContext();
-
- List<AbstractPostTaxonOperation> operations = new ArrayList<AbstractPostTaxonOperation>();
-
+
+ List<AbstractPostOperation<?>> operations = new ArrayList<AbstractPostOperation<?>>();
+
for(Object object : selection.toArray()){
-
- AbstractPostOperation operation = null;
-
+
// TaxonDescription
if(object instanceof TaxonDescription){
operations.add(new DeleteTaxonDescriptionOperation(label, undoContext, (TaxonDescription) object, postOperationEnabled));
}
+ else if(object instanceof SpecimenDescription){
+ operations.add(new DeleteSpecimenDescriptionOperation(label, undoContext, (SpecimenDescription) object, postOperationEnabled));
+ }
// DescriptionElementBase
else if(object instanceof DescriptionElementBase){
operations.add(new DeleteDescriptionElementOperation(label, undoContext, (DescriptionElementBase) object, postOperationEnabled));
}
else if(object instanceof FeatureNodeContainer){
List<DescriptionElementBase> descriptions = ((FeatureNodeContainer) object).getDescriptionElementsForEntireBranch();
-
+
for(DescriptionElementBase description : descriptions){
- operations.add(new DeleteDescriptionElementOperation(label, undoContext, description, postOperationEnabled));
+ operations.add(new DeleteDescriptionElementOperation(label, undoContext, description, postOperationEnabled));
}
}
// Media
else if(object instanceof Media){
TreeSelection treeSelection = (TreeSelection) selection;
-
+
TreePath[] path = treeSelection.getPathsFor(object);
-
- TaxonDescription imageGallery = (TaxonDescription) path[0].getFirstSegment();
-
+
+ DescriptionBase<?> imageGallery = (DescriptionBase<?>) path[0].getFirstSegment();
+
operations.add(new DeleteMediaOperation(label, undoContext, imageGallery, (Media) object, postOperationEnabled));
}
else{
MessagingUtils.error(getClass(), "Selection is not valid for this delete handler", null);
- }
+ }
}
-
+
// execute all cumulated operations
- for(AbstractPostOperation operation : operations){
- EditorUtil.executeOperation(operation);
+ for(AbstractPostOperation<?> operation : operations){
+ AbstractUtility.executeOperation(operation);
}
-
+
} catch (NotDefinedException e) {
MessagingUtils.warn(getClass(), "Command name not set.");
}
-
-
+
+
return null;
}
}
/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
import java.util.List;
import java.util.UUID;
-import javax.lang.model.element.Element;
-
import org.apache.log4j.Logger;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionToOtherTaxonOperation;
-//import eu.etaxonomy.taxeditor.navigator.operation.ChangeAcceptedTaxonToSynonymOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @author a.kohlbecker
* @created Okt. 11, 2013
* @version 1.0
- *
+ *
*/
public class MoveDescriptionToOtherTaxonHandler extends AbstractHandler
- implements IHandler, IPostOperationEnabled {
+ implements IPostOperationEnabled {
private static final Logger logger = Logger
.getLogger(MoveDescriptionToOtherTaxonHandler.class);
private MoveDescriptionToOtherTaxonOperation operation;
private UUID newAcceptedTaxonNodeUuid;
private TaxonNameEditor editor;
-
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
-
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
ISelection selection = HandlerUtil.getCurrentSelection(event);
-
+
if(selection instanceof IStructuredSelection){
List<TaxonDescription> descriptions = new ArrayList<TaxonDescription>();
-
+
IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
+
for(Object element : structuredSelection.toArray()){
if (element instanceof TaxonDescription){
UUID uuid = ((TaxonDescription)element).getUuid();
if(descriptions.size() == 0){
return null;
}
-
- // Choose the target taxon
+
+ // Choose the target taxon
List<UUID> excludeTaxa = new ArrayList<UUID>();
editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
excludeTaxa.add(descriptions.get(0).getTaxon().getUuid());
- TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
- editor.getConversationHolder(),
- "Choose the accepted taxon",
- excludeTaxa,
- null,
- null);
-
+ TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ editor.getConversationHolder(),
+ "Choose the accepted taxon",
+ excludeTaxa,
+ null,
+ null);
+
if (newAcceptedTaxonNode == null) {
return null;
}
-
+
newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getUuid();
-
+
try {
for(TaxonDescription description : descriptions){
- operation = new MoveDescriptionToOtherTaxonOperation(event.getCommand().getName(),
+ operation = new MoveDescriptionToOtherTaxonOperation(event.getCommand().getName(),
editor.getUndoContext(), description, newAcceptedTaxonNode, this, editor);
- EditorUtil.executeOperation(operation);
+ AbstractUtility.executeOperation(operation);
}
-
+
} catch (NotDefinedException e) {
logger.warn("Command name not set");
}
}
-
+
return null;
-
+
}
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
*/
/** {@inheritDoc} */
- public boolean postOperation(CdmBase objectAffectedByOperation) {
+ @Override
+ public boolean postOperation(CdmBase objectAffectedByOperation) {
Display.getDefault().asyncExec(new Runnable(){
- public void run() {
- EditorUtil.close(editor.getMultiPageTaxonEditor());
-
+ @Override
+ public void run() {
+ AbstractUtility.close(editor.getMultiPageTaxonEditor());
+
try {
MultiPageTaxonEditor possibleOpenEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(newAcceptedTaxonNodeUuid);
if(possibleOpenEditor != null){
- EditorUtil.close(possibleOpenEditor);
+ AbstractUtility.close(possibleOpenEditor);
}
EditorUtil.openTaxonNode(newAcceptedTaxonNodeUuid);
} catch (PartInitException e) {
MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
}
}
-
+
});
-
-
+
+
return true;
}
*
* @return a boolean.
*/
- public boolean onComplete() {
+ @Override
+ public boolean onComplete() {
// TODO Auto-generated method stub
return false;
- }
+ }
}
--- /dev/null
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.model.description.SpecimenDescription;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ *
+ * @author pplitzner
+ * @date Jan 15, 2015
+ *
+ */
+public class DeleteSpecimenDescriptionOperation extends AbstractPostOperation<SpecimenOrObservationBase<?>> {
+
+ private final SpecimenDescription description;
+
+ public DeleteSpecimenDescriptionOperation(String label, IUndoContext undoContext,
+ SpecimenDescription description, IPostOperationEnabled postOperationEnabled) {
+ super(label, undoContext, description.getDescribedSpecimenOrObservation(), postOperationEnabled);
+ this.description = description;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ monitor.worked(20);
+ element.removeDescription(description);
+ monitor.worked(40);
+ CdmStore.getService(IDescriptionService.class).delete(description);
+
+ return postExecute(description);
+ }
+
+ /* (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)
+ throws ExecutionException {
+ return execute(monitor, info);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ element.addDescription(description);
+
+ return postExecute(null);
+ }
+}
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>DeleteTaxonDescriptionOperation class.</p>
throws ExecutionException {
monitor.worked(20);
- element.removeDescription(description);
- monitor.worked(40);
-
- return postExecute(description);
+ if (description != null){
+ CdmStore.getService(IDescriptionService.class).deleteDescription(description);
+ return postExecute(description);
+ }
+ return null;
+
}
/* (non-Javadoc)
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
@Override
public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof TaxonEditorInput) {
- Taxon taxon = ((TaxonEditorInput) parentElement).getTaxon();
+ if (parentElement instanceof TaxonEditorInput || parentElement instanceof Taxon) {
+
+ Taxon taxon = null;
+ if (parentElement instanceof TaxonEditorInput){
+ taxon = ((TaxonEditorInput) parentElement).getTaxon();
+ } else{
+ taxon = HibernateProxyHelper.deproxy(parentElement, Taxon.class);
+ }
+
if(taxon == null){
MessagingUtils.error(getClass(), "Taxon is null", null);
return NO_CHILDREN;
/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.medi"{trunked}</code> */
public static final String ID = "eu.etaxonomy.taxeditor.editor.view.media";
+
private TreeViewer viewer;
/*
showViewer(part, new StructuredSelection(input));
}
else if(selection instanceof IStructuredSelection){
- Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+ Object firstElement = ((IStructuredSelection) selection).getFirstElement();
if(firstElement instanceof TreeNode){
showViewer(part, new StructuredSelection(((TreeNode) firstElement).getValue()));
}
else{
showViewer(part, (IStructuredSelection) selection);
}
+ }else{
+ showEmptyPage();
}
}
else{
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.AddDerivedUnitFacadeMediaOperation;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateSpecimenDescriptionOperation;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
+import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
else if(input instanceof DerivateViewEditorInput){
ISelection selection = ((DerivateView)editor).getSelection();
invokeOperation(event, postOperationEnabled, selection);
+ } else if(part instanceof MediaViewPart){
+ Object viewerInput = ((MediaViewPart)part).getViewer().getInput();
+
+ if(viewerInput instanceof Taxon){
+ Taxon taxon = HibernateProxyHelper.deproxy(viewerInput, Taxon.class);
+ AbstractPostOperation<?> operation;
+ try {
+ // TODO use undo context specific to editor
+ operation = new CreateTaxonDescriptionOperation(event.getCommand().getName(),
+ EditorUtil.getUndoContext(), taxon, postOperationEnabled, true);
+ AbstractUtility.executeOperation(operation);
+ } catch (NotDefinedException e) {
+ MessagingUtils.warn(getClass(), "Command name not set.");
+ }
+
+ }
}
+
return null;
}
// $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.
*/
* @created 31.03.2009
* @version 1.0
*/
-@Deprecated // I don't think this is really used anymore
public class DeleteMediaOperation extends AbstractPostTaxonOperation {
-
- private Media media;
- private DescriptionBase<?> description;
+ private final Media media;
+
+ private final DescriptionBase<?> description;
/**
* <p>Constructor for DeleteMediaOperation.</p>
public DeleteMediaOperation(String label, IUndoContext undoContext,
DescriptionBase<?> description, Media media, IPostOperationEnabled postOperationEnabled) {
super(label, undoContext, postOperationEnabled);
-
+
this.media = media;
this.description = description;
}
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
+
ImagesUtility.addMediaToGallery(description, media);
-
+
return postExecute(null);
}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.ui.views.markers.MarkerField;\r
+import org.eclipse.ui.views.markers.MarkerItem;\r
+\r
+import eu.etaxonomy.taxeditor.editor.validation.MarkerManager;\r
+\r
+public class EntityClassMarkerField extends MarkerField {\r
+\r
+ @Override\r
+ public String getValue(MarkerItem item)\r
+ {\r
+ try {\r
+ Object value = item.getMarker().getAttribute(MarkerManager.ATTRIB_ENTITY_CLASS);\r
+ return value == null ? "" : value.toString();\r
+ }\r
+ catch (CoreException e) {\r
+ throw new RuntimeException("Error while retrieving value for " + MarkerManager.ATTRIB_ENTITY_CLASS);\r
+ }\r
+ }\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.ui.views.markers.MarkerField;\r
+import org.eclipse.ui.views.markers.MarkerItem;\r
+\r
+import eu.etaxonomy.taxeditor.editor.validation.MarkerManager;\r
+\r
+public class EntityIdMarkerField extends MarkerField {\r
+\r
+ @Override\r
+ public String getValue(MarkerItem item)\r
+ {\r
+ try {\r
+ Object value = item.getMarker().getAttribute(MarkerManager.ATTRIB_ENTITY_ID);\r
+ return value == null ? "" : value.toString();\r
+ }\r
+ catch (CoreException e) {\r
+ throw new RuntimeException("Error while retrieving value for " + MarkerManager.ATTRIB_ENTITY_ID);\r
+ }\r
+ }\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.ui.views.markers.MarkerField;\r
+import org.eclipse.ui.views.markers.MarkerItem;\r
+\r
+import eu.etaxonomy.taxeditor.editor.validation.MarkerManager;\r
+\r
+public class InvalidValueMarkerField extends MarkerField {\r
+\r
+ @Override\r
+ public String getValue(MarkerItem item)\r
+ {\r
+ try {\r
+ Object value = item.getMarker().getAttribute(MarkerManager.ATTRIB_INVALID_VALUE);\r
+ return value == null ? "" : value.toString();\r
+ }\r
+ catch (CoreException e) {\r
+ throw new RuntimeException("Error while retrieving value for " + MarkerManager.ATTRIB_INVALID_VALUE);\r
+ }\r
+ }\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.ui.views.markers.MarkerField;\r
+import org.eclipse.ui.views.markers.MarkerItem;\r
+\r
+import eu.etaxonomy.taxeditor.editor.validation.MarkerManager;\r
+\r
+public class UserFriendlyDescriptionMarkerField extends MarkerField {\r
+\r
+ @Override\r
+ public String getValue(MarkerItem item)\r
+ {\r
+ try {\r
+ Object value = item.getMarker().getAttribute(MarkerManager.ATTRIB_USER_FRIENDLY_DESCRIPTION);\r
+ return value == null ? "" : value.toString();\r
+ }\r
+ catch (CoreException e) {\r
+ throw new RuntimeException("Error while retrieving value for " + MarkerManager.ATTRIB_USER_FRIENDLY_DESCRIPTION);\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.ui.views.markers.MarkerField;\r
+import org.eclipse.ui.views.markers.MarkerItem;\r
+\r
+import eu.etaxonomy.taxeditor.editor.validation.MarkerManager;\r
+\r
+public class UserFriendlyFieldNameMarkerField extends MarkerField {\r
+\r
+ @Override\r
+ public String getValue(MarkerItem item)\r
+ {\r
+ try {\r
+ Object value = item.getMarker().getAttribute(MarkerManager.ATTRIB_USER_FRIENDLY_FIELD_NAME);\r
+ return value == null ? "" : value.toString();\r
+ }\r
+ catch (CoreException e) {\r
+ throw new RuntimeException("Error while retrieving value for " + MarkerManager.ATTRIB_USER_FRIENDLY_FIELD_NAME);\r
+ }\r
+ }\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.ui.views.markers.MarkerField;\r
+import org.eclipse.ui.views.markers.MarkerItem;\r
+\r
+import eu.etaxonomy.taxeditor.editor.validation.MarkerManager;\r
+\r
+public class UserFriendlyTypeNameMarkerField extends MarkerField {\r
+\r
+ @Override\r
+ public String getValue(MarkerItem item)\r
+ {\r
+ try {\r
+ Object value = item.getMarker().getAttribute(MarkerManager.ATTRIB_USER_FRIENDLY_TYPE_NAME);\r
+ return value == null ? "" : value.toString();\r
+ }\r
+ catch (CoreException e) {\r
+ throw new RuntimeException("Error while retrieving value for " + MarkerManager.ATTRIB_USER_FRIENDLY_TYPE_NAME);\r
+ }\r
+ }\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.ui.views.markers.MarkerSupportView;\r
+\r
+public class ValidationProblemsView extends MarkerSupportView {\r
+\r
+ public ValidationProblemsView()\r
+ {\r
+ super("eu.etaxonomy.taxeditor.editor.validation.ValidationProblemsMarkerGenerator");\r
+ }\r
+\r
+ \r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.ui.views.markers.MarkerField;\r
+import org.eclipse.ui.views.markers.MarkerItem;\r
+\r
+import eu.etaxonomy.taxeditor.editor.validation.MarkerManager;\r
+\r
+public class ValidatorClassMarkerField extends MarkerField {\r
+\r
+ @Override\r
+ public String getValue(MarkerItem item)\r
+ {\r
+ try {\r
+ Object value = item.getMarker().getAttribute(MarkerManager.ATTRIB_VALIDATOR_CLASS);\r
+ return value == null ? "" : value.toString();\r
+ }\r
+ catch (CoreException e) {\r
+ throw new RuntimeException("Error while retrieving value for " + MarkerManager.ATTRIB_VALIDATOR_CLASS);\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.validation;\r
+\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.ui.views.markers.MarkerField;\r
+import org.eclipse.ui.views.markers.MarkerItem;\r
+\r
+import eu.etaxonomy.taxeditor.editor.validation.MarkerManager;\r
+\r
+public class ValidatorMessageMarkerField extends MarkerField {\r
+\r
+ @Override\r
+ public String getValue(MarkerItem item)\r
+ {\r
+ try {\r
+ Object value = item.getMarker().getAttribute(MarkerManager.ATTRIB_VALIDATOR_MESSAGE);\r
+ return value == null ? "" : value.toString();\r
+ }\r
+ catch (CoreException e) {\r
+ throw new RuntimeException("Error while retrieving value for " + MarkerManager.ATTRIB_VALIDATOR_MESSAGE);\r
+ }\r
+ }\r
+\r
+}\r
<feature
id="eu.etaxonomy.taxeditor.feature.platform"
label="Taxeditor Dependencies"
- version="3.4.0.qualifier"
+ version="3.4.1.qualifier"
os="linux,macosx,win32"
ws="cocoa,gtk,win32"
arch="x86,x86_64">
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
<feature
id="eu.etaxonomy.taxeditor.feature"
label="Taxonomic Editor"
- version="3.4.0.qualifier"
+ version="3.4.1.qualifier"
provider-name="EDIT"
plugin="eu.etaxonomy.taxeditor.application"
os="linux,macosx,win32"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: Help
Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 3.4.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
Bundle-Vendor: EDIT
Require-Bundle: org.eclipse.ui,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: Navigation Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 3.4.1.qualifier
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.cdm,
eu.etaxonomy.taxeditor.navigation,
plugin.xml,\
icons/,\
p2.inf,\
- OSGI-INF/
+ OSGI-INF/l10n/bundle.properties,\
+ OSGI-INF/l10n/bundle_en.properties,\
+ OSGI-INF/l10n/bundle_de.properties,\
+ OSGI-INF/l10n/messages.properties,\
+ OSGI-INF/l10n/messages_en.properties,\
+ OSGI-INF/l10n/messages_de.properties
+
+
label="%command.label.3"
style="push">
</command>
+ <visibleWhen
+ checkEnabled="true">
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ </visibleWhen>
</menu>
<command
commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
- icon="icons/edit_16x16.gif"
+ icon="icons/check.png"
label="%command.label.4"
style="push">
<visibleWhen
style="push">
<visibleWhen
checkEnabled="true">
- <reference
- definitionId="isTaxonNode">
- </reference>
+ <and>
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ <reference
+ definitionId="isTaxonNode">
+ </reference>
+ </and>
</visibleWhen>
</command>
<command
</reference>
</visibleWhen>
</command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.navigation.moveFactualData"
+ label="Move factual data to another taxon"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <and>
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ <reference
+ definitionId="isTaxonNode">
+ </reference>
+ </and>
+ </visibleWhen>
+ </command>
<separator
name="taxeditor-navigation.separator2"
visible="true">
commandId="org.eclipse.ui.file.import"
label="%command.label.8"
style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ </visibleWhen>
</command>
<command
commandId="org.eclipse.ui.file.export"
label="%command.label.9"
style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ </visibleWhen>
</command>
<separator
name="taxeditor-navigation.separator4"
commandId="org.eclipse.ui.edit.delete"
label="%command.label.10"
style="push">
- <visibleWhen>
- <not>
+ <visibleWhen
+ checkEnabled="true">
+ <and>
<reference
- definitionId="isSynonymNode">
+ definitionId="isCdmStoreConnected">
</reference>
- </not>
+ <not>
+ <reference
+ definitionId="isSynonymNode">
+ </reference>
+ </not>
+ </and>
</visibleWhen>
</command>
<separator
commandId="org.eclipse.ui.file.refresh"
label="%command.label.11"
style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ </visibleWhen>
</command>
<command
commandId="eu.etaxonomy.taxeditor.navigation.command.copyTaxonName"
label="%command.label.12"
style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ </visibleWhen>
</command>
</menuContribution>
<menuContribution
</menuContribution>
</extension>
- <extension
- point="org.eclipse.ui.commands">
- <command
- defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.NewTaxonNodeHandler"
- id="eu.etaxonomy.taxeditor.navigation.command.create.taxonNode"
- name="%command.name">
- </command>
- <command
- defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.NewClassificationHandler"
- id="eu.etaxonomy.taxeditor.navigation.create.classification"
- name="%command.name.0">
- </command>
- </extension>
<extension
point="org.eclipse.ui.commands">
<command
id="eu.etaxonomy.taxeditor.navigator.command.update.changeAcceptedToSynonym"
name="%command.name.5">
</command>
- </extension>
- <extension
- point="org.eclipse.ui.commands">
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.NewClassificationHandler"
+ id="eu.etaxonomy.taxeditor.navigation.create.classification"
+ name="%command.name.0">
+ </command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.NewTaxonNodeHandler"
+ id="eu.etaxonomy.taxeditor.navigation.command.create.taxonNode"
+ name="%command.name">
+ </command>
<command
defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.NewPolytomousKeyHandler"
id="eu.etaxonomy.taxeditor.navigation.key.polytomous.newKey"
id="eu.etaxonomy.taxeditor.navigation.key.polytomous.refreshKeyNodes"
name="%command.name.9">
</command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.MoveFactualDataHandler"
+ id="eu.etaxonomy.taxeditor.navigation.moveFactualData"
+ name="Move Factual Data">
+ </command>
</extension>
<extension
point="org.eclipse.ui.handlers">
properties="isChecklistEditorEnabled"
type="org.eclipse.jface.viewers.IStructuredSelection">
</propertyTester>
+ <propertyTester
+ class="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester"
+ id="eu.etaxonomy.taxeditor.preferences.propertyTester"
+ namespace="eu.etaxonomy.taxeditor.preferences.propertyTester"
+ properties="isCdmStoreConnected"
+ type="org.eclipse.jface.viewers.IStructuredSelection">
+ </propertyTester>
</extension>
<extension
point="org.eclipse.core.expressions.definitions">
</test>
</with>
</definition>
+ <definition
+ id="isCdmStoreConnected">
+ <with
+ variable="selection">
+ <test
+ property="eu.etaxonomy.taxeditor.preferences.propertyTester.isCdmStoreConnected">
+ </test>
+ </with>
+ </definition>
</extension>
</plugin>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreePath;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IViewSite;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.DataChangeBridge;
/** {@inheritDoc} */
@Override
protected IAdaptable getInitialInput() {
-
+
TaxonComparatorSearch comparator = new TaxonComparatorSearch();
TaxonNodeComparator viewerComparator = new TaxonNodeComparator(comparator);
this.getCommonViewer().setComparator(viewerComparator);
+ setLinkingEnabled(true);
// this.getCommonViewer().addSelectionChangedListener(new ISelectionChangedListener() {
-//
+//
// @Override
// public void selectionChanged(SelectionChangedEvent arg0) {
// IStructuredSelection selection = (IStructuredSelection) getCommonViewer().getSelection();
-//
+//
// Object firstElement = selection.getFirstElement();
// //
// if (!(firstElement instanceof Classification)){
// //NavigationUtil.selectInNavigator(firstElement, null);
// NavigationUtil.openEditor(firstElement);
// }
-//
+//
// }
// } );
-
+
if (CdmStore.isActive()) {
-
+
// TODO when closing and reopening the taxon navigator
// we do not preserve state. Closing the view, in contrary to
// closing the whole application
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.TransferData;
+import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.ui.navigator.CommonDropAdapter;
import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
if (target instanceof ITaxonTreeNode) {
Set<TaxonNode> taxonNodes = getSelectedTaxa();
ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target;
+ if (targetTreeNode instanceof Classification){
+ targetTreeNode = ((Classification)targetTreeNode).getRootNode();
+ targetTreeNode = HibernateProxyHelper.deproxy(targetTreeNode, TaxonNode.class);
+ }
if(taxonNodes != null) {
- return moveTaxon(taxonNodes, targetTreeNode);
+ if (taxonNodes.size() == 1){
+ return moveTaxon(taxonNodes.iterator().next(), targetTreeNode);
+ } else{
+ if( MessageDialog.openConfirm(null, "Moving taxon", "The operation move accepted taxon to other parent is available only for a single taxon.")){
+ return null;
+ }
+ }
}
}
* @param parentTaxon
* @return
*/
- private IStatus moveTaxon(Set<TaxonNode> taxonNodes, ITaxonTreeNode targetITaxonTreeNode) {
+ private IStatus moveTaxon(TaxonNode taxonNode, ITaxonTreeNode targetITaxonTreeNode) {
TaxonNavigator taxonNavigator;
taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
return Status.CANCEL_STATUS;
}
+
+ /*if (((TaxonNode) targetITaxonTreeNode).isTopmostNode()) {
+ MessageDialog.openConfirm(null, "Taxonnode can not be moved", "A taxonnode can not be moved to the classification");
+ }*/
// Make sure parentTaxon is not the drop target
// if (!childTaxonNode.isTopmostNode() && childTaxonNode.getParent().equals(targetTaxonNode)){
}
AbstractPostOperation operation = new MoveTaxonOperation
- ("Move Taxon", workspaceUndoContext, taxonNodes, targetITaxonTreeNode, this, taxonNavigator);
+ ("Move Taxon", workspaceUndoContext, taxonNode, targetITaxonTreeNode, this, taxonNavigator);
NavigationUtil.executeOperation(operation);
-
+
logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
return Status.OK_STATUS;
}
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator.ChildHandling;
import eu.etaxonomy.cdm.model.common.ITreeNode;
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.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
import eu.etaxonomy.taxeditor.navigation.navigator.operation.DeleteOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator.DeleteConfiguratorDialog;
/**
* <p>DeleteTreeNodeHandler class.</p>
* @created 06.04.2009
* @version 1.0
*/
-public class DeleteHandler extends AbstractHandler implements IHandler{
+public class DeleteHandler extends AbstractHandler{
protected IWorkbenchPage activePage;
protected TaxonNavigator taxonNavigator;
TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
- String plural = selection.size() > 1 ? "s" : "";
- // Prompt user for confirmation
-
-
-
Iterator selectionIterator = selection.iterator();
Set<ITaxonTreeNode> treeNodes = new HashSet<ITaxonTreeNode>();
}
}
AbstractPostOperation operation = null;
+ TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
if (treeNodes.size() == 1 ){
try {
-
+
ITaxonTreeNode treeNode = treeNodes.iterator().next();
ITaxonTreeNode taxonNode =treeNode;
-
+ TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){
- if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too")){
+ 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 null;
}
} else if (taxonNode instanceof Classification && !taxonNode.hasChildNodes()){
- if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification?")){
+ if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification?")){
return null;
}
} else {
- if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected node?")){
- return null;
+
+ if (taxonNode.hasChildNodes()){
+ DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(
+ config,
+ HandlerUtil.getActiveShell(event),
+ "Confirm Deletion",
+ null,
+ "Do you really want to delete the selected node? It has childnodes, they will be deleted, too.",
+ MessageDialog.WARNING, new String[] { "Delete all children",
+ "Move children to parent node", "Skip" }, 0);
+ int result = dialog.open();
+
+ if (result == 0){
+ //delete all children
+ configNodes.setChildHandling(ChildHandling.DELETE);
+ config.setTaxonNodeConfig(configNodes);
+ } else if (result == 1){
+ //move children
+ configNodes.setChildHandling(ChildHandling.MOVE_TO_PARENT);
+ config.setTaxonNodeConfig(configNodes);
+ } else if (result == 2){
+ //skip
+ return null;
+
+ }
+ }else{
+ if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected node?")){
+ return null;
+ }
}
}
-
+
if (allEditorsClosed){
/*if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
return null;
}*/
operation = new DeleteOperation(
event.getCommand().getName(), NavigationUtil.getUndoContext(),
- taxonNode, new TaxonDeletionConfigurator(), taxonNavigator, taxonNavigator);
-
- NavigationUtil.executeOperation(operation);
+ taxonNode, config, taxonNavigator, taxonNavigator);
+
+ AbstractUtility.executeOperation(operation);
//}
}
-
-
-
+
+
+
} catch (NotDefinedException e) {
MessagingUtils.warn(getClass(), "Command name not set");
}
} else{
try{
- if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
+ if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
return null;
}
if (allEditorsClosed){
operation = new DeleteOperation(
event.getCommand().getName(), NavigationUtil.getUndoContext(),
treeNodes, new TaxonDeletionConfigurator(), taxonNavigator, taxonNavigator);
-
- NavigationUtil.executeOperation(operation);
+
+ AbstractUtility.executeOperation(operation);
}
}catch (NotDefinedException e) {
MessagingUtils.warn(getClass(), "Command name not set");
for (IEditorReference ref : activePage.getEditorReferences()) {
try {
String treeIndex = ((ITreeNode)taxonNode).treeIndex();
-
-
+
+
IEditorInput input = ref.getEditorInput();
if (input instanceof TaxonEditorInput) {
TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();
if( ((ITreeNode) node).treeIndex().startsWith(treeIndex)){
//if (taxonNode.equals(node)) {
result &= activePage.closeEditor(ref.getEditor(false), true);
-
+
}
}
} catch (PartInitException e) {
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.handlers.HandlerUtil;
ISelection selection = HandlerUtil.getCurrentSelection(event);
- if(selection instanceof StructuredSelection){
- final StructuredSelection structuredSelection = (StructuredSelection) selection;
+ if(selection instanceof IStructuredSelection){
+ final IStructuredSelection structuredSelection = (IStructuredSelection) selection;
if(structuredSelection.size() == 1 && structuredSelection.getFirstElement() instanceof Classification){
Classification classification = (Classification) structuredSelection.getFirstElement();
--- /dev/null
+package eu.etaxonomy.taxeditor.navigation.navigator.handler;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.Annotation;
+import eu.etaxonomy.cdm.model.common.AnnotationType;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
+
+public class MoveFactualDataHandler extends AbstractHandler {
+
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(MoveFactualDataHandler.class);
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
+ IWorkbenchPart activePart = AbstractUtility.getActivePart();
+ TaxonNavigator navigator = null;
+ if(activePart instanceof TaxonNavigator){
+ navigator = (TaxonNavigator)activePart;
+ }
+ if(navigator!=null && currentSelection instanceof TreeSelection){
+ Object object = ((TreeSelection) currentSelection).getFirstElement();
+ if(object instanceof TaxonNode){
+ TaxonNode taxonNode = HibernateProxyHelper.deproxy(object, TaxonNode.class);
+ final TaxonNode sourceTaxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNode.getUuid());
+ if(NavigationUtil.isDirty(sourceTaxonNode)){
+ MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Source Taxon", "There are unsaved " +
+ "changes in the source taxon. Please save first.");
+ return null;
+ }
+ //reload to avoid session conflicts
+ Taxon taxon = HibernateProxyHelper.deproxy(CdmStore.getService(ITaxonService.class).load(sourceTaxonNode.getTaxon().getUuid()), Taxon.class);
+ if(taxon!=null){
+ // Choose the target taxon
+ List<UUID> excludeTaxa = new ArrayList<UUID>();
+ excludeTaxa.add(taxon.getUuid());
+ TaxonNode dialogTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ navigator.getConversationHolder(),
+ "Choose the accepted taxon",
+ excludeTaxa,
+ null,
+ null);
+ if (dialogTaxonNode == null) {
+ return null;
+ }
+ //reload to avoid session conflicts
+ final TaxonNode targetTaxonNode = CdmStore.getService(ITaxonNodeService.class).load(dialogTaxonNode.getUuid());
+ if(NavigationUtil.isDirty(targetTaxonNode)){
+ MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Target Taxon", "There are unsaved " +
+ "changes in the target taxon. Please save first.");
+ return null;
+ }
+ for(TaxonDescription description : taxon.getDescriptions()){
+ //reload to avoid session conflicts
+ description = HibernateProxyHelper.deproxy(CdmStore.getService(IDescriptionService.class).load(description.getUuid()), TaxonDescription.class);
+
+ String moveMessage = String.format("Description moved from %s", taxon);
+ if(description.isProtectedTitleCache()){
+ String separator = "";
+ if(!StringUtils.isBlank(description.getTitleCache())){
+ separator = " - ";
+ }
+ description.setTitleCache(description.getTitleCache() + separator + moveMessage, true);
+ }
+ Annotation annotation = Annotation.NewInstance(moveMessage, Language.getDefaultLanguage());
+ annotation.setAnnotationType(AnnotationType.TECHNICAL());
+ description.addAnnotation(annotation);
+ targetTaxonNode.getTaxon().addDescription(description);
+ CdmStore.getService(IDescriptionService.class).saveOrUpdate(description);
+ navigator.getConversationHolder().bind();
+ navigator.getConversationHolder().commit();
+ }
+
+ Display.getDefault().asyncExec(new Runnable(){
+
+ @Override
+ public void run() {
+ try {
+ //close and re-open to refresh factual data view
+ MultiPageTaxonEditor sourceEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(sourceTaxonNode.getUuid());
+ MultiPageTaxonEditor targetEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(targetTaxonNode.getUuid());
+ if(targetEditor != null){
+ AbstractUtility.close(sourceEditor);
+ AbstractUtility.close(targetEditor);
+ }
+ EditorUtil.openTaxonNode(sourceTaxonNode.getUuid());
+ EditorUtil.openTaxonNode(targetTaxonNode.getUuid());
+ } catch (PartInitException e) {
+ MessagingUtils.error(this.getClass(), e);
+ throw new RuntimeException(e);
+ } catch (Exception e) {
+ MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
+ }
+ }
+
+ });
+ }
+ }
+ }
+ return null;
+ }
+
+}
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.EvaluationContext;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+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.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
/**
public class MoveTaxonHandler extends AbstractHandler implements IPostOperationEnabled {
private TaxonNode parentTaxonNode;
-
+ protected IWorkbenchPage activePage;
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
/** {@inheritDoc} */
public Object execute(ExecutionEvent event) throws ExecutionException {
- TaxonNavigator taxonNavigator = NavigationUtil.showNavigator();
+ activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+ TaxonNavigator taxonNavigator = (TaxonNavigator)NavigationUtil.showView(TaxonNavigator.ID);
TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
Iterator selectionIterator = selection.iterator();
- Set<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
+ TaxonNode taxonNode = null;
+ UUID taxonNodeUUID = null;
// do not show the current selection
List<UUID> excludeTaxa = new ArrayList<UUID>();
-
- while (selectionIterator.hasNext()){
+ if (selection.size() == 1){
Object object = selectionIterator.next();
if(object instanceof TaxonNode){
- TaxonNode taxonNode = (TaxonNode) object;
- taxonNodes.add(taxonNode);
+ taxonNode = HibernateProxyHelper.deproxy(object,TaxonNode.class);
+ taxonNodeUUID = taxonNode.getUuid();
excludeTaxa.add(taxonNode.getTaxon().getUuid());
}
+ } else{
+ if( MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Moving taxon", "The operation move accepted taxon to other parent is available only for a single taxon.")){
+ return null;
+ }
}
-// TaxonNode taxonNode = (TaxonNode) selection.getFirstElement();
- parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), taxonNavigator.getConversationHolder(), "Choose new parent", excludeTaxa, null, null);
+// TaxonNode taxonNode = (TaxonNode) selection.getFirstElement();
+ if (taxonNode != null){
+ parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), taxonNavigator.getConversationHolder(), "Choose new parent", excludeTaxa, null, null);
+
+ if(parentTaxonNode != null){
+ if(NavigationUtil.isDirty(parentTaxonNode)){
+ MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Parent Taxon", "There are unsaved " +
+ "changes in the parent taxon. Please save first.");
+ return null;
+ }
- if(parentTaxonNode != null){
- if(NavigationUtil.isDirty(parentTaxonNode)){
- MessageDialog.openWarning(HandlerUtil.getActiveShell(event), "Unsaved Parent Taxon", "There are unsaved " +
- "changes in the parent taxon. Please save first.");
- return null;
- }
+ AbstractPostOperation operation = new MoveTaxonOperation
+ ("Move taxon to new parent", NavigationUtil.getUndoContext(),
+ taxonNode, parentTaxonNode, taxonNavigator, taxonNavigator); //$NON-NLS-1$
+ NavigationUtil.executeOperation(operation);
+ taxonNavigator.refresh();
- AbstractPostOperation operation = new MoveTaxonOperation
- ("Move taxon to new parent", NavigationUtil.getUndoContext(),
- taxonNodes, parentTaxonNode, this, taxonNavigator); //$NON-NLS-1$
- NavigationUtil.executeOperation(operation);
-
+ }
}
-
return null;
}
return false;
}
+
+
}
--- /dev/null
+package eu.etaxonomy.taxeditor.navigation.navigator.handler;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.AbstractParameterValueConverter;
+import org.eclipse.core.commands.ParameterValueConversionException;
+
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class TaxonParameterConverter extends AbstractParameterValueConverter {
+
+ public TaxonParameterConverter() {
+ }
+
+ @Override
+ public Object convertToObject(String parameterValue) throws ParameterValueConversionException {
+ return CdmStore.getService(ITaxonService.class).load(UUID.fromString(parameterValue));
+ }
+
+ @Override
+ public String convertToString(Object parameterValue) throws ParameterValueConversionException {
+ if(parameterValue instanceof TaxonBase<?>){
+ return ((TaxonBase) parameterValue).getUuid().toString();
+ }
+ return null;
+ }
+
+}
package eu.etaxonomy.taxeditor.navigation.navigator.operation;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* Change the taxonomic parent of a given taxon.
/**
* A reference to the former taxonomical parents
*/
- private Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
+ //private Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
- private Set<TaxonNode> taxonNodes;
+ private TaxonNode taxonNode;
/**
* <p>Constructor for MoveTaxonOperation.</p>
* @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
*/
public MoveTaxonOperation(String label, IUndoContext undoContext,
- Set<TaxonNode> taxonNodes, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+ TaxonNode taxonNodeToMove, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
super(label, undoContext, postOperationEnabled, conversationEnabled);
-
- this.taxonNodes = taxonNodes;
-
+
+ this.taxonNode = taxonNodeToMove;
+ /*for (TaxonNode node:taxonNodes){
+ this.taxonNodes.add(service.load(node.getUuid()));
+ }*/
+
this.newParentTreeNode = newParentTreeNode;
// Save old parent ITaxonTreeNodes for undo
- oldParentTreeNodes = new HashMap<TaxonNode, ITaxonTreeNode>();
- for(TaxonNode taxonNode : taxonNodes){
- this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent());
- }
+
+ //this.parentNode = taxonNode.getParent();
}
/* (non-Javadoc)
bind();
monitor.worked(20);
- try {
- for (TaxonNode taxonNode : taxonNodes){
- TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode,
- newParentTreeNode.getReference(), newParentTreeNode.getMicroReference());
- taxonNodes.add(newTaxonNode);
- monitor.worked(2);
- }
- } catch(IllegalAncestryException e) {
- MessagingUtils.warningDialog("Illegal ancestry", this, e.getMessage());
- }
+ UpdateResult result = CdmStore.getService(ITaxonNodeService.class).moveTaxonNode(this.taxonNode.getUuid(),newParentTreeNode.getUuid());
+// try {
+// for (TaxonNode taxonNode : taxonNodes){
+// TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode,
+// newParentTreeNode.getReference(), newParentTreeNode.getMicroReference());
+// //taxonNodes.add(newTaxonNode);
+//
+// monitor.worked(2);
+// }
+// } catch(IllegalAncestryException e) {
+// MessagingUtils.warningDialog("Illegal ancestry", this, e.getMessage());
+// }
monitor.worked(40);
return postExecute(null);
Bundle-ManifestVersion: 2
Bundle-Name: Printpublisher Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 3.4.1.qualifier
Require-Bundle: org.eclipse.osgi,
org.eclipse.ui,
eu.etaxonomy.taxeditor.cdmlib,
<parent>
<artifactId>taxeditor-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: DataStore Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 3.4.1.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.cdm,
eu.etaxonomy.taxeditor.ui.bar,
eu.etaxonomy.taxeditor.ui.combo,
eu.etaxonomy.taxeditor.ui.dialog,
+ eu.etaxonomy.taxeditor.ui.dialog.deleteConfigurator,
eu.etaxonomy.taxeditor.ui.dialog.selection,
eu.etaxonomy.taxeditor.ui.element,
eu.etaxonomy.taxeditor.ui.group.grantedauthority,
page.name.20 = Preservation Method\r
page.name.21 = Feature Tree\r
page.name.22 = Default Feature Trees\r
-page.name.23 = Language\r
+page.name.23 = Representation\r
page.name.24 = Mobot Open Url\r
page.name.25 = Type Designations\r
view.name = Datasource\r
page.name.27 = Media\r
page.name.28 = Checklist Editor\r
page.name.29 = Editor Profile\r
-page.name.30 = Default Language
\ No newline at end of file
+page.name.30 = Language
\ No newline at end of file
page.name.20 = Erhaltungs-(Preservation) Methode
page.name.21 = Merkmalsbaum
page.name.22 = Standard Merkmalsbaum
-page.name.23 = Sprache
+page.name.23 = Repr\u00e4sentation
page.name.24 = Mobot Open Url
page.name.25 = Typ Bezeichnungen
view.name = Datenquelle
menu.label = Zeige Ansicht
command.label = Derivatsuche
command.label.0 = Details
-command.label.1 = Zusatz
+command.label.1 = Zusatzdaten
command.label.2 = Datenquelle
command.label.3 = Fehlermeldungen
command.label.4 = Berichte
page.name.27 = Media
page.name.28 = Checklist Editor
page.name.29 = Editor Profil
-page.name.30 = Standardsprache
\ No newline at end of file
+page.name.30 = Sprache
\ No newline at end of file
page.name.20 = Preservation Method\r
page.name.21 = Feature Tree\r
page.name.22 = Default Feature Trees\r
-page.name.23 = Language\r
+page.name.23 = Representation\r
page.name.24 = Mobot Open Url\r
page.name.25 = Type Designations\r
view.name = Datasource\r
page.name.27 = Media\r
page.name.28 = Checklist Editor\r
page.name.29 = Editor Profile\r
-page.name.30 = Default Language
\ No newline at end of file
+page.name.30 = Language
\ No newline at end of file
icons/,\
p2.inf,\
OSGI-INF/,\
- OSGI-INF/l10n/bundle.properties
+ OSGI-INF/l10n/bundle.properties,\
+ OSGI-INF/l10n/bundle_de.properties,\
+ OSGI-INF/l10n/bundle_en.properties,\
+ OSGI-INF/l10n/messages.properties,\
+ OSGI-INF/l10n/messages_de.properties,\
+ OSGI-INF/l10n/messages_en.properties
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
+ <extension-point id="eu.etaxonomy.taxeditor.store.cdmViewer" name="Cdm Viewer" schema="schema/eu.etaxonomy.taxeditor.store.cdmViewer.exsd"/>
<extension
point="org.eclipse.ui.preferencePages">
<page
name="%page.name.22">
</page>
<page
- category="eu.etaxonomy.taxeditor.preferences.general"
- class="eu.etaxonomy.taxeditor.preference.LanguagePreferencePage"
+ category="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
+ class="eu.etaxonomy.taxeditor.preference.LanguageRepresentationPreferencePage"
id="eu.etaxonomy.taxeditor.preferences.language"
name="%page.name.23">
</page>
</page>
<page
category="eu.etaxonomy.taxeditor.preferences.general"
- class="eu.etaxonomy.taxeditor.preference.DefaultLanguageEditorPreferencePage"
+ class="eu.etaxonomy.taxeditor.preference.LanguageEditorPreferencePage"
id="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
name="%page.name.30">
</page>
</command>
<command
commandId="org.eclipse.ui.views.showView"
- label="%command.label.1"
+ id="org.eclipse.ui.views.showView.supplemental"
+ label="%command.label.1"
style="push">
<parameter
name="org.eclipse.ui.views.showView.viewId"
value="eu.etaxonomy.taxeditor.view.supplementalData">
</parameter>
</command>
+ <!-- Originally used by validation framework, currently not in use -->
+ <!-- <command
+ id="org.eclipse.ui.views.showView.problems"
+ commandId="org.eclipse.ui.views.showView"
+ label="Problems"
+ style="push">
+ <parameter
+ name="org.eclipse.ui.views.showView.viewId"
+ value="org.eclipse.ui.views.ProblemView">
+ </parameter>
+ </command> -->
<separator
name="eu.etaxonomy.taxeditor.store.showViewMenu.internal"
visible="true">
commandId="eu.etaxonomy.taxeditor.editor.handler.openDerivateView"
label="Open in Derivate Editor"
style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <with
+ variable="selection">
+ <count
+ value="+">
+ </count>
+ </with>
+ </visibleWhen>
</command>
</menuContribution>
</extension>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="eu.etaxonomy.taxeditor.store" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="eu.etaxonomy.taxeditor.store" id="eu.etaxonomy.taxeditor.store.cdmViewer" name="Cdm Viewer"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ <documentation>
+ Extensions must provide and ICdmViewer which maps input elements to viewers which are able to display information for them.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="cdmViewer" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="att" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="cdmViewer">
+ <annotation>
+ <documentation>
+ A Cdm Viewer knows what viewer or editor can show which input.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ </sequence>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class of the viewer.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":eu.etaxonomy.taxeditor.view.ICdmViewer"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
private static final String CURRENT_DATASOURCE = "currentDataSource";
private static final String CURRENT_DATASOURCE_POSTFIX = "currentDataSourcePostFix";
private static final String DEFAULT_DATASOURCE_STATE_FILENAME = "datasource.xml";
-
+
private static final String DEFAULT_DATASOURCE_NAME = "cdm";
private static final String DEFAULT_DATASOURCE_POSTFIX = CdmPersistentDataSource.DATASOURCE_BEAN_POSTFIX;
-
+
private static ICdmSource currentCdmSource;
private static IMemento memento;
-
+
private static String lastUsedCdmSourceName;
private static String lastUsedCdmSourcePostFix;
-
-
-
+
+
+
/**
* <p>Getter for the field <code>lastUsedDataSourceName</code>.</p>
*
*/
public static void updateLastUsedDataSource(){
if(lastUsedCdmSourceName == null){
- memento = readMemento();
+ memento = readMemento();
lastUsedCdmSourceName = memento != null ? memento.getString(CURRENT_DATASOURCE) : DEFAULT_DATASOURCE_NAME;
lastUsedCdmSourcePostFix = memento != null ? memento.getString(CURRENT_DATASOURCE_POSTFIX) : DEFAULT_DATASOURCE_POSTFIX;
-
+
}
-
+
}
/**
return true;
}
-
+
/**
* <p>getAll</p>
*
*/
public static List<ICdmSource> getAll() {
List<ICdmSource> remoteSources = new ArrayList<ICdmSource>();
-
+
for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()){
try {
remoteSources.add(CdmPersistentDataSource.NewInstance(dataSource.getName()));
MessagingUtils.error(CdmDataSourceRepository.class, "Could not find dataSource", e);
}
}
-
+
try {
- for(ICdmRemoteSource remoteSource : CdmPersistentRemoteSource.getAllRemoteSources()){
+ for(ICdmRemoteSource remoteSource : CdmPersistentRemoteSource.getAllRemoteSources()){
remoteSources.add(remoteSource);
}
} catch (CdmRemoteSourceException e) {
MessagingUtils.error(CdmDataSourceRepository.class, "Error retrieving remote sources", e);
}
-
+
// TODO sort by database name
-
+
return remoteSources;
}
-
+
/**
* <p>getDataSource</p>
*
* @return a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
*/
public static ICdmDataSource getDataSource(String name){
-
+
for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()){
try {
if(dataSource.getName().equals(name)){
MessagingUtils.error(CdmDataSourceRepository.class, "Could not find dataSource", e);
}
}
-
+
return null;
}
-
-
+
+
/**
* <p>Getter for the field <code>currentDataSource</code>.</p>
*
* @return a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
- * @throws CdmRemoteSourceException
+ * @throws CdmRemoteSourceException
*/
public static ICdmSource getCurrentCdmSource() throws CdmRemoteSourceException {
-
+
if (currentCdmSource == null) {
updateLastUsedDataSource();
-
+
if(lastUsedCdmSourceName == null) {
return null;
}
currentCdmSource = CdmPersistentDataSource.NewInstance(lastUsedCdmSourceName);
} catch (DataSourceNotFoundException e) {
// fallback creates a new default
- ICdmDataSource h2DataSource = CdmDataSource.NewH2EmbeddedInstance(
- DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode());
- save(h2DataSource.getName(), h2DataSource);
- setCurrentCdmSource(h2DataSource);
+ setCurrentCdmSource(createDefaultH2DataSource());
}
- } else if (lastUsedCdmSourcePostFix.equals(CdmPersistentRemoteSource.REMOTESOURCE_BEAN_POSTFIX)) {
+ } else if (lastUsedCdmSourcePostFix.equals(CdmPersistentRemoteSource.REMOTESOURCE_BEAN_POSTFIX)) {
currentCdmSource = CdmPersistentRemoteSource.NewInstance(lastUsedCdmSourceName);
} else {
throw new CdmRemoteSourceException("Unkown Cdm Source Type");
}
return currentCdmSource;
}
-
+
+ /**
+ * Creates a default H2 CDM Data Source
+ *
+ * @return the newly created data source
+ */
+ public static ICdmDataSource createDefaultH2DataSource() {
+ ICdmDataSource h2DataSource = CdmDataSource.NewH2EmbeddedInstance(
+ DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode());
+ save(h2DataSource.getName(), h2DataSource);
+ return h2DataSource;
+ }
+
/**
* <p>Setter for the field <code>currentDataSource</code>.</p>
*
currentCdmSource = cdmSource;
NomenclaturalCode dataSourceNomenclaturalCode = cdmSource.getNomenclaturalCode();
NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode();
-
+
if( dataSourceNomenclaturalCode != null && ! dataSourceNomenclaturalCode.equals(applicationNomenclaturalCode)){
PreferencesUtil.setPreferredNomenclaturalCode(dataSourceNomenclaturalCode);
MessagingUtils.informationDialog("Nomenclatural Code Change", "The Datasource that was just " +
"The nomenclatural code was changed in the application.");
}
return true;
- }
-
+ }
+
/**
* <p>changeDataSource</p>
*
* @return a boolean.
*/
public static boolean changeDataSource(final ICdmSource cdmSource) {
- saveAsCurrentDatabaseToMemento(cdmSource);
+ saveAsCurrentDatabaseToMemento(cdmSource);
CdmStore.connect(cdmSource);
-
+
return true;
}
* @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
* @param strDataSourceName a {@link java.lang.String} object.
* @return a {@link eu.etaxonomy.cdm.database.CdmPersistentDataSource} object.
- * @throws CdmRemoteSourceException
+ * @throws CdmRemoteSourceException
*/
public static ICdmPersistentSource save(String strCdmSourceName, ICdmRemoteSource cdmSource) throws CdmRemoteSourceException {
- return CdmPersistentRemoteSource.save(strCdmSourceName, cdmSource);
+ return CdmPersistentRemoteSource.save(strCdmSourceName, cdmSource);
}
-
+
/**
* <p>save</p>
*
* @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
* @param strDataSourceName a {@link java.lang.String} object.
* @return a {@link eu.etaxonomy.cdm.database.CdmPersistentDataSource} object.
- * @throws CdmRemoteSourceException
+ * @throws CdmRemoteSourceException
*/
- public static ICdmPersistentSource save(String strCdmSourceName, ICdmDataSource cdmSource) {
- return CdmPersistentDataSource.save(strCdmSourceName, cdmSource);
+ public static ICdmPersistentSource save(String strCdmSourceName, ICdmDataSource cdmSource) {
+ return CdmPersistentDataSource.save(strCdmSourceName, cdmSource);
}
-
+
/**
* <p>update</p>
*
}
return null;
}
-
+
public static ICdmPersistentSource replace(String strCdmSourceName, ICdmDataSource cdmSource){
try {
return CdmPersistentDataSource.replace(strCdmSourceName, cdmSource);
}
return null;
}
-
+
/**
* <p>update</p>
*
*/
public static ICdmPersistentSource update(String strCdmSourceName, ICdmRemoteSource cdmSource){
try {
- return CdmPersistentRemoteSource.update(strCdmSourceName, cdmSource);
+ return CdmPersistentRemoteSource.update(strCdmSourceName, cdmSource);
} catch (Exception e) {
MessagingUtils.error(CdmDataSourceRepository.class, "Error updating CDM Source", e);
-
+
}
return null;
}
-
+
/*********************************************************
* Memento Handling *
*********************************************************/
-
+
private static void saveAsCurrentDatabaseToMemento(ICdmSource cdmSource){
if(memento == null) {
memento = readMemento();
}
memento.putString(CURRENT_DATASOURCE, cdmSource.getName());
-
+
// Set postfix to distinguish between data and remote sources
if(cdmSource instanceof CdmPersistentRemoteSource) {
memento.putString(CURRENT_DATASOURCE_POSTFIX, CdmPersistentRemoteSource.REMOTESOURCE_BEAN_POSTFIX);
} else {
memento.putString(CURRENT_DATASOURCE_POSTFIX, CdmPersistentDataSource.DATASOURCE_BEAN_POSTFIX);
}
-
-
+
+
saveMementoToFile(memento);
}
-
+
/*
* Answer the workbench state file.
*/
path = path.append(DEFAULT_DATASOURCE_STATE_FILENAME);
return path.toFile();
}
-
+
private static IMemento readMemento(){
try {
return MementoHelper.readMementoFromFile(getCdmSourceStateFile());
return initializeMemento();
}
}
-
+
private static IMemento initializeMemento() {
-
+
XMLMemento memento = XMLMemento.createWriteRoot(TAG_DATASOURCE);
memento.putString(CURRENT_DATASOURCE, DEFAULT_DATASOURCE_NAME);
saveMementoToFile(memento);
-
+
return readMemento();
}
*/
private static IMemento saveMementoToFile(IMemento memento) {
return MementoHelper.saveMementoToFile(memento, getCdmSourceStateFile());
- }
+ }
}
// $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.
*/
*/
public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage implements ModifyListener {
private ICdmDataSource dataSource;
-
+
protected Text text_password;
protected Text text_databaseName;
protected Text text_dataSourceName;
protected Text text_username;
-
+
protected Group authenticationGroup;
protected Group locationGroup;
protected Group nomenclaturalCodeGroup;
protected String database;
protected String username;
protected String password;
-
+
protected NomenclaturalCode nomenclaturalCode;
-
+
CdmDataSourceWizard.Mode mode;
-
+
/**
* <p>Constructor for CdmDataSourceCredentialsWizardPage.</p>
*
protected CdmDataSourceCredentialsWizardPage(String pageName, ICdmDataSource dataSource) {
super(pageName);
this.setPageComplete(false);
- setDataSource(dataSource);
+ setDataSource(dataSource);
mode = CdmDataSourceWizard.Mode.CREATE;
}
-
+
/**
* <p>Constructor for CdmDataSourceCredentialsWizardPage.</p>
*
protected CdmDataSourceCredentialsWizardPage(String pageName, ICdmDataSource dataSource, CdmDataSourceWizard.Mode mode) {
super(pageName);
this.setPageComplete(false);
-
+
this.mode = mode;
if(mode == CdmDataSourceWizard.Mode.CLONE) {
- setDataSource(CdmDataSource.NewInstance(dataSource));
+ setDataSource(CdmDataSource.NewInstance(dataSource));
} else {
- setDataSource(dataSource);
+ setDataSource(dataSource);
}
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
/** {@inheritDoc} */
- public void createControl(Composite parent) {
+ @Override
+ public void createControl(Composite parent) {
this.parent = parent;
-
- // Create top-level composite
+
+ // Create top-level composite
parent.setLayout(new GridLayout());
composite = new Composite(parent, SWT.NONE);
composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false,2,5));
if(getDataSource() == null) {
editDatasourceComposite.setVisible(false);
}
-
+
// create a database specific form
createDatabaseForm();
-
+
// create the authentication input fields
createAuthenticationForm();
-
+
// create nomenclatural code combo
createNomenclaturalCodeForm();
-
+
// Create composite for buttons
Composite buttonComposite = new Composite(composite, SWT.NONE);
buttonComposite.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
GridLayout buttonLayout = new GridLayout();
buttonLayout.numColumns = 1;
buttonComposite.setLayout(buttonLayout);
-
+
// Create test connection button
Button testButton = new Button(buttonComposite, SWT.NONE);
testButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
testButton.setText("Test connection");
-
+
// Test connection when button is pressed
testButton.addSelectionListener(new SelectionAdapter() {
/* (non-Javadoc)
testDbConfiguration();
}
});
-
+
setControl(composite);
-
- init();
-
+
+ init();
+
}
/**
GridLayout authenticationLayout = new GridLayout();
authenticationLayout.numColumns = 2;
authenticationGroup.setLayout(authenticationLayout);
-
+
// Create database name label
Label databaseNameLabel = new Label(authenticationGroup, SWT.NONE);
databaseNameLabel.setText("Database Name:");
// Create database name input
text_databaseName = new Text(authenticationGroup, SWT.BORDER);
text_databaseName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
+
// Create username label
Label usernameLabel = new Label(authenticationGroup, SWT.NONE);
usernameLabel.setText("User Name:");
-
+
// Create username input
text_username = new Text(authenticationGroup, SWT.BORDER);
text_username.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-
+
+
// Create password label
Label passwordLabel = new Label(authenticationGroup, SWT.NONE);
passwordLabel.setText("Password:");
// Create password input
text_password = new Text(authenticationGroup, SWT.BORDER | SWT.PASSWORD);
text_password.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
+
}
-
+
/**
* Initialize text fields
*/
- public void init() {
+ public void init() {
removeListeners();
- if(getDataSource() != null){
+ if(getDataSource() != null){
text_dataSourceName.setText(getDataSource().getName());
text_databaseName.setText(getDataSource().getDatabase());
text_username.setText(getDataSource().getUsername());
// add listeners after setting text to avoid the modify event being called
// for the initial value
addListeners();
-
+
// in the case of cloning we use the same datasource info
// except for the name
if(mode == CdmDataSourceWizard.Mode.CLONE) {
- getDataSource().setName("");
- text_dataSourceName.setText("");
+ getDataSource().setName("");
+ text_dataSourceName.setText("");
} else {
name = text_dataSourceName.getText();
}
-
+
}
-
+
private void addListeners() {
- text_dataSourceName.addModifyListener(this);
+ text_dataSourceName.addModifyListener(this);
text_databaseName.addModifyListener(this);
text_username.addModifyListener(this);
text_password.addModifyListener(this);
}
-
+
private void removeListeners() {
text_dataSourceName.removeModifyListener(this);
text_databaseName.removeModifyListener(this);
private void createNomenclaturalCodeForm() {
nomenclaturalCodeGroup = new Group(composite , SWT.NONE);
nomenclaturalCodeGroup.setLayout(new GridLayout());
-
+
nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode();
-
+
for (final NomenclaturalCode code : NomenclaturalCodeHelper.getSupportedCodes()) {
Button button = new Button(nomenclaturalCodeGroup, SWT.RADIO);
button.setText(NomenclaturalCodeHelper.getDescription(code));
button.setSelection(nomenclaturalCode.equals(code));
}
button.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
nomenclaturalCode = (NomenclaturalCode) e.widget.getData();
modifyText(null);
}
});
- }
+ }
}
-
+
public void testDbConfiguration(){
testDbConfiguration(false);
}
-
+
/**
* Tries to open a connection to the given dataSource. Generates a message on either
* failure or success
MessageDialog.openConfirm(parent.getShell(), "Connection Test successful", "Test successful!");
}
} catch(SQLException e){
- MessageDialog.openWarning(parent.getShell(), "Connection Test unsuccessful", "Reason: " + e.getMessage()
+ MessageDialog.openWarning(parent.getShell(), "Connection Test unsuccessful", "Reason: " + e.getMessage()
+ System.getProperty("line.separator") //we may use System.lineSeparator when migrated to Java 1.7
+ System.getProperty("line.separator")
+ "Please double check the connection fields");
- throw new RuntimeException(e);
} catch (ClassNotFoundException e) {
- MessageDialog.openWarning(parent.getShell(), "Connection Test unsuccessful", "Reason: " + e.getMessage()
+ MessageDialog.openWarning(parent.getShell(), "Connection Test unsuccessful", "Reason: " + e.getMessage()
+ System.getProperty("line.separator") //we may use System.lineSeparator when migrated to Java 1.7
+ System.getProperty("line.separator")
+ "Please double check the connection fields");
- throw new RuntimeException(e);
- }
+ }
}
-
+
/**
* Form implementation for the specific database
*/
- public abstract void createDatabaseForm();
-
+ public abstract void createDatabaseForm();
+
/**
* <p>updateLocation</p>
*/
public abstract void updateLocation();
-
+
/**
* <p>updateDataSource</p>
*/
public abstract void updateDataSource();
-
+
/**
* <p>checkPageComplete</p>
*/
boolean complete = false;
if(mode == CdmDataSourceWizard.Mode.CREATE) {
complete = database.length() != 0;
- } else {
+ } else {
complete = name.length() != 0 && database.length() != 0;
- }
+ }
this.setPageComplete(complete);
}
-
-
+
+
/**
* updates the current datasource with form values
*/
- public void updateAuthentication(){
+ public void updateAuthentication(){
database = text_databaseName.getText();
username = text_username.getText();
password = text_password.getText();
*
* @param dataSource the dataSource to set
*/
- public void setDataSource(ICdmDataSource dataSource) {
+ public void setDataSource(ICdmDataSource dataSource) {
this.dataSource = dataSource;
}
updateDataSource();
return dataSource;
}
-
- protected ICdmDataSource getDataSource() {
+
+ protected ICdmDataSource getDataSource() {
return dataSource;
}
-
+
/**
* <p>getDataSourceName</p>
*
public String getDataSourceName() {
return name;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.swto.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
*/
/** {@inheritDoc} */
- public void modifyText(ModifyEvent e) {
-
+ @Override
+ public void modifyText(ModifyEvent e) {
+
name = text_dataSourceName.getText();
database = text_databaseName.getText();
switch(mode) {
case EDIT:
- if(name.length() == 0){
+ if(name.length() == 0){
name = "";
setErrorMessage("DataSource name must not be empty.");
this.setPageComplete(false);
}
break;
case CLONE:
- if(name.length() == 0){
+ if(name.length() == 0){
name = "";
setErrorMessage("DataSource name must not be empty.");
this.setPageComplete(false);
default:
break;
}
-
- if(database.length() == 0){
+
+ if(database.length() == 0){
setErrorMessage("Database name must not be empty.");
this.setPageComplete(false);
- } else {
+ } else {
updateAndCheck();
- setErrorMessage(null);
- }
- }
+ setErrorMessage(null);
+ }
+ }
+
-
private void updateAndCheck() {
updateLocation();
updateAuthentication();
import eu.etaxonomy.cdm.database.DbSchemaValidation;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
* <p>AbcdImportWizard class.</p>
private Abcd206ImportConfigurator configurator;
private ImportFromFileDataSourceWizardPage dataSourcePage;
+ private ClassificationChooserWizardPage classificationChooserWizardPage;
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
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;
}
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ if(classificationChooserWizardPage.getClassification()!=null){
+ configurator.setClassificationUuid(classificationChooserWizardPage.getClassification().getUuid());
+ }
+ configurator.setReportUri(classificationChooserWizardPage.getReportUri());
+
CdmStore.getImportManager().run(configurator);
return true;
public void addPages() {
super.addPages();
+ classificationChooserWizardPage = ClassificationChooserWizardPage.createPage();
dataSourcePage = ImportFromFileDataSourceWizardPage.XML();
+ addPage(classificationChooserWizardPage);
addPage(dataSourcePage);
}
}
--- /dev/null
+// $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 java.io.File;
+import java.net.URI;
+
+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.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wb.swt.ResourceManager;
+
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
+
+/**
+ * <p>ImportFromFileDataSourceWizardPage class.</p>
+ *
+ * @author n.hoffmann
+ * @created 04.08.2009
+ * @version 1.0
+ */
+public class ClassificationChooserWizardPage extends WizardPage implements Listener{
+
+ public static final String PAGE_NAME = "ClassificationChooserWizardPage";
+
+ //classification
+ private Text textClassification;
+ private Classification classification;
+ private Button btnBrowseClassification;
+
+ private Button btnClear;
+
+ //report
+ private FileDialog fileDialogReport;
+ private Text textFileReport;
+
+ /**
+ * <p>Constructor for ImportFromFileDataSourceWizardPage.</p>
+ *
+ * @param title a {@link java.lang.String} object.
+ * @param description a {@link java.lang.String} object.
+ * @param extensions an array of {@link java.lang.String} objects.
+ */
+ protected ClassificationChooserWizardPage(String title, String description) {
+ super(PAGE_NAME);
+
+ setTitle(title);
+
+ setDescription(description);
+
+ }
+
+ /**
+ * <p>XML</p>
+ *
+ * @return a {@link eu.etaxonomy.taxeditor.io.wizard.ClassificationChooserWizardPage} object.
+ */
+ protected static ClassificationChooserWizardPage createPage(){
+ return new ClassificationChooserWizardPage("Configure import destinations", "Note: Selecting no classification will create a default one.");
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public void createControl(Composite parent) {
+ final Composite composite = new Composite(parent, SWT.NULL);
+
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 4;
+ composite.setLayout(gridLayout);
+
+ //classification
+ 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);
+
+ //report
+ Label labelReportFile = new Label(composite, SWT.NONE);
+ labelReportFile.setText("Report File");
+
+ fileDialogReport = new FileDialog(parent.getShell());
+
+ fileDialogReport.setFilterExtensions(new String[]{"*.*"});
+
+ textFileReport = new Text(composite, SWT.BORDER);
+ textFileReport.setEditable(false);
+ textFileReport.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
+
+
+ Button buttonReport = new Button(composite, SWT.PUSH);
+ buttonReport.setText("Browse...");
+
+ buttonReport.addSelectionListener(new SelectionAdapter(){
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ String path = fileDialogReport.open();
+ if(path!=null){
+ textFileReport.setText(path);
+ setPageComplete(true);
+ }
+ }
+
+ });
+
+ setControl(composite);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
+ */
+ @Override
+ public void handleEvent(Event event) {
+ if(event.widget==btnBrowseClassification){
+ classification = SelectionDialogFactory.getSelectionFromDialog(Classification.class, getShell(), null, null);
+ if(classification!=null){
+ textClassification.setText(classification.getTitleCache());
+ }
+ }
+ else if(event.widget==btnClear){
+ classification = null;
+ textClassification.setText("");
+ }
+ }
+
+ /**
+ * @return the classification
+ */
+ public Classification getClassification() {
+ return classification;
+ }
+
+ public URI getReportUri(){
+ String text = textFileReport.getText();
+ if(text==null || text.isEmpty()){
+ return null;
+ }
+ return new File(text).toURI();
+ }
+}
super.addPages();
dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose NormalExplicit",
- "Please choose an xls file in the NormalExplicit format.", new String[]{"*.xls" ,"*.xlsx", "*.*"});
+ "Please choose an xls file in the NormalExplicit format.", new String[]{"*.xlsx", "*.xls", "*.*"});
addPage(dataSourcePage);
}
}
import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
composite.setLayout(gridLayout);
List<Method> methods = getConfiguratorsBooleanSetMethods(configurator);
+ Collections.sort(methods, new Comparator<Method>() {
+ /* (non-Javadoc)
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public int compare(Method o1, Method o2) {
+ if(o1.getName()==null && o2.getName()!=null){
+ return -1;
+ }
+ if(o1.getName()!=null && o2.getName()==null){
+ return 1;
+ }
+ if(o1.getName()==null && o2.getName()==null){
+ return 0;
+ }
+ return o1.getName().compareTo(o2.getName());
+ }
+ });
for (Method method : methods) {
createCheckbox(composite, method, configurator);
* @return a {@link eu.etaxonomy.taxeditor.io.wizard.ImportFromFileDataSourceWizardPage} object.
*/
protected static ImportFromFileDataSourceWizardPage XML(){
- return new ImportFromFileDataSourceWizardPage("Xml File", "Select XML file.", new String[]{"*.xml"});
+ return new ImportFromFileDataSourceWizardPage("Xml File", "Select XML file.", new String[]{"*.xml","*.*"});
}
});
+
setControl(composite);
}
public URI getUri() {
return getFile().toURI();
}
+
+
}
// $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.
*/
* @version 1.0
*/
public class NomenclaturalCodeWizardPage extends WizardPage {
-
- private IImportConfigurator configurator;
+
+ private static final Logger logger = Logger.getLogger(NomenclaturalCodeWizardPage.class);
+
+ private IImportConfigurator configurator;
/**
* <p>Constructor for NomenclaturalCodeWizardPage.</p>
*/
public NomenclaturalCodeWizardPage() {
super("Choose nomenclatural code");
-
+
this.setTitle("Choose nomenclatural code");
-
+
this.setDescription("Choose which code to use for imported names.");
}
this.configurator = configurator;
}
- private static final Logger logger = Logger
- .getLogger(NomenclaturalCodeWizardPage.class);
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
/** {@inheritDoc} */
- public void createControl(Composite parent) {
+ @Override
+ public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
container.setLayout(new FillLayout());
-
+
final Group group = new Group(container, SWT.NONE);
group.setLayout(new GridLayout());
-
+
NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode();
-
+
// set preferred code as default
configurator.setNomenclaturalCode(preferredCode);
-
+
for (final NomenclaturalCode code : NomenclaturalCodeHelper.getSupportedCodes()) {
Button button = new Button(group, SWT.RADIO);
button.setText(NomenclaturalCodeHelper.getDescription(code));
button.setData(code);
button.setSelection(preferredCode.equals(code));
button.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
configurator.setNomenclaturalCode((NomenclaturalCode) e.widget.getData());
}
});
- }
-
+ }
+
+
setControl(container);
}
+
+
}
super.addPages();
dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose Specimen CDM Excel",
- "Please choose an xls file in the SpecimenCdmExcel format.", new String[]{"*.xls" ,"*.xlsx", "*.*"});
+ "Please choose an xls file in the SpecimenCdmExcel format.", new String[]{"*.xlsx", "*.xls", "*.*"});
addPage(dataSourcePage);
}
// $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.
*/
import eu.etaxonomy.cdm.model.description.Distribution;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.description.QuantitativeData;
import eu.etaxonomy.cdm.model.description.TaxonInteraction;
import eu.etaxonomy.cdm.model.description.TextData;
* @version 1.0
*/
public class DescriptionHelper {
-
+
/**
* Returns whatever the element's title cache equivalent is,
* depending on its class.
* @param language a {@link eu.etaxonomy.cdm.model.common.Language} object.
* @return a {@link java.lang.String} object.
*/
- public static String getCache(DescriptionElementBase element,
+ public static String getCache(DescriptionElementBase element,
Language language) {
String cache = null;
if (element instanceof TextData) {
}else{
cache = "No taxon chosen";
}
-
+
}
if (element instanceof Distribution) {
Distribution distribution = (Distribution) element;
-
+
NamedArea area = distribution.getArea();
if(area != null){
cache = area.getLabel();
-
- PresenceAbsenceTermBase<?> status = distribution.getStatus();
+
+ PresenceAbsenceTerm status = distribution.getStatus();
if (status == null){
cache += ", no status";
}else {
public static String getCache(DescriptionElementBase element) {
return getCache(element, CdmStore.getDefaultLanguage());
}
-
+
/**
* Set whatever the element's title cache equivalent is,
* depending on its class.
return;
}
if (element instanceof TaxonInteraction) {
-
+
}
if(element instanceof Distribution){
MessagingUtils.warn(DescriptionHelper.class, "trying to set cache on distribution, don't know what to do at the moment.");
}
MessagingUtils.warn(DescriptionHelper.class, "No matching subclass found for DescriptionElementBase object, 'cache' not set.");
}
-
+
/**
* Set whatever the element's title cache equivalent is,
* depending on its class, using the default language.
String value) {
setCache(element, value, CdmStore.getDefaultLanguage());
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.IReferencingObjectsService#getObjectDescription(java.lang.Object)
*/
}else{
throw new IllegalStateException("Unknown ISourceable object for given OriginalSourceBase");
}
-
+
return CdmUtils.concat("; ", new String[]{originalSource.getIdNamespace(), originalSource.getIdInSource(), sourceObjectTitle});
}catch(LazyInitializationException e){
String result = "Error initializing title cache for ISourceable of an OriginalSourceBase";
return ((LanguageStringBase) element).getText();
}
if (element instanceof DescriptionElementBase) {
- return getCache((DescriptionElementBase) element);
+ return getCache((DescriptionElementBase) element);
}
if (element instanceof Marker) {
Marker marker = (Marker) element;
public static String getObjectClassname(Object element) {
return element.getClass().getSimpleName();
}
-
+
/**
* <p>getFeatureNodeContainerText</p>
*
*/
public static String getQuantitativeDataText(QuantitativeData element) {
TextData textData = quantitativeDescriptionBuilder.build(element, getLanguageList());
-
+
return textData.getText(CdmStore.getDefaultLanguage());
}
*/
public static String getCategoricalDataText(CategoricalData element) {
TextData textData = categoricalDescriptionBuilder.build(element, getLanguageList());
-
+
return textData.getText(CdmStore.getDefaultLanguage());
}
-
+
private static List<Language> getLanguageList(){
return Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
}
-
+
private static DescriptionBuilder<QuantitativeData> quantitativeDescriptionBuilder = new DefaultQuantitativeDescriptionBuilder();
private static DescriptionBuilder<CategoricalData> categoricalDescriptionBuilder = new DefaultCategoricalDescriptionBuilder();
-
+
/**
* <p>getDistributionText</p>
* @return a {@link java.lang.String} object.
*/
public static String getDistributionText(Distribution element) {
-
+
String text = "EMPTY";
-
- Distribution distribution = (Distribution) element;
-
+
+ Distribution distribution = element;
+
NamedArea area = distribution.getArea();
if(area != null){
-
+
text = NamedArea.labelWithLevel(area, CdmStore.getDefaultLanguage());
-
- PresenceAbsenceTermBase<?> status = distribution.getStatus();
-
+
+ PresenceAbsenceTerm status = distribution.getStatus();
+
if (status != null) {
text += ", " + status.getLabel();
}else{
return "No title.";
}
-
-
+
+
/**
* <p>getElementText</p>
*
* @param element a {@link eu.etaxonomy.cdm.model.description.TextData} object.
* @return a {@link java.lang.String} object.
*/
- public static String getElementText(TextData element) {
+ public static String getElementText(TextData element) {
String text = null;
if(element.getFeature().equals(Feature.CITATION())){
text = "";
}
return CdmUtils.isEmpty(text) ? "No text provided" : text;
}
-
+
/**
* <p>getTaxonInteractionText</p>
*
*/
public static String getTaxonInteractionText(TaxonInteraction element) {
String text = "";
- Taxon taxon2 = ((TaxonInteraction) element).getTaxon2();
+ Taxon taxon2 = element.getTaxon2();
if(taxon2 != null && taxon2.getName() != null){
text = taxon2.getName().getTitleCache();
}else{
text = "No taxon chosen";
}
-
+
return text;
}
if (text == null || text.length() == 0) {
text = "No label provided";
}
-
+
return "Description: " + text;
}
-
+
/**
* <p>getIndividualsAssociationText</p>
*
return getCategoricalDataText((CategoricalData) element);
}
else if (element instanceof CommonTaxonName) {
- return getCommonNameText((CommonTaxonName) element);
+ return getCommonNameText((CommonTaxonName) element);
}
else if (element instanceof Distribution) {
- return getDistributionText((Distribution) element);
- }
+ return getDistributionText((Distribution) element);
+ }
else if (element instanceof IndividualsAssociation) {
return getIndividualsAssociationText((IndividualsAssociation) element);
}
--- /dev/null
+// $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.model;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+
+/**
+ * Clients implementing this interface indicate, that they use {@link DerivedUnitFacade}s
+ * for specimen data instead of {@link DerivedUnit}s and {@link FieldUnit}s themselves.
+ *
+ * @author pplitzner
+ * @date Dec 3, 2014
+ *
+ */
+public interface IDerivedUnitFacadePart {
+
+}
MessagingUtils.warningDialog(title, source, status.getMessage());
}
+ /**
+ * Standard warning dialog for the case when the application is not yet connected to the datasource
+ *
+ * @param source
+ */
+ public static void noDataSourceWarningDialog(Object source) {
+ MessagingUtils
+ .warningDialog(
+ "Application is not connected to a datastore",
+ source,
+ "The requested operation is only available when "
+ + "connected to a datasource. You may choose a datasource to connect to or create a new one in the datasource view.");
+ }
+
/**
* Displays a warning {@link org.eclipse.jface.dialogs.MessageDialog}.
*
+++ /dev/null
-// $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.newWizard;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailElement;
-
-/**
- * @author pplitzner
- * @date 11.03.2014
- *
- */
-public class AmplificationCloningWizardPage extends AbstractCdmEntityWizardPage<Amplification> {
-
- /**
- * @param formFactory
- * @param conversation
- * @param entity
- */
- public AmplificationCloningWizardPage(CdmFormFactory formFactory,
- ConversationHolder conversation, Amplification entity) {
- super(formFactory, conversation, entity);
- setTitle("Amplification Cloning Data");
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
- */
- @Override
- protected void checkComplete() {
- setPageComplete(true);
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
- */
- @Override
- public AbstractCdmDetailElement<Amplification> createElement(ICdmFormElement rootElement) {
- AmplificationCloningDetailElement detailElement = formFactory.createAmplificationCloningDetailElement(rootElement);
- detailElement.setEntity(getEntity());
- checkComplete();
- return detailElement;
- }
-
-}
+++ /dev/null
-// $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.newWizard;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoDetailElement;
-
-/**
- * @author pplitzner
- * @date 11.03.2014
- *
- */
-public class AmplificationGelPhotoWizardPage extends AbstractCdmEntityWizardPage<Amplification> {
-
- /**
- * @param formFactory
- * @param conversation
- * @param entity
- */
- public AmplificationGelPhotoWizardPage(CdmFormFactory formFactory,
- ConversationHolder conversation, Amplification entity) {
- super(formFactory, conversation, entity);
- setTitle("Amplification Gel Photo");
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
- */
- @Override
- protected void checkComplete() {
- setPageComplete(true);
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
- */
- @Override
- public AbstractCdmDetailElement<Amplification> createElement(ICdmFormElement rootElement) {
- AmplificationGelPhotoDetailElement detailElement = formFactory.createAmplificationGelPhotoDetailElement(rootElement);
- detailElement.setEntity(getEntity());
- checkComplete();
- return detailElement;
- }
-
-}
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.molecular.Amplification;
-import eu.etaxonomy.cdm.model.molecular.Primer;
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.PrimerGeneralDetailElement;
/**
* @author pplitzner
*/
@Override
protected void checkComplete() {
+ //TODO: check for institution, staff and date
+ //one of them has to be set otherwise setPageComplete(false);
setPageComplete(true);
}
public class NewAmplificationWizard extends AbstractNewEntityWizard<Amplification> {
private AmplificationGeneralWizardPage amplificationGeneralPage;
- private AmplificationCloningWizardPage amplificationCloningPage;
- private AmplificationGelPhotoWizardPage amplificationGelPhotoWizardPage;
/** {@inheritDoc} */
@Override
public void addPages() {
amplificationGeneralPage = new AmplificationGeneralWizardPage(formFactory, getConversationHolder(), getEntity());
addPage(amplificationGeneralPage);
- amplificationCloningPage = new AmplificationCloningWizardPage(formFactory, getConversationHolder(), getEntity());
- addPage(amplificationCloningPage);
- amplificationGelPhotoWizardPage = new AmplificationGelPhotoWizardPage(formFactory, getConversationHolder(), getEntity());
- addPage(amplificationGelPhotoWizardPage);
}
/** {@inheritDoc} */
public void setEntity(Amplification entity) {
super.setEntity(entity);
amplificationGeneralPage.getDetailElement().setEntity(entity);
- amplificationCloningPage.getDetailElement().setEntity(entity);
- amplificationGelPhotoWizardPage.getDetailElement().setEntity(entity);
}
@Override
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseWizardPage;
* @created Jun 16, 2010
* @version 1.0
*/
-public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOrObservationBase> {
+public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOrObservationBase> implements IDerivedUnitFacadePart{
private SpecimenOrObservationType specOrObsType = null;
public NewDerivedUnitBaseWizard() {
} else {
if (SpecimenOrObservationType.Media.equals(specOrObsType)
|| ((specOrObsType.getKindOf() != null) && specOrObsType.getKindOf().equals(SpecimenOrObservationType.Media))) {
- return MediaSpecimen.NewInstance(specOrObsType);
+ MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(specOrObsType);
+ //a MediaSpecimen with no media attached does not make sense. Hence, we add one
+ mediaSpecimen.setMediaSpecimen(Media.NewInstance());
+ return mediaSpecimen;
} else if (specOrObsType.equals(SpecimenOrObservationType.FieldUnit)) {
return FieldUnit.NewInstance();
} else {
// $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.
*/
import eu.etaxonomy.cdm.model.description.FeatureTree;
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
private FeatureTree defaultFeatureTreeForTextualDescription;
private FeatureTree defaultFeatureTreeForStructuredDescription;
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
*/
protected Control createContents(Composite parent) {
defaultFeatureTreeForTextualDescription = PreferencesUtil.getDefaultFeatureTreeForTextualDescription();
defaultFeatureTreeForStructuredDescription = PreferencesUtil.getDefaultFeatureTreeForStructuredDescription();
-
+
Composite composite = new Composite(parent, SWT.NULL);
composite.setLayout(new GridLayout());
-
- createTextTreeSelection(composite);
- createStructureTreeSelection(composite);
-
+ if(!CdmStore.isActive()) {
+ MessagingUtils.noDataSourceWarningDialog(null);
+ }else{
+ createTextTreeSelection(composite);
+ createStructureTreeSelection(composite);
+ }
+
return composite;
}
-
+
private void createTextTreeSelection(Composite parent){
final CLabel label = new CLabel(parent, SWT.NONE);
label.setText("Deafult Feature Tree to be used for textual descriptions");
-
+
final ListViewer viewer = new ListViewer(parent);
viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
+
viewer.setContentProvider(new FeatureTreeContentProvider());
viewer.setLabelProvider(new FeatureTreeLabelProvider());
-
+
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-
+
@Override
public void selectionChanged(SelectionChangedEvent arg0) {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-
+
defaultFeatureTreeForTextualDescription = (FeatureTree) selection.getFirstElement();
}
});
-
+
List<FeatureTree> input = CdmStore.getService(IFeatureTreeService.class).list(FeatureTree.class, null, null, null, null);
-
+
viewer.setInput(input);
-
+
if(defaultFeatureTreeForTextualDescription != null){
IStructuredSelection selection = new StructuredSelection(defaultFeatureTreeForTextualDescription);
viewer.setSelection(selection, true);
}
}
-
+
private void createStructureTreeSelection(Composite parent){
final CLabel label = new CLabel(parent, SWT.NONE);
label.setText("Deafult Feature Tree to be used for structured descriptions");
-
+
final ListViewer viewer = new ListViewer(parent);
viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
+
viewer.setContentProvider(new FeatureTreeContentProvider());
viewer.setLabelProvider(new FeatureTreeLabelProvider());
-
+
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-
+
@Override
public void selectionChanged(SelectionChangedEvent arg0) {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-
+
defaultFeatureTreeForStructuredDescription = (FeatureTree) selection.getFirstElement();
}
});
-
+
List<FeatureTree> input = CdmStore.getService(IFeatureTreeService.class).list(FeatureTree.class, null, null, null, null);
-
+
viewer.setInput(input);
-
+
if(defaultFeatureTreeForStructuredDescription != null){
IStructuredSelection selection = new StructuredSelection(defaultFeatureTreeForStructuredDescription);
viewer.setSelection(selection, true);
public void init(IWorkbench workbench) {
setPreferenceStore(PreferencesUtil.getPreferenceStore());
}
-
+
/** {@inheritDoc} */
@Override
public boolean performOk() {
String defaultFeatureTreeForTextualDescriptionUuid = "";
String defaultFeatureTreeForStructuredDescriptionUuid = "";
-
+
if(defaultFeatureTreeForTextualDescription != null){
defaultFeatureTreeForTextualDescriptionUuid = defaultFeatureTreeForTextualDescription.getUuid().toString();
}
if(defaultFeatureTreeForStructuredDescription != null){
defaultFeatureTreeForStructuredDescriptionUuid = defaultFeatureTreeForStructuredDescription.getUuid().toString();
}
-
+
getPreferenceStore().setValue(IPreferenceKeys.FEATURE_TREE_DEFAULT_TEXT, defaultFeatureTreeForTextualDescriptionUuid);
getPreferenceStore().setValue(IPreferenceKeys.FEATURE_TREE_DEFAULT_STRUCTURE, defaultFeatureTreeForStructuredDescriptionUuid);
-
+
return super.performOk();
}
}
public static final String SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION = "eu.etaxonomy.taxeditor.specimen.showCollectingAreasInGeneralSection";
+ public static final String SHOW_TAXON_ASSOCIATIONS = "eu.etaxonomy.taxeditor.specimen.showTaxonAssociations";
public static final String DISTRIBUTION_AREA_PREFRENCES_ACTIVE = "eu.etaxonomy.taxeditor.checklist.distributionAreaPreferencesActive";
* @created Dec 3, 2010
* @version 1.0
*/
-public class DefaultLanguageEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
+public class LanguageEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
private CCombo combo;
PreferencesUtil preferencesUtil = new PreferencesUtil();
description.setText("After changing the default language, a restart is required,\nin order for the new settings to take effect.");
final Label label = new Label(container, SWT.NONE);
- label.setText("Please choose your default language: ");
+ label.setText("Please choose your default language for the editor: ");
GridData oneLine = new GridData();
oneLine.grabExcessHorizontalSpace = true;
// $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.
*/
* @created Dec 3, 2010
* @version 1.0
*/
-public class LanguagePreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
+public class LanguageRepresentationPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
private boolean isMultilanguageTextEditingCapability;
private Language globalLanguage;
-
+
private Composite createComposite(Composite parent){
Composite composite = new Composite(parent, SWT.NULL);
composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
composite.setLayout(new RowLayout(SWT.HORIZONTAL));
return composite;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
*/
Composite container = new Composite(parent, SWT.NULL);
final GridLayout gridLayout = new GridLayout();
container.setLayout(gridLayout);
-
+
createSetDefaultLanguage(container);
-
+
createSetMultiLanguageTextEditingCapability(container);
-
+
return container;
-
-
+
+
}
/**
*/
private void createSetDefaultLanguage(Composite parent) {
globalLanguage = PreferencesUtil.getGlobalLanguage();
-
+
+ if(globalLanguage == null) {
+ return;
+ }
+
int curentSelectionIndex = 0;
-
+
final Composite composite = createComposite(parent);
composite.setLayout(new RowLayout(1));
-
+
final Label label = new Label(composite, SWT.NONE);
label.setText("Choose the global language that will be used throughout the editor to get representations in.");
-
- final Combo combo_globalLanguage = new Combo(composite, SWT.NONE);
-
+
+ final Combo combo_globalLanguage = new Combo(composite, SWT.NONE);
+
List<Language> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class);
-
+
for(int i = 0; i < preferredLanguages.size(); i++){
Language language = preferredLanguages.get(i);
combo_globalLanguage.add(language.getLabel(), i);
curentSelectionIndex = i;
}
}
-
+
combo_globalLanguage.select(curentSelectionIndex);
-
+
combo_globalLanguage.addSelectionListener(new SelectionAdapter() {
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
int selectionIndex = combo_globalLanguage.getSelectionIndex();
globalLanguage = Language.getLanguageByLabel(combo_globalLanguage.getItem(selectionIndex));
}
- });
+ });
}
/**
- *
+ *
*/
private void createSetMultiLanguageTextEditingCapability(Composite parent) {
isMultilanguageTextEditingCapability = getPreferenceStore().getBoolean(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
-
+
final Composite composite = createComposite(parent);
-
- final Button button_toggle = new Button(composite, SWT.CHECK);
-
-
+
+ final Button button_toggle = new Button(composite, SWT.CHECK);
+
+
button_toggle.setText("Enable Multiple Language Editing Capability");
-
+
button_toggle.setSelection(isMultilanguageTextEditingCapability);
-
-
+
+
button_toggle.addSelectionListener(new SelectionAdapter(){
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
public boolean performOk() {
getPreferenceStore().setValue(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY, isMultilanguageTextEditingCapability);
PreferencesUtil.setGlobalLanguage(globalLanguage);
-
+
return super.performOk();
}
}
import org.eclipse.core.expressions.PropertyTester;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
/**
* @author n.hoffmann
* @created Jan 26, 2011
private static final String SHOW_EXPERIMENTAL_FEATURES = "isShowExperimentalFeatures";
- private static final String SHOW_CHECKLIST_EDITOR = "isChecklistEditorEnabled";
+ private static final String SHOW_CHECKLIST_EDITOR = "isChecklistEditorEnabled";
+
+ private static final String EDITOR_IS_CONNECTED_TO_DB = "isCdmStoreConnected";
/* (non-Javadoc)
* @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
if(SHOW_CHECKLIST_EDITOR.equals(property)){
return isChecklistEditorEnabled();
}
+ if(EDITOR_IS_CONNECTED_TO_DB.equals(property)){
+ return isCdmStoreConnected();
+ }
return false;
}
private boolean isChecklistEditorEnabled() {
return PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
}
+
+ private boolean isCdmStoreConnected(){
+ boolean active = CdmStore.isActive();
+ return active;
+ }
}
import org.apache.commons.lang.StringUtils;
import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement;
import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.MatchException;
import eu.etaxonomy.cdm.strategy.match.MatchMode;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
import eu.etaxonomy.taxeditor.ui.dialog.DefaultLanguageDialog;
"http://www.biodiversitylibrary.org/openurl");
getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_WIDTH, "1000");
getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_HEIGHT, "1000");
+ getPreferenceStore().setDefault(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE, false);
}
/**
public static void checkDefaultLanguage(){
if(PreferencesUtil.getPreferredDefaultLangugae() == null){
- Shell shell = StoreUtil.getShell();
+ Shell shell = AbstractUtility.getShell();
int open = new DefaultLanguageDialog(shell).open();
- if(open == 0){//FIXME:window performed ok. Find variable for it
+ if(open == Window.OK){
PlatformUI.getWorkbench().restart();
}
}else{
}
public static Language getGlobalLanguage() {
+
+
String languageUuidString = getPreferenceStore().getString(
GLOBAL_LANGUAGE_UUID);
+ if(!CdmStore.isActive()) {
+ MessagingUtils.noDataSourceWarningDialog(languageUuidString);
+ return null;
+ }
+
if (CdmUtils.isBlank(languageUuidString)) {
return Language.getDefaultLanguage();
}
}
public static void setGlobalLanguage(Language language) {
- getPreferenceStore().setValue(GLOBAL_LANGUAGE_UUID,
- language.getUuid().toString());
- CdmStore.setDefaultLanguage(language);
+ if(language != null) {
+ getPreferenceStore().setValue(GLOBAL_LANGUAGE_UUID,language.getUuid().toString());
+ CdmStore.setDefaultLanguage(language);
+ }
+
}
/**
addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION,
"Show \"Collecting Areas\" in \"General\" section of details view",
getFieldEditorParent()));
+ addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS,
+ "Show taxon associations of a specimen in the details view",
+ getFieldEditorParent()));
}
// $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.
*/
import eu.etaxonomy.cdm.strategy.match.MatchMode;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.parser.MatchStrategyConfigurator;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>Abstract AbstractMatchingPreferences class.</p>
"|parsingProblem|problemStarts|problemEnds|PROTECTED|NOT_PROTECTED|propertyChangeSupport";
protected IMatchStrategy matchStrategy;
-
+
protected Class<T> clazz;
private List<MatchMode> matchModeList;
-
+
protected Map<String, Combo> matchModeCombos = new HashMap<String, Combo>();
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
*/
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 2;
composite.setLayout(gridLayout);
-
-
- for(String fieldName : getFieldNames()){
- createFieldWidget(composite, fieldName);
- }
-
+
+ if(!CdmStore.isActive()) {
+ MessagingUtils.noDataSourceWarningDialog(null);
+ }else{
+ for(String fieldName : getFieldNames()){
+ createFieldWidget(composite, fieldName);
+ }
+ }
+
return composite;
}
-
+
/**
* Creates a widget for a field consisting of the label and a combo
- *
+ *
* @see {@link #createMatchModeCombo(Composite, String, MatchMode)}
* @param composite
* @param fieldName
*/
private void createFieldWidget(Composite parent, String fieldName) {
- CLabel label = new CLabel(parent, SWT.NONE);
- label.setText(fieldName);
-
- MatchMode matchMode = matchStrategy.getMatchMode(fieldName);
-
- createMatchModeCombo(parent, fieldName, matchMode);
- }
-
+ CLabel label = new CLabel(parent, SWT.NONE);
+ label.setText(fieldName);
+ MatchMode matchMode = matchStrategy.getMatchMode(fieldName);
+
+ createMatchModeCombo(parent, fieldName, matchMode);
+ }
+
/**
* Creates a combo for a field with the currently selected match mode for that field preselected
- *
+ *
* @param parent
* @param matchMode
*/
private void createMatchModeCombo(Composite parent, String fieldName, MatchMode selectedMatchMode) {
Combo matchModeCombo = new Combo(parent, SWT.NULL);
-
+
for (MatchMode matchMode : getMatchModeList()) {
matchModeCombo.add(matchMode.name());
}
-
+
int index = getMatchModeList().indexOf(selectedMatchMode);
-
+
matchModeCombo.select(index);
-
+
matchModeCombo.addSelectionListener(new MatchModeComboSelectionListener(matchModeCombo, fieldName));
-
+
matchModeCombos.put(fieldName, matchModeCombo);
}
-
+
/**
* This listener updates the cache strategy when a value was changed in one of the combos
- *
+ *
* @author n.hoffmann
* @created Jan 28, 2010
* @version 1.0
*/
private class MatchModeComboSelectionListener extends SelectionAdapter{
-
- private Combo matchModeCombo;
- private String fieldName;
+
+ private final Combo matchModeCombo;
+ private final String fieldName;
MatchModeComboSelectionListener(Combo matchModeCombo, String fieldName){
this.matchModeCombo = matchModeCombo;
this.fieldName = fieldName;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
/**
* Transforms the MatchMode enum into a list.
- *
+ *
* @return
*/
private List<MatchMode> getMatchModeList(){
/**
* Get names of all declared fields
- *
+ *
* @return
*/
- private List<String> getFieldNames(){
+ private List<String> getFieldNames(){
List<Field> fields = new ArrayList<Field>();
-
+
fields = getAllFields(fields, clazz);
List<String> fieldNames = new ArrayList<String>();
-
+
for(Field field : fields){
String fieldName = field.getName();
if(! fieldName.matches(ExcludePattern)){
fieldNames.add(fieldName);
}
}
-
+
return fieldNames;
}
-
+
/**
* Get all declared fields including fields of the superclasses.
*
return fields;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#performApply()
*/
MatchStrategyConfigurator.setMatchStrategy(matchStrategy);
super.performApply();
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#performDefaults()
*/
try {
// set match strategy to default
matchStrategy = getDefaultMatchStrategy();
-
+
// set combos to their default values
for(String fieldName : matchModeCombos.keySet()){
Combo combo = matchModeCombos.get(fieldName);
MatchMode matchMode = matchStrategy.getMatchMode(fieldName);
combo.select(matchModeList.indexOf(matchMode));
}
-
+
} catch (MatchException e) {
MessagingUtils.error(this.getClass(), e);
throw new RuntimeException(e);
}
super.performDefaults();
}
-
+
/**
* Returns the default match strategy for the respective class
*
}
protected List<T> getTerms(){
- return TermStore.getTerms(getTermClass());
+ if(!CdmStore.isActive()) {
+ return new ArrayList<T>();
+ } else {
+ return TermStore.getTerms(getTermClass());
+ }
}
/**
/** {@inheritDoc} */
@Override
public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- getConversationHolder().bind();
+ setPreferenceStore(PreferencesUtil.getPreferenceStore());
+ if(!CdmStore.isActive()) {
+ MessagingUtils.noDataSourceWarningDialog(null);
+
+ } else {
+ getConversationHolder().bind();
+ }
}
/*
/** {@inheritDoc} */
@Override
public boolean performOk() {
+ if(!CdmStore.isActive()) {
+ return true;
+ }
+
if(checkNoneChecked()){
return false;
}
// $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.
*/
import org.eclipse.ui.IWorkbenchPreferencePage;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
/**
* <p>PresenceAbsenceMenuPreferences class.</p>
* @created 25.06.2009
* @version 1.0
*/
-public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTermBase> implements
+public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTerm> implements
IWorkbenchPreferencePage {
/**
* <p>Constructor for PresenceAbsenceMenuPreferences.</p>
*/
public PresenceAbsenceMenuPreferences() {
- super("Distribution Status Preferences",
+ super("Distribution Status Preferences",
"Choose which distribution states should be shown.",
false);
}
*/
/** {@inheritDoc} */
@Override
- protected Class<PresenceAbsenceTermBase> getTermClass() {
- return PresenceAbsenceTermBase.class;
+ protected Class<PresenceAbsenceTerm> getTermClass() {
+ return PresenceAbsenceTerm.class;
}
-
+
}
return instance;
} else{// if (instance == null || !instance.isConnected) {
- MessagingUtils
- .warningDialog(
- "Application is not connected to a datastore",
- instance,
- "The requested operation is only available when "
- + "connected to a datasource. You may choose a datasource to connect to or create a new one in the datasource view.");
+ MessagingUtils.noDataSourceWarningDialog(instance);
AbstractUtility.showView(CdmDataSourceViewPart.ID);
return null;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
-import eu.etaxonomy.cdm.model.description.AbsenceTerm;
import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
-import eu.etaxonomy.cdm.model.description.PresenceTerm;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.name.Rank;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
}
});
- termStoreEdgeCases.add(new ITermStoreEdgeCase<PresenceAbsenceTermBase>() {
+ termStoreEdgeCases.add(new ITermStoreEdgeCase<PresenceAbsenceTerm>() {
@Override
- public Class<PresenceAbsenceTermBase> getTermClass() {
- return PresenceAbsenceTermBase.class;
+ public Class<PresenceAbsenceTerm> getTermClass() {
+ return PresenceAbsenceTerm.class;
}
@Override
- public List<PresenceAbsenceTermBase> getTerms() {
- List presenceAbsenceTerms = TermStore.getTermsFromService(PresenceTerm.class, null);
- presenceAbsenceTerms.addAll(TermStore.getTermsFromService(AbsenceTerm.class, null));
+ public List<PresenceAbsenceTerm> getTerms() {
+ List<PresenceAbsenceTerm> presenceAbsenceTerms = TermStore.getTermsFromService(PresenceAbsenceTerm.class, null);
return presenceAbsenceTerms;
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.deleteConfigurator;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.events.IExpansionListener;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * @author pplitzner
+ * @date Feb 16, 2015
+ *
+ */
+public class DeleteConfiguratorComposite extends Composite implements IExpansionListener{
+
+ private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
+ private final Section sctnConfigure;
+ /**
+ * Create the composite.
+ * @param parent
+ * @param style
+ */
+ public DeleteConfiguratorComposite(final Composite parent, int style) {
+ super(parent, SWT.NONE);
+
+ addDisposeListener(new DisposeListener() {
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ toolkit.dispose();
+ }
+ });
+ toolkit.paintBordersFor(this);
+ setLayout(new FillLayout(SWT.HORIZONTAL));
+
+ sctnConfigure = toolkit.createSection(this, Section.CLIENT_INDENT | Section.TWISTIE);
+ sctnConfigure.addExpansionListener(this);
+ sctnConfigure.setBackground(getBackground());
+ toolkit.paintBordersFor(sctnConfigure);
+ sctnConfigure.setText("Configure");
+
+
+ }
+
+
+ public void addConfiguratorComposite(Composite configuratorComposite){
+ toolkit.paintBordersFor(configuratorComposite);
+ sctnConfigure.setClient(configuratorComposite);
+ }
+
+ @Override
+ public void expansionStateChanged(ExpansionEvent e) {
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ }
+ @Override
+ public void expansionStateChanging(ExpansionEvent e) {
+ }
+ public Section getSectionConfigure() {
+ return sctnConfigure;
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.deleteConfigurator;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;
+
+/**
+ * Abstract subclass of MessageDialog providing the functionality to configure
+ * a {@link DeleteConfiguratorBase}
+ * @author pplitzner
+ * @date Jan 28, 2015
+ *
+ */
+public class DeleteConfiguratorDialog extends MessageDialog{
+
+ private final DeleteConfiguratorBase configurator;
+
+ public DeleteConfiguratorDialog(DeleteConfiguratorBase configurator, Shell parentShell, String dialogTitle,
+ Image dialogTitleImage, String dialogMessage, int dialogImageType, String[] dialogButtonLabels, int defaultIndex) {
+ super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex);
+ 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);
+ if(configurator instanceof TaxonBaseDeletionConfigurator){
+ composite.addConfiguratorComposite(new DeleteTaxonConfiguratorComposite((TaxonBaseDeletionConfigurator) configurator, composite.getSectionConfigure(), SWT.NONE));
+ }
+ else if(configurator instanceof SpecimenDeleteConfigurator){
+ composite.addConfiguratorComposite(new DeleteSpecimenConfiguratorComposite((SpecimenDeleteConfigurator) configurator, composite.getSectionConfigure(), SWT.NONE));
+ }
+ return composite;
+ }
+
+ public static boolean openConfirmWithConfigurator(DeleteConfiguratorBase configurator, Shell parent, String title, String message) {
+ DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(configurator, parent, title, getDefaultImage(), message, QUESTION, getButtonLabels(QUESTION), 0);
+ 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) {
+ case ERROR:
+ case INFORMATION:
+ case WARNING: {
+ dialogButtonLabels = new String[] { IDialogConstants.OK_LABEL };
+ break;
+ }
+ case CONFIRM: {
+ dialogButtonLabels = new String[] { IDialogConstants.OK_LABEL,
+ IDialogConstants.CANCEL_LABEL };
+ break;
+ }
+ case QUESTION: {
+ dialogButtonLabels = new String[] { IDialogConstants.YES_LABEL,
+ IDialogConstants.NO_LABEL };
+ break;
+ }
+ case QUESTION_WITH_CANCEL: {
+ dialogButtonLabels = new String[] { IDialogConstants.YES_LABEL,
+ IDialogConstants.NO_LABEL,
+ IDialogConstants.CANCEL_LABEL };
+ break;
+ }
+ default: {
+ throw new IllegalArgumentException(
+ "Illegal value for kind in MessageDialog.open()"); //$NON-NLS-1$
+ }
+ }
+ return dialogButtonLabels;
+ }
+}
\ No newline at end of file
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.deleteConfigurator;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
+
+/**
+ * @author pplitzner
+ * @date Feb 18, 2015
+ *
+ */
+public class DeleteSpecimenConfiguratorComposite extends Composite {
+ private final DataBindingContext m_bindingContext;
+
+ private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
+
+ private final SpecimenDeleteConfigurator configurator;
+ private final Button btnDeleteChildren;
+ private final Button btnDeleteFromTypeDesignation;
+ private final Button btnDeleteMolecularData;
+ private final Button btnDeleteIndividualsassociationsfactual;
+ private final Button btnDeleteSpecimenDescription;
+
+ /**
+ * Create the composite.
+ * @param parent
+ * @param style
+ */
+ public DeleteSpecimenConfiguratorComposite(SpecimenDeleteConfigurator configurator, Composite parent, int style) {
+ super(parent, style);
+ this.configurator = configurator;
+ addDisposeListener(new DisposeListener() {
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ toolkit.dispose();
+ }
+ });
+ toolkit.paintBordersFor(this);
+ setLayout(new RowLayout(SWT.VERTICAL));
+
+ btnDeleteChildren = new Button(this, SWT.CHECK);
+ btnDeleteChildren.setText("Delete Children");
+
+ btnDeleteFromTypeDesignation = new Button(this, SWT.CHECK);
+ btnDeleteFromTypeDesignation.setText("Delete from type designation");
+
+ btnDeleteMolecularData = new Button(this, SWT.CHECK);
+ btnDeleteMolecularData.setText("Delete molecular data");
+
+ btnDeleteIndividualsassociationsfactual = new Button(this, SWT.CHECK);
+ btnDeleteIndividualsassociationsfactual.setText("Delete from factual data");
+
+ btnDeleteSpecimenDescription = new Button(this, SWT.CHECK);
+ toolkit.adapt(btnDeleteSpecimenDescription, true, true);
+ btnDeleteSpecimenDescription.setText("Delete specimen description");
+ m_bindingContext = initDataBindings();
+
+ }
+ protected DataBindingContext initDataBindings() {
+ DataBindingContext bindingContext = new DataBindingContext();
+ //
+ IObservableValue observeSelectionBtnDeleteChildrenObserveWidget = WidgetProperties.selection().observe(btnDeleteChildren);
+ IObservableValue deleteChildrenConfiguratorObserveValue = PojoProperties.value("deleteChildren").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteChildrenObserveWidget, deleteChildrenConfiguratorObserveValue, null, null);
+ //
+ IObservableValue observeSelectionBtnDeleteFromTypeDesignationObserveWidget = WidgetProperties.selection().observe(btnDeleteFromTypeDesignation);
+ IObservableValue deleteFromTypeDesignationConfiguratorObserveValue = PojoProperties.value("deleteFromTypeDesignation").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteFromTypeDesignationObserveWidget, deleteFromTypeDesignationConfiguratorObserveValue, null, null);
+ //
+ IObservableValue observeSelectionBtnDeleteMolecularDataObserveWidget = WidgetProperties.selection().observe(btnDeleteMolecularData);
+ IObservableValue deleteMolecularDataConfiguratorObserveValue = PojoProperties.value("deleteMolecularData").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteMolecularDataObserveWidget, deleteMolecularDataConfiguratorObserveValue, null, null);
+ //
+ IObservableValue observeSelectionBtnDeleteIndividualsassociationsfactualObserveWidget = WidgetProperties.selection().observe(btnDeleteIndividualsassociationsfactual);
+ IObservableValue deleteFromIndividualsAssociationConfiguratorObserveValue = PojoProperties.value("deleteFromIndividualsAssociation").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteIndividualsassociationsfactualObserveWidget, deleteFromIndividualsAssociationConfiguratorObserveValue, null, null);
+ //
+ IObservableValue observeSelectionBtnDeleteSpecimenDescriptionObserveWidget = WidgetProperties.selection().observe(btnDeleteSpecimenDescription);
+ IObservableValue deleteFromDescriptionConfiguratorObserveValue = PojoProperties.value("deleteFromDescription").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteSpecimenDescriptionObserveWidget, deleteFromDescriptionConfiguratorObserveValue, null, null);
+ //
+ return bindingContext;
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.deleteConfigurator;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;
+
+/**
+ * @author pplitzner
+ * @date Feb 18, 2015
+ *
+ */
+public class DeleteTaxonConfiguratorComposite extends Composite {
+ private final DataBindingContext m_bindingContext;
+
+ private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
+ private final TaxonBaseDeletionConfigurator configurator;
+ private final Button btnDeleteTaxonName;
+
+ /**
+ * Create the composite.
+ * @param parent
+ * @param style
+ */
+ public DeleteTaxonConfiguratorComposite(TaxonBaseDeletionConfigurator configurator, Composite parent, int style) {
+ super(parent, style);
+ this.configurator = configurator;
+ addDisposeListener(new DisposeListener() {
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ toolkit.dispose();
+ }
+ });
+ toolkit.paintBordersFor(this);
+ setLayout(new RowLayout(SWT.VERTICAL));
+ setBackground(getBackground());
+
+ btnDeleteTaxonName = new Button(this, SWT.CHECK);
+ btnDeleteTaxonName.setText("Delete taxon name if possible");
+ m_bindingContext = initDataBindings();
+
+ }
+
+ protected DataBindingContext initDataBindings() {
+ DataBindingContext bindingContext = new DataBindingContext();
+ //
+ IObservableValue observeSelectionBtnDeleteTaxonNameObserveWidget = WidgetProperties.selection().observe(btnDeleteTaxonName);
+ IObservableValue deleteNameIfPossibleConfiguratorObserveValue = PojoProperties.value("deleteNameIfPossible").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteTaxonNameObserveWidget, deleteNameIfPossibleConfiguratorObserveValue, null, null);
+ //
+ return bindingContext;
+ }
+}
/** {@inheritDoc} */
@Override
protected void initModel() {
- model = CdmStore.getService(IAmplificationService.class).getAmplificationUuidAndDescription();
+ model = CdmStore.getService(IAmplificationService.class).getAmplificationUuidAndLabelCache();
}
/* (non-Javadoc)
@Override
protected String getTitle(Amplification cdmObject) {
if(cdmObject!=null){
- return cdmObject.getDescription();
+ return cdmObject.getLabelCache();
}
return super.getTitle(cdmObject);
}
import eu.etaxonomy.cdm.model.agent.Institution;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
import eu.etaxonomy.cdm.model.common.Group;
import eu.etaxonomy.cdm.model.common.ICdmBase;
if(clazz.equals(Team.class)){
return (T) TeamSelectionDialog.select(shell, conversation, (Team) currentSelection);
}
+ if(clazz.equals(TeamOrPersonBase.class)){
+ //TODO: add TeamOrPersonBaseSelectionDialog (see ticket #4545)
+ return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+ }
if(clazz.equals(AgentBase.class)){
return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
}
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.GeographicalScopeDetailSection;
import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailElement;
import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.CurrentDeterminationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitFacadeDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitFacadeDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.SourceCollectionDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenHierarchyDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenHierarchyDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenCurrentDeterminationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenGeneralDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit.PreservedSpecimenSourceCollectionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractSampleDesignationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoCollectionDetailSection;
return element;
}
- /**
- * <p>
- * createLanguageStringWithLabelElement
- * </p>
- *
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
- * @param labelString
- * a {@link java.lang.String} object.
- * @param languageString
- * a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
- * @param style
- * a int.
- * @return a
- * {@link eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement}
- * object.
- */
public LanguageStringWithLabelElement createLanguageStringWithLabelElement(ICdmFormElement parentElement,
String labelString, LanguageString languageString, int style) {
- LanguageStringWithLabelElement element = new LanguageStringWithLabelElement(this, parentElement, labelString,
- languageString, style);
- adapt(element);
- parentElement.addElement(element);
- return element;
+ return createLanguageStringWithLabelElement(parentElement, labelString, languageString, null, false, style);
}
- /**
- * <p>
- * createLanguageStringWithLabelElement
- * </p>
- *
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
- * @param labelString
- * a {@link java.lang.String} object.
- * @param languageString
- * a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
- * @param height
- * a int.
- * @param style
- * a int.
- * @return a
- * {@link eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement}
- * object.
- */
public LanguageStringWithLabelElement createLanguageStringWithLabelElement(ICdmFormElement parentElement,
- String labelString, LanguageString languageString, int height, int style) {
+ String labelString, LanguageString languageString, Integer height, boolean isMultiLine, int style) {
LanguageStringWithLabelElement element = new LanguageStringWithLabelElement(this, parentElement, labelString,
- languageString, height, style);
+ languageString, height, isMultiLine, style);
adapt(element);
parentElement.addElement(element);
return element;
}
-
/**
* <p>
* createKeyValueViewerElement
return section;
}
- public DerivedUnitFacadeDetailSection createDerivedUnitFacadeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
- DerivedUnitFacadeDetailSection section = new DerivedUnitFacadeDetailSection(this, conversation, parentElement, selectionProvider, style);
- addAndAdaptSection(parentElement, section);
- return section;
- }
-
public FieldUnitDetailSection createFieldUnitDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
FieldUnitDetailSection section = new FieldUnitDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return section;
}
+ public SpecimenHierarchyDetailSection createSpecimenHierarchyDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ SpecimenHierarchyDetailSection section = new SpecimenHierarchyDetailSection(this, conversation, parentElement, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
public DerivedUnitBaseDetailSection createDerivedUnitBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
DerivedUnitBaseDetailSection section = new DerivedUnitBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return section;
}
+ public TaxonAssociationDetailSection createTaxonAssociationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ TaxonAssociationDetailSection section = new TaxonAssociationDetailSection(this, conversation, parentElement, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
public OriginalLabelDataSection createOriginalLabelDataSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
OriginalLabelDataSection section = new OriginalLabelDataSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return element;
}
- public DerivedUnitFacadeDetailElement createDerivedUnitFacadeDetailElement(ICdmFormElement parentElement){
- DerivedUnitFacadeDetailElement element = new DerivedUnitFacadeDetailElement(this, parentElement);
- addAndAdaptElement(parentElement, element);
- return element;
- }
-
public NonViralNameDetailElement createNonViralNameDetailElement(ICdmFormElement parentElement){
NonViralNameDetailElement element = new NonViralNameDetailElement(this, parentElement);
addAndAdaptElement(parentElement, element);
return element;
}
+ public TaxonAssociationDetailElement createTaxonAssociationDetailElement(ICdmFormElement parentElement){
+ TaxonAssociationDetailElement element = new TaxonAssociationDetailElement(this, parentElement);
+ addAndAdaptElement(parentElement, element);
+ return element;
+ }
+
public PreservedSpecimenGeneralDetailElement createPreservedSpecimenGeneralDetailElement(ICdmFormElement parentElement){
PreservedSpecimenGeneralDetailElement element = new PreservedSpecimenGeneralDetailElement(this, parentElement);
addAndAdaptElement(parentElement, element);
return element;
}
+ public SpecimenHierarchyDetailElement createSpecimenHierarchyDetailElement(ICdmFormElement parentElement) {
+ SpecimenHierarchyDetailElement element = new SpecimenHierarchyDetailElement(this, parentElement);
+ addAndAdaptElement(parentElement, element);
+ return element;
+ }
public DerivedUnitBaseDetailElement createDerivedUnitBaseDetailElement(ICdmFormElement parentElement) {
DerivedUnitBaseDetailElement element = new DerivedUnitBaseDetailElement(this, parentElement);
return section;
}
+ public IdentifierDetailSection createIdentifierDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+ IdentifierDetailSection section = new IdentifierDetailSection(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);
element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
}
} else if (entity instanceof Identifier) {
- element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
+ if(parentElement instanceof AbstractSampleDesignationDetailSection){
+ element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
+ }
+ else{
+ element = new IdentifierDetailElement(this, parentElement, (Identifier) entity, removeListener, style);
+ }
}
if (element == null) {
protected LanguageStringWithLabelElement(CdmFormFactory formFactory,
ICdmFormElement parentElement, String labelString,
LanguageString languageString, Integer height, int style) {
- super(formFactory, parentElement, labelString, null, height, true, style);
+ this(formFactory, parentElement, labelString, languageString, height, true, style);
+ }
+
+ protected LanguageStringWithLabelElement(CdmFormFactory formFactory,
+ ICdmFormElement parentElement, String labelString,
+ LanguageString languageString, Integer height, boolean isMultiLine, int style) {
+ super(formFactory, parentElement, labelString, null, height, isMultiLine, style);
+
+ setLanguageString(languageString);
- setLanguageString(languageString);
}
/**
import java.util.List;
import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
WizardDialog dialog = new WizardDialog(getLayoutComposite()
.getShell(), wizard);
- if (dialog.open() == IStatus.OK) {
+ if (dialog.open() == Window.OK) {
combo_language.setTerms(getLanguages());
updateControls();
}
element_languageString = this.formFactory
.createLanguageStringWithLabelElement(formElement, labelString,
- null, textHeight, style);
+ null, textHeight, true, style);
if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
createMultilanguageTextEditingElements(formElement,
package eu.etaxonomy.taxeditor.ui.element;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.taxeditor.ui.mvc.OriginalLabelDataField;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
/**
*/
public class OriginalLabelDataElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+ private TextWithLabelElement textOriginalLabel;
+
/**
* @param formFactory
* @param formElement
@Override
protected void createControls(ICdmFormElement formElement,
DerivedUnitFacade entity, int style) {
- OriginalLabelDataField originalLabelDataField = new OriginalLabelDataField(formElement.getLayoutComposite(), style, entity.innerDerivedUnit(), getFormFactory());
- originalLabelDataField.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+ textOriginalLabel = formFactory.createTextWithLabelElement(formElement, "Original Label Info", entity.getOriginalLabelInfo(), style);
}
/*
*/
@Override
public void handleEvent(Object eventSource) {
+ if(eventSource==textOriginalLabel){
+ getEntity().setOriginalLabelInfo(textOriginalLabel.getText());
+ }
}
}
+++ /dev/null
-// $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.ui.mvc;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-
-/**
- * @author pplitzner
- * @date 23.06.2014
- *
- */
-public class OriginalLabelDataField extends Composite {
-
- private DataBindingContext m_bindingContext;
- private DerivedUnit derivedUnit = null;
- private final Text originalLabelInfoText;
- private CdmFormFactory formFactory;
-
- public OriginalLabelDataField(Composite parent, int style, DerivedUnit newDerivedUnit, CdmFormFactory formFactory) {
- this(parent, style);
- setDerivedUnit(newDerivedUnit);
- this.formFactory = formFactory;
- }
-
- public OriginalLabelDataField(Composite parent, int style) {
- super(parent, style);
- setLayout(new GridLayout(2, false));
-
- new Label(this, SWT.NONE).setText("Original Label Data");
-
- originalLabelInfoText = new Text(this, SWT.BORDER | SWT.WRAP | SWT.MULTI);
- originalLabelInfoText.addModifyListener(new ModifyListener() {
- @Override
- public void modifyText(ModifyEvent e) {
- if(formFactory!=null){
- List<IPropertyChangeListener> propertyChangeListeners = formFactory.getPropertyChangeListeners();
- for (IPropertyChangeListener iPropertyChangeListener : propertyChangeListeners) {
- iPropertyChangeListener.propertyChange(new CdmPropertyChangeEvent(OriginalLabelDataField.this, e));
- }
- }
- }
- });
- originalLabelInfoText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
- if (derivedUnit != null) {
- m_bindingContext = initDataBindings();
- }
- }
-
- @Override
- protected void checkSubclass() {
- // Disable the check that prevents subclassing of SWT components
- }
-
- private DataBindingContext initDataBindings() {
- IObservableValue originalLabelInfoObserveWidget = SWTObservables.observeText(originalLabelInfoText, SWT.Modify);
- IObservableValue originalLabelInfoObserveValue = BeansObservables
- .observeValue(derivedUnit, "originalLabelInfo");
- //
- DataBindingContext bindingContext = new DataBindingContext();
- //
- bindingContext.bindValue(originalLabelInfoObserveWidget, originalLabelInfoObserveValue, null, null);
- //
- return bindingContext;
- }
-
- public DerivedUnit getDerivedUnit() {
- return derivedUnit;
- }
-
- public void setDerivedUnit(DerivedUnit newDerivedUnit) {
- setDerivedUnit(newDerivedUnit, true);
- }
-
- public void setDerivedUnit(DerivedUnit newDerivedUnit, boolean update) {
- derivedUnit = newDerivedUnit;
- if (update) {
- if (m_bindingContext != null) {
- m_bindingContext.dispose();
- m_bindingContext = null;
- }
- if (derivedUnit != null) {
- m_bindingContext = initDataBindings();
- }
- }
- }
-
-}
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.swt.widgets.Display;
import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.core.AuthenticationException;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
return true;
}catch(AccessDeniedException e){
MessagingUtils.warningDialog("Could not change password", this, "The old password is not correct.");
-
+ return false;
+ }catch (AuthenticationException e){
+ MessagingUtils.warningDialog("Could not change password", this, "The old password is not correct.");
+
return false;
}catch(Exception e){
MessagingUtils.warningDialog("Problem with changing password", this, "The password could not be changed. " + e.getMessage());
/**
* Call this method after dynamically changing the client area.
- * If the options changed is set to true, will also fire a state changed
+ * If the options changed is set to <code>true</code>, will also fire a state changed
* event to inform the user of unsaved changes.
*
* @param changed a boolean.
*/
protected void internalUpdateSection(boolean changed){
+ setSectionTitle();
destroyDynamicContent();
if(isExpanded() || expandSectionWhenContentAvailable()) {
renderContent(isExpanded());
protected Control createToolbar() {
ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
- final String label;
- if(element_media.isAdvancedMediaView()){
- label = "Use simple media view";
- }
- else{
- label = "Use advanced media view";
- }
-
- Action addAction = new Action("Use advanced media view", IAction.AS_PUSH_BUTTON) {
+ //FIXME: duplicate code (see #4598)
+ final String label = "Change View Type";
+
+ Action addAction = new Action(label, IAction.AS_PUSH_BUTTON) {
/* (non-Javadoc)
* @see org.eclipse.jface.action.Action#run()
*/
package eu.etaxonomy.taxeditor.ui.section.description.detail;
import eu.etaxonomy.cdm.model.description.Distribution;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
AbstractDetailedDescriptionDetailElement<Distribution> {
private EntitySelectionElement<NamedArea> selection_namedArea;
- private TermComboElement<PresenceAbsenceTermBase> combo_presenceAbsence;
+ private TermComboElement<PresenceAbsenceTerm> combo_presenceAbsence;
/**
selection_namedArea = formFactory.createSelectionElement(NamedArea.class, getConversationHolder(),
formElement, "Area",
entity.getArea(), EntitySelectionElement.NOTHING, style);
- combo_presenceAbsence = formFactory.createTermComboElement(PresenceAbsenceTermBase.class, this, "Distribution Status", entity.getStatus(), style);
+ combo_presenceAbsence = formFactory.createTermComboElement(PresenceAbsenceTerm.class, this, "Distribution Status", entity.getStatus(), style);
}
import eu.etaxonomy.cdm.common.UriUtils;
import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
*/
private String getMapUriString(FeatureNodeContainer container){
String accessPoint = PreferencesUtil.getMapServiceAccessPoint();
- Map<PresenceAbsenceTermBase<?>, java.awt.Color> presenceAbsenceTermColors = null;
+ Map<PresenceAbsenceTerm, java.awt.Color> presenceAbsenceTermColors = null;
// FIXME due to a bug in the rest map service we have to ensure that width will always be an even number
// image.calculateWidth() % 2 == 1 ? image.calculateWidth() + 1 :
int width = image.calculateWidth();
--- /dev/null
+// $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 org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+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
+ */
+public class IdentifierDetailElement 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,
+ 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) {
+ this.entity = entity;
+ textIdentifier.setText(entity.getIdentifier());
+ 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) {
+ 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) {
+ getEntity().setIdentifier(textIdentifier.getText());
+ } else if (eventSource == comboIdentifierType) {
+ getEntity().setType(comboIdentifierType.getSelection());
+ }
+ }
+
+}
--- /dev/null
+// $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();
+ System.out.println();
+ }
+
+ /* (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";
+ }
+
+}
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.agent.AgentBase;
-import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.taxeditor.store.CdmStore;
public void createControls(ICdmFormElement element, int style) {
text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
selection_artist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), element, "Artist", null, EntitySelectionElement.ALL, style);
- text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, style);
+ text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, true, style);
mediaDetailElement = formFactory.createMediaDetailElement(element);
}
this.entity = element;
mediaDetailElement.setEntity(element);
- selection_artist.setEntity((TeamOrPersonBase<?>) HibernateProxyHelper
+ selection_artist.setEntity((AgentBase<?>) HibernateProxyHelper
.deproxy(element.getArtist()));
text_description.setLanguageString(element.getDescription(CdmStore
import org.apache.http.HttpException;
import org.eclipse.swt.events.SelectionListener;
+import eu.etaxonomy.cdm.common.UriUtils;
import eu.etaxonomy.cdm.common.media.ImageInfo;
import eu.etaxonomy.cdm.model.media.ImageFile;
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
ImageFile imageFile = (ImageFile) mediaRepresentationPart;
URI uri = imageFile.getUri();
- if(uri == null){
+ if(!UriUtils.isServiceAvailable(uri)){
return;
}
try {
getEntity().setMimeType(mimeType);
text_suffix.setText(imageInfo.getSuffix());
getEntity().setSuffix(imageInfo.getSuffix());
- } catch (IOException e) {
- MessagingUtils.error(getClass(), e);
- } catch (HttpException e) {
- MessagingUtils.error(getClass(), e);
+ }
+ //theses exceptions do not need to be logged
+ //especially because this happens with every key stroke
+ catch (IOException e) {
+// MessagingUtils.error(getClass(), e);
+ }
+ catch (HttpException e) {
+// MessagingUtils.error(getClass(), e);
}
}
}
// $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.
*/
import java.util.Arrays;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.taxeditor.model.AuthorHelper;
+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.IEnableableFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
-import eu.etaxonomy.taxeditor.ui.selection.NomenclaturalAuthorTeamSelectionElement;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
/**
* <p>
* AuthorshipDetailElement class.
* </p>
- *
+ *
* @author n.hoffmann
* @created Mar 4, 2010
* @version 1.0
*/
public class AuthorshipDetailElement extends
- AbstractIdentifiableEntityDetailElement<NonViralName> implements
- IEnableableFormElement {
-
- private NomenclaturalAuthorTeamSelectionElement selection_exBasionymAuthorTeam;
- private NomenclaturalAuthorTeamSelectionElement selection_basionymAuthorTeam;
- private NomenclaturalAuthorTeamSelectionElement selection_exCombinationAuthorTeam;
- private NomenclaturalAuthorTeamSelectionElement selection_combinationAuthorTeam;
+ AbstractIdentifiableEntityDetailElement<NonViralName> {
+ private EntitySelectionElement<TeamOrPersonBase> selectionExBasionymAuthor;
+ private EntitySelectionElement<TeamOrPersonBase> selectionBasionymAuthor;
+ private EntitySelectionElement<TeamOrPersonBase> selectionExCombinationAuthor;
+ private EntitySelectionElement<TeamOrPersonBase> selectionCombinationAuthor;
/**
* <p>
* Constructor for AuthorshipDetailElement.
* </p>
- *
+ *
* @param cdmFormFactory
* a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
* object.
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);
}
- selection_combinationAuthorTeam = formFactory.createNomenclaturalAuthorTeamSelectionElement(
+ selectionCombinationAuthor = formFactory.createSelectionElement(TeamOrPersonBase.class,
getConversationHolder(),
formElement, "Author",
- AuthorHelper.getAuthor(entity.getCombinationAuthorTeam()),
+ entity.getCombinationAuthorTeam(),
EntitySelectionElement.ALL, style);
- addElement(selection_combinationAuthorTeam);
- selection_exCombinationAuthorTeam = formFactory.createNomenclaturalAuthorTeamSelectionElement(
+ addElement(selectionCombinationAuthor);
+ selectionExCombinationAuthor = formFactory.createSelectionElement(TeamOrPersonBase.class,
getConversationHolder(),
formElement, "Ex Author",
- AuthorHelper.getAuthor(entity.getExCombinationAuthorTeam()),
+ entity.getExCombinationAuthorTeam(),
EntitySelectionElement.ALL, style);
- addElement(selection_exCombinationAuthorTeam);
- selection_basionymAuthorTeam = formFactory.createNomenclaturalAuthorTeamSelectionElement(
- getConversationHolder(),
- formElement, "Basionym Author",
- AuthorHelper.getAuthor(entity.getBasionymAuthorTeam()),
- EntitySelectionElement.ALL, style);
- addElement(selection_basionymAuthorTeam);
- selection_exBasionymAuthorTeam = formFactory.createNomenclaturalAuthorTeamSelectionElement(
- getConversationHolder(),
- formElement, "Ex Basionym Author",
- AuthorHelper.getAuthor(entity.getExBasionymAuthorTeam()),
- EntitySelectionElement.ALL, style);
- addElement(selection_exBasionymAuthorTeam);
+ addElement(selectionExCombinationAuthor);
+ selectionBasionymAuthor = formFactory.createSelectionElement(TeamOrPersonBase.class, getConversationHolder(),
+ formElement, "Basionym Author", entity.getBasionymAuthorTeam(),
+ EntitySelectionElement.ALL, style);
+ addElement(selectionBasionymAuthor);
+ selectionExBasionymAuthor = formFactory.createSelectionElement(TeamOrPersonBase.class, getConversationHolder(),
+ formElement, "Ex Basionym Author", entity.getExBasionymAuthorTeam(),
+ EntitySelectionElement.ALL, style);
+
+ addElement(selectionExBasionymAuthor);
}
/** {@inheritDoc} */
if (getEntity() == null) {
setEntity(NonViralName.NewInstance(null));
}
-
+
super.updateContent();
toggleable_cache.setEnabled(getEntity().isProtectedAuthorshipCache());
setIrrelevant(toggleable_cache.getState(),
Arrays.asList(new Object[] { toggleable_cache }));
}
- } else if (eventSource == selection_combinationAuthorTeam) {
+ } else if (eventSource == selectionExBasionymAuthor) {
+ getEntity().setCombinationAuthorTeam(
+ selectionExBasionymAuthor.getSelection());
+ } else if (eventSource == selectionCombinationAuthor) {
getEntity().setCombinationAuthorTeam(
- selection_combinationAuthorTeam.getSelection());
- } else if (eventSource == selection_exCombinationAuthorTeam) {
+ selectionCombinationAuthor.getSelection());
+ } else if (eventSource == selectionExCombinationAuthor) {
getEntity().setExCombinationAuthorTeam(
- selection_exCombinationAuthorTeam.getSelection());
- } else if (eventSource == selection_basionymAuthorTeam) {
+ selectionExCombinationAuthor.getSelection());
+ } else if (eventSource == selectionBasionymAuthor) {
getEntity().setBasionymAuthorTeam(
- selection_basionymAuthorTeam.getSelection());
- } else if (eventSource == selection_exBasionymAuthorTeam) {
+ selectionBasionymAuthor.getSelection());
+ } else if (eventSource == selectionExBasionymAuthor) {
getEntity().setExBasionymAuthorTeam(
- selection_exBasionymAuthorTeam.getSelection());
+ selectionExBasionymAuthor.getSelection());
}
// if (eventSource != toggleable_cache) {
firePropertyChangeEvent(new CdmPropertyChangeEvent(
getParentElement(), null));
}
-
+
@Override
public void updateToggleableCacheField() {
if(! getEntity().isProtectedAuthorshipCache()){
/** {@inheritDoc} */
public void setTaxonBase(TaxonBase entity) {
this.taxonBase = entity;
- NonViralName name = (NonViralName) HibernateProxyHelper.deproxy(entity.getName());
+ NonViralName name = (NonViralName) HibernateProxyHelper.deproxy(entity.getName(), NonViralName.class);
setEntity(name);
}
*/
private List<TaxonNameDescription> getTaxonNameDescriptions(TaxonNameBase<?,?> name){
List<TaxonNameDescription> result = new ArrayList<TaxonNameDescription>();
+ if (name == null){
+ return result;
+ }
if(name.getDescriptions().size() == 0){
name.addDescription(TaxonNameDescription.NewInstance(name));
}
+++ /dev/null
-// $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.occurrence;
-
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-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.ui.section.AbstractCdmDetailSection;
-
-/**
- * <p>DerivedUnitFacadeDetailElement class.</p>
- *
- * @author n.hoffmann
- * @created Jun 17, 2010
- * @version 1.0
- */
-public class DerivedUnitFacadeDetailElement extends AbstractCdmDetailElement<DerivedUnit> {
-
- private DerivedUnitFacade facade;
-
- private final DerivedUnitFacadeConfigurator configurator;
-
- private DerivedUnitGeneralDetailSection section_general;
- private GatheringEventDetailSection section_gatheringEvent;
- private DerivedUnitBaseDetailSection section_derivedUnitBase;
- private FieldUnitDetailSection section_fieldUnit;
-
- /**
- * <p>Constructor for DerivedUnitFacadeDetailElement.</p>
- *
- * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
- * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
- */
- public DerivedUnitFacadeDetailElement(CdmFormFactory formFactory,
- ICdmFormElement formElement) {
- super(formFactory, formElement);
- configurator = DerivedUnitFacadeConfigurator.NewInstance();
- configurator.setMoveDerivedUnitMediaToGallery(true);
- configurator.setMoveFieldObjectMediaToGallery(true);
- }
-
- /** {@inheritDoc} */
- @Override
- public void setEntity(DerivedUnit entity) {
- super.setEntity(entity);
- try {
- facade = DerivedUnitFacade.NewInstance(entity, configurator);
-
- section_general.setEntity(facade);
- section_derivedUnitBase.setEntity(facade);
- section_gatheringEvent.setEntity(facade);
- section_fieldUnit.setEntity(facade);
-
- } catch (DerivedUnitFacadeNotSupportedException e) {
- MessagingUtils.messageDialog("Error", this, "SpecimenFacadeNotSupportedException while inititating SpecimenFacade", e);
- }
- }
-
- /** {@inheritDoc} */
- @Override
- public void removeElements() {
- super.removeElements();
- if(section_general != null){
- removeControl(section_general);
- section_general.dispose();
- section_general = null;
- }
- if(section_derivedUnitBase != null){
- removeControl(section_derivedUnitBase);
- section_derivedUnitBase.dispose();
- section_derivedUnitBase = null;
- }
- if(section_gatheringEvent != null){
- removeControl(section_gatheringEvent);
- section_gatheringEvent.dispose();
- section_gatheringEvent = null;
- }
- if(section_fieldUnit != null){
- removeControl(section_fieldUnit);
- section_fieldUnit.dispose();
- section_fieldUnit = null;
- }
- }
-
- /** {@inheritDoc} */
- @Override
- public DerivedUnit getEntity() {
- throw new IllegalArgumentException("Should not be called");
- }
-
- /**
- * <p>Getter for the field <code>facade</code>.</p>
- *
- * @return a {@link eu.etaxonomy.cdm.api.facade.DerivedUnitFacade} object.
- */
- public DerivedUnitFacade getFacade(){
- return facade;
- }
-
- /** {@inheritDoc} */
- @Override
- protected void createControls(ICdmFormElement formElement,
- DerivedUnit entity, int style) {
-
- section_general = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
- section_general.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- addControl(section_general);
- addElement(section_general);
-
- section_gatheringEvent = formFactory.createGatheringEventDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
- section_gatheringEvent.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- addControl(section_gatheringEvent);
- addElement(section_gatheringEvent);
-
- section_fieldUnit = formFactory.createFieldUnitDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
- section_fieldUnit.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- addControl(section_fieldUnit);
- addElement(section_fieldUnit);
-
- section_derivedUnitBase = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE);
- section_derivedUnitBase.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- addControl(section_derivedUnitBase);
- addElement(section_derivedUnitBase);
- }
-
- /** {@inheritDoc} */
- @Override
- public void handleEvent(Object eventSource) {
- if(eventSource == section_derivedUnitBase || eventSource == section_gatheringEvent || eventSource == section_fieldUnit){
- if(getParentElement() instanceof AbstractCdmDetailSection) {
- ((AbstractCdmDetailSection) getParentElement()).updateTitle();
- }
- }
- }
-}
package eu.etaxonomy.taxeditor.ui.section.occurrence;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
+import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection;
+import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.PointElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
public class DerivedUnitGeneralDetailElement extends
AbstractCdmDetailElement<DerivedUnitFacade> {
+ boolean showOnlyDerivedUnitData = false;
+
private ToggleableTextElement toggleableText_titleCache;
+ private EnumComboElement<SpecimenOrObservationType> combo_specorobstype;
+ private EntitySelectionElement<NamedArea> selection_country;
+ private LanguageStringWithLabelElement languageText_locality;
+ private PointElement element_point;
+ private NumberWithLabelElement number_elevation;
+ private TimePeriodElement element_date;
+ private EntitySelectionElement<AgentBase> selection_collector;
+ private TextWithLabelElement text_collectingNumber;
private EntitySelectionElement<Collection> selection_collection;
private TextWithLabelElement text_accessionNumber;
-
+ private GatheringEventUnitElement element_elevation;
+ private CheckboxElement checkIsPublish;
/**
*/
public DerivedUnitGeneralDetailElement(CdmFormFactory formFactory,
ICdmFormElement formElement) {
- super(formFactory, formElement);
+ super(formFactory, formElement);
}
/*
toggleableText_titleCache = formFactory.createToggleableTextField(
formElement, "Title Cache", entity.getTitleCache(),
entity.isProtectedTitleCache(), style);
- toggleableText_titleCache.setEnabled(false);
+ //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
+ if(showOnlyDerivedUnitData){
+ toggleableText_titleCache.setEnabled(false);
+ }
+ else{
+ combo_specorobstype = formFactory.createEnumComboElement(SpecimenOrObservationType.class, formElement, style);
+ combo_specorobstype.setSelection(entity.getType());
+ selection_country = formFactory.createSelectionElement(NamedArea.class, getConversationHolder(),
+ formElement, "Country",
+ entity.getCountry(), EntitySelectionElement.NOTHING, style);
+ languageText_locality = formFactory
+ .createLanguageStringWithLabelElement(formElement, "Locality",
+ entity.getLocality(), style);
+ element_point = formFactory.createPointElement(formElement,
+ entity.getExactLocation(), style);
+ element_elevation = formFactory.createGatheringEventUnitElement(
+ formElement, "Elevation : ", entity, MinMaxTextSection.UnitType.ELEVATION, style);
+
+ element_date = formFactory.createTimePeriodElement(formElement, "Date",
+ entity.getGatheringPeriod(), style);
+ selection_collector = formFactory
+ .createSelectionElement(AgentBase.class,
+ getConversationHolder(), formElement, "Collector",
+ entity.getCollector(), EntitySelectionElement.ALL,
+ style);
+ text_collectingNumber = formFactory.createTextWithLabelElement(formElement,
+ "Collecting number", entity.getFieldNumber(), style);
+ }
selection_collection = formFactory
.createSelectionElement(Collection.class,
getConversationHolder(), formElement, "Collection",
text_accessionNumber = formFactory.createTextWithLabelElement(
formElement, "Accession Number", entity.getAccessionNumber(),
style);
+ checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
}
*/
@Override
public void handleEvent(Object eventSource) {
- if (eventSource == toggleableText_titleCache) {
- getEntity().setTitleCache(toggleableText_titleCache.getText(),
- toggleableText_titleCache.getState());
- }
- else if (eventSource == selection_collection) {
- getEntity().setCollection(selection_collection.getSelection());
- } else if (eventSource == text_accessionNumber) {
- getEntity().setAccessionNumber(text_accessionNumber.getText());
- }
- if (eventSource != toggleableText_titleCache) {
- toggleableText_titleCache.setText(getEntity().getTitleCache());
- }
+ if (eventSource == toggleableText_titleCache) {
+ getEntity().setTitleCache(toggleableText_titleCache.getText(),
+ toggleableText_titleCache.getState());
+ } else if (eventSource == selection_country) {
+ getEntity().setCountry(selection_country.getSelection());
+ } else if (eventSource == languageText_locality) {
+ LanguageString locality = languageText_locality.getLanguageString();
+ getEntity().setLocality(locality);
+ } else if (eventSource == element_point) {
+ getEntity().setExactLocation(element_point.getPoint());
+ } else if (eventSource == number_elevation) {
+ getEntity().setAbsoluteElevation(number_elevation.getInteger());
+ } else if (eventSource == element_date) {
+ getEntity().setGatheringPeriod(element_date.getTimePeriod());
+ } else if (eventSource == selection_collector) {
+ getEntity().setCollector(selection_collector.getSelection());
+ } else if (eventSource == text_collectingNumber) {
+ getEntity().setFieldNumber(text_collectingNumber.getText());
+ }
+ else if (eventSource == selection_collection) {
+ getEntity().setCollection(selection_collection.getSelection());
+ } else if (eventSource == text_accessionNumber) {
+ getEntity().setAccessionNumber(text_accessionNumber.getText());
+ } else if (eventSource == combo_specorobstype) {
+ getEntity().setType(combo_specorobstype.getSelection());
+ } else if (eventSource == checkIsPublish) {
+ getEntity().innerDerivedUnit().setPublish(checkIsPublish.getSelection());
+ }
+
+ if (eventSource != toggleableText_titleCache) {
+ toggleableText_titleCache.setText(getEntity().getTitleCache());
+ }
}
+ public void setShowOnlyDerivedUnitData(boolean showOnlyDerivedUnitData) {
+ this.showOnlyDerivedUnitData = showOnlyDerivedUnitData;
+ }
+
}
*/
public class DerivedUnitGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
- /**
+ //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
+ private DerivedUnitGeneralDetailElement derivedUnitGeneralDetailElement;
+
+ /**
* @param formFactory
* @param conversation
* @param parentElement
*/
@Override
protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
- return formFactory.createDerivedUnitGeneralDetailElement(parentElement);
+ derivedUnitGeneralDetailElement = formFactory.createDerivedUnitGeneralDetailElement(parentElement);
+ return derivedUnitGeneralDetailElement;
+ }
+
+ public void setShowOnlyDerivedUnitData(boolean showOnlyDerivedUnitData){
+ derivedUnitGeneralDetailElement.setShowOnlyDerivedUnitData(showOnlyDerivedUnitData);
}
}
import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
private TermComboElement<DefinedTerm> combo_determinationModifier;
private CheckboxElement checkbox_preferredFlag;
private EntitySelectionElement<TaxonBase> selection_taxonBase;
+ private EntitySelectionElement<TaxonNameBase> selectionTaxonNameBase;
// private TODO a set of references
this.entity = entity;
combo_determinationModifier.setSelection(entity.getModifier());
selection_taxonBase.setEntity(entity.getTaxon());
+ selectionTaxonNameBase.setEntity(entity.getTaxonName());
super.setEntity(entity);
}
/** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement element, int style) {
+ selectionTaxonNameBase = formFactory
+ .createSelectionElement(TaxonNameBase.class,
+ getConversationHolder(), element, "Taxon Name", null,
+ EntitySelectionElement.NOTHING, style);
selection_taxonBase = formFactory
.createSelectionElement(TaxonBase.class,
getConversationHolder(), element, "Taxon", null,
getEntity().setModifier(combo_determinationModifier.getSelection());
} else if (eventSource == checkbox_preferredFlag) {
getEntity().setPreferredFlag(checkbox_preferredFlag.getSelection());
+ } else if (eventSource == selectionTaxonNameBase) {
+ getEntity().setTaxonName(selectionTaxonNameBase.getSelection());
} else if (eventSource == selection_taxonBase) {
- getEntity().setTaxon(selection_taxonBase.getSelection());
+ TaxonBase taxon = selection_taxonBase.getSelection();
+ getEntity().setTaxon(taxon);
+ getEntity().setTaxonName(taxon.getName());
+ selectionTaxonNameBase.setEntity(taxon.getName());
}
// else if(eventSource == TODO set of references){
//
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
private EntitySelectionElement<AgentBase> selection_collector;
private TextWithLabelElement text_collectingNumber;
private GatheringEventUnitElement element_elevation;
+ private CheckboxElement checkIsPublish;
/**
* @param formFactory
"Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
text_collectingNumber = formFactory.createTextWithLabelElement(formElement, "Collecting number",
entity.getFieldNumber(), style);
+ checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
}
/*
getEntity().setFieldNumber(text_collectingNumber.getText());
} else if (eventSource == combo_specorobstype) {
getEntity().setType(combo_specorobstype.getSelection());
+ } else if (eventSource == checkIsPublish) {
+ getEntity().innerFieldUnit().setPublish(checkIsPublish.getSelection());
}
if (eventSource != toggleableText_titleCache) {
--- /dev/null
+// $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.occurrence;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.UUID;
+
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Tree;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+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.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateContentProvider;
+import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 16, 2010
+ * @version 1.0
+ */
+public class SpecimenHierarchyDetailElement extends AbstractCdmDetailElement<SpecimenOrObservationBase<?>> {
+
+ /**
+ * @param formFactory
+ * @param formElement
+ */
+ public SpecimenHierarchyDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+ super(formFactory, formElement);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
+ * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
+ */
+ @Override
+ protected void createControls(ICdmFormElement formElement, SpecimenOrObservationBase<?> entity, int style) {
+ TreeViewer viewer = new TreeViewer(getLayoutComposite());
+ DerivateLabelProvider labelProvider = new DerivateLabelProvider();
+ Tree tree = viewer.getTree();
+
+ labelProvider.setConversation(getConversationHolder());
+ tree.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
+ viewer.setContentProvider(new DerivateContentProvider());
+ viewer.setLabelProvider(labelProvider);
+ //get root (field unit)
+ Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(entity.getUuid());
+ Collection<UUID> fieldUnitUuids = new HashSet<UUID>();
+ for (FieldUnit fieldUnit : fieldUnits) {
+ fieldUnitUuids.add(fieldUnit.getUuid());
+ }
+ viewer.setInput(Collections.singleton(fieldUnitUuids));
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
+ * .lang.Object)
+ */
+ @Override
+ public void handleEvent(Object eventSource) {
+ }
+
+}
import org.eclipse.jface.viewers.ISelectionProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
/**
- * <p>DerivedUnitFacadeDetailSection class.</p>
- *
* @author n.hoffmann
- * @created Jun 17, 2010
+ * @created Dec 16, 2010
* @version 1.0
*/
-public class DerivedUnitFacadeDetailSection extends AbstractCdmDetailSection<DerivedUnit> {
-
- /**
- * <p>Constructor for DerivedUnitFacadeDetailSection.</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 selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
- * @param style a int.
+public class SpecimenHierarchyDetailSection extends AbstractCdmDetailSection<SpecimenOrObservationBase<?>> {
+
+ private SpecimenHierarchyDetailElement specimenHierarchyDetailElement;
+
+ /**
+ * @param formFactory
+ * @param conversation
+ * @param parentElement
+ * @param selectionProvider
+ * @param style
*/
- public DerivedUnitFacadeDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
- ICdmFormElement parentElement,
+ public SpecimenHierarchyDetailSection(CdmFormFactory formFactory,
+ ConversationHolder conversation, ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
super(formFactory, conversation, parentElement, selectionProvider, style);
}
- /** {@inheritDoc} */
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
+ */
@Override
public String getHeading() {
- return "Unit";
+ return "Specimen Hierarchy";
}
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
*/
@Override
- protected AbstractCdmDetailElement<DerivedUnit> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnit> parentElement, int style) {
- return formFactory.createDerivedUnitFacadeDetailElement(parentElement);
+ protected AbstractCdmDetailElement<SpecimenOrObservationBase<?>> createCdmDetailElement(AbstractCdmDetailSection<SpecimenOrObservationBase<?>> parentElement, int style) {
+ specimenHierarchyDetailElement = formFactory.createSpecimenHierarchyDetailElement(parentElement);
+ return specimenHierarchyDetailElement;
}
+
}
--- /dev/null
+// $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.ui.section.occurrence.association;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+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.TableViewer;
+import org.eclipse.swt.SWT;
+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 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.description.IndividualsAssociation;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+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.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @date Dec 1, 2014
+ *
+ */
+public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> implements IDoubleClickListener{
+
+
+ private TableViewer associationsViewer;
+ private TableViewer typeDesignationViewer;
+
+ public TaxonAssociationDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+ super(formFactory, formElement);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+
+ //TODO add context menu for deleting associations
+
+ Label associationsLabel = formFactory.createLabel(getLayoutComposite(), "Individuals Associations");
+ associationsLabel.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+
+ associationsViewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
+ associationsViewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ associationsViewer.setContentProvider(new ArrayContentProvider());
+ Collection<IndividualsAssociation> individualsAssociations = CdmStore.getService(IOccurrenceService.class).listIndividualsAssociations(entity.innerDerivedUnit(), null, null, null, null);
+ //TODO implement service method for this which is just used in the label provider
+ Collection<TaxonBase<?>> associatedTaxa = new HashSet<TaxonBase<?>>();
+ for (IndividualsAssociation individualsAssociation : individualsAssociations) {
+ if(individualsAssociation.getInDescription().isInstanceOf(TaxonDescription.class)){
+ TaxonDescription taxonDescription = HibernateProxyHelper.deproxy(individualsAssociation.getInDescription(), TaxonDescription.class);
+ associatedTaxa.add(taxonDescription.getTaxon());
+ }
+ }
+ associationsViewer.setInput(associatedTaxa);
+ associationsViewer.addDoubleClickListener(this);
+
+ Label typeLabel = formFactory.createLabel(getLayoutComposite(), "Type Designations");
+ typeLabel.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+
+ typeDesignationViewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
+ typeDesignationViewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ typeDesignationViewer.setContentProvider(new ArrayContentProvider());
+ Collection<SpecimenTypeDesignation> typeDesignations = CdmStore.getService(IOccurrenceService.class).listTypeDesignations(entity.innerDerivedUnit(), null, null, null, null);
+ //TODO implement service method for this which is just used in the label provider
+ Collection<TaxonBase<?>> typedTaxa = new HashSet<TaxonBase<?>>();
+ for (SpecimenTypeDesignation specimenTypeDesignation : typeDesignations) {
+ for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) {
+ Set taxa = taxonNameBase.getTaxa();
+ for (Object taxon : taxa) {
+ if(taxon instanceof CdmBase && ((CdmBase)taxon).isInstanceOf(TaxonBase.class)){
+ typedTaxa.add(HibernateProxyHelper.deproxy(taxon, TaxonBase.class));
+ }
+ }
+ }
+ }
+ typeDesignationViewer.setInput(typedTaxa);
+ typeDesignationViewer.addDoubleClickListener(this);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void handleEvent(Object eventSource) {
+ //empty
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
+ */
+ @Override
+ public void doubleClick(DoubleClickEvent event) {
+ if(event.getSelection() instanceof IStructuredSelection){
+ Object firstElement = ((IStructuredSelection) event.getSelection()).getFirstElement();
+ if(firstElement instanceof TaxonBase<?>){
+ TaxonBase<?> taxonBase = (TaxonBase<?>)firstElement;
+ 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, (taxonBase).getUuid().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);
+ }
+ }
+ }
+ }
+
+}
--- /dev/null
+// $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.occurrence.association;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+
+/**
+ *
+ * @author pplitzner
+ * @date Dec 1, 2014
+ *
+ */
+public class TaxonAssociationDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+
+ public TaxonAssociationDetailSection(CdmFormFactory formFactory,
+ ConversationHolder conversation, ICdmFormElement parentElement,
+ ISelectionProvider selectionProvider, int style) {
+ super(formFactory, conversation, parentElement, selectionProvider, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
+ */
+ /** {@inheritDoc} */
+ @Override
+ public String getHeading() {
+ return "Taxon Associations";
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
+ */
+ @Override
+ protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+ return formFactory.createTaxonAssociationDetailElement(parentElement);
+ }
+}
/** {@inheritDoc} */
@Override
public Identifier createNewElement() {
- Identifier identifier = getEntity().addIdentifier(null, DerivateLabelProvider.getSampleDesignationTerm());
- return identifier;
+ return Identifier.NewInstance(getEntity(), null, DerivateLabelProvider.getSampleDesignationTerm());
}
/* (non-Javadoc)
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
import eu.etaxonomy.cdm.model.molecular.Cloning;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
* @date 15.01.2014
*
*/
-public class AmplificationCloningDetailElement extends AbstractCdmDetailElement<Amplification> {
+public class AmplificationCloningDetailElement extends AbstractCdmDetailElement<AmplificationResult> {
private TextWithLabelElement textCloningStrain;
private TimePeriodElement date;
private EntitySelectionElement<AgentBase> selectionCloningStaff;
* (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
*/
@Override
- protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
+ protected void createControls(ICdmFormElement formElement, AmplificationResult entity, int style) {
Cloning cloning = entity.getCloning();
textCloningStrain = formFactory.createTextWithLabelElement(formElement, "Cloning Strain", cloning==null?"":cloning.getStrain(), style);
date = formFactory.createTimePeriodElement(formElement, "Cloning Date", cloning==null?null:cloning.getTimeperiod(), style);
import org.eclipse.jface.viewers.ISelectionProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
* @date 15.01.2014
*
*/
-public class AmplificationCloningDetailSection extends AbstractCdmDetailSection<Amplification> {
+public class AmplificationCloningDetailSection extends AbstractCdmDetailSection<AmplificationResult> {
/**
* @param formFactory
* @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
*/
@Override
- protected AbstractCdmDetailElement<Amplification> createCdmDetailElement(AbstractCdmDetailSection<Amplification> parentElement, int style) {
+ protected AbstractCdmDetailElement<AmplificationResult> createCdmDetailElement(AbstractCdmDetailSection<AmplificationResult> parentElement, int style) {
return formFactory.createAmplificationCloningDetailElement(parentElement);
}
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
* @date 26.02.2014
*
*/
-public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntityCollectionSection<Amplification, Media> {
+public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntityCollectionSection<AmplificationResult, Media> {
/**
* @param formFactory
* @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
*/
@Override
- public Collection<Media> getCollection(Amplification entity) {
+ public Collection<Media> getCollection(AmplificationResult entity) {
if(entity.getGelPhoto()!=null){
return Collections.singleton(entity.getGelPhoto());
}
*/
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
* @date 15.01.2014
*
*/
-public class AmplificationGelPhotoDetailElement extends AbstractCdmDetailElement<Amplification> {
+public class AmplificationGelPhotoDetailElement extends AbstractCdmDetailElement<AmplificationResult> {
private AmplificationGelPhotoCollectionDetailSection sectionGelPhoto;
/**
* (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
*/
@Override
- protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
+ protected void createControls(ICdmFormElement formElement, AmplificationResult entity, int style) {
sectionGelPhoto = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), formElement, style);
sectionGelPhoto.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
sectionGelPhoto.setEntity(entity);
import eu.etaxonomy.cdm.model.agent.Institution;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.common.TimePeriod;
import eu.etaxonomy.cdm.model.molecular.Amplification;
import eu.etaxonomy.cdm.model.molecular.Primer;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
*/
@Override
protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
- textDesignation = formFactory.createTextWithLabelElement(formElement, "Designation", entity.getDescription(), style);
+ textDesignation = formFactory.createTextWithLabelElement(formElement, "Designation", entity.getLabelCache(), style);
textDesignation.setEnabled(false);
- //TODO institution
-// selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", entity.getInstitution(), EntitySelectionElement.ALL, style);
+ textDesignation.setBackground(getPersistentBackground());
+ selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", entity.getInstitution(), EntitySelectionElement.ALL, style);
selectionAmplificationStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Amplification staff", entity.getActor(), EntitySelectionElement.ALL, style);
dateAmplification = formFactory.createTimePeriodElement(formElement, "Date", entity.getTimeperiod(), style);
comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), formElement, style);
annotationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
annotationSection.setEntity(entity);
-
- updateDesignationText();
- }
-
- private void updateDesignationText(){
- String institutionName = "";
- String staffName = "";
- String dnaMarkerString = "";
- String dateString = "";
-
- //retrieve data
- //TODO institution
-// Institution selection = selectionInstitution.getSelection();
-// if(selection!=null){
-// institutionName = selection.getName();
-// }
- AgentBase staff = selectionAmplificationStaff.getSelection();
- if(staff!=null){
- staffName = staff.getTitleCache();
- }
- DefinedTerm dnaMarker = comboMarker.getSelection();
- if(dnaMarker!=null){
- dnaMarkerString = dnaMarker.generateTitle();
- }
- TimePeriod timePeriod = dateAmplification.getTimePeriod();
- if(timePeriod!=null){
- dateString = timePeriod.toString()!=null?timePeriod.toString():"";
- }
-
- //assemble string
- String designation = "";
- if(!institutionName.equals("")){
- designation += institutionName;
- }
- if(!staffName.equals("")){
- if(!designation.equals("")){
- designation += "_";
- }
- designation += staffName;
- }
- if(!dnaMarkerString.equals("")){
- if(!designation.equals("")){
- designation += "_";
- }
- designation += dnaMarkerString;
- }
- if(!dateString.equals("")){
- if(!designation.equals("")){
- designation += "_";
- }
- designation += dateString;
- }
- textDesignation.setText(designation);
- getEntity().setDescription(designation);
}
/*
}
else if(eventSource==dateAmplification){
getEntity().setTimeperiod(dateAmplification.getTimePeriod());
- updateDesignationText();
}
else if(eventSource==selectionAmplificationStaff){
getEntity().setActor(selectionAmplificationStaff.getEntity());
- updateDesignationText();
}
else if(eventSource==selectionInstitution){
- //TODO institution
-// getEntity().setInstitution(selectionInstitution.getSelection());
- updateDesignationText();
+ getEntity().setInstitution(selectionInstitution.getSelection());
}
else if(eventSource==selectionPrimerFW){
getEntity().setForwardPrimer(selectionPrimerFW.getSelection());
else if(eventSource==selectionPrimerRW){
getEntity().setReversePrimer(selectionPrimerRW.getSelection());
}
+ getEntity().updateCache();
+ textDesignation.setText(getEntity().getLabelCache());
}
}
\ No newline at end of file
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
private EntitySelectionElement<Institution> selectionInstitution;
private EntitySelectionElement<AgentBase> selectionStaff;
- private TimePeriodElement datePreservationDate;
+ private TimePeriodElement datePreparationDate;
private NumberWithLabelElement numberPreservationTemperature;
private TermComboElement<DefinedTerm> comboMaterialOrMethods;
private TextWithLabelElement textBarcode;
+ private CheckboxElement checkIsPublish;
/**
* @param formFactory
AgentBase<?> staff = null;
TimePeriod preparationDate = null;
if(entity.getDerivedFrom()!=null){
-// institution = entity.getDerivedFrom().getInstitution();
+ institution = entity.getDerivedFrom().getInstitution();
staff = entity.getDerivedFrom().getActor();
preparationDate = entity.getDerivedFrom().getTimeperiod();
}
temperature = entity.getPreservation().getTemperature();
definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
}
- //TODO institution
-// selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", staff, EntitySelectionElement.ALL, style);
+ selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", institution, EntitySelectionElement.ALL, style);
selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL, style);
- datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
+ datePreparationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
+ checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
}
*/
@Override
public void handleEvent(Object eventSource) {
- if(eventSource==datePreservationDate){
- addPreservationMethod().setTimeperiod(datePreservationDate.getTimePeriod());
+ if(eventSource==datePreparationDate){
+ if(getEntity().getDerivedFrom()!=null){
+ getEntity().getDerivedFrom().setTimeperiod(datePreparationDate.getTimePeriod());
+ }
+ }
+ else if(eventSource==selectionInstitution){
+ if(getEntity().getDerivedFrom()!=null){
+ getEntity().getDerivedFrom().setInstitution(selectionInstitution.getSelection());
+ }
}
else if(eventSource==selectionStaff){
- addPreservationMethod().setActor(selectionStaff.getSelection());
+ if(getEntity().getDerivedFrom()!=null){
+ getEntity().getDerivedFrom().setActor(selectionStaff.getSelection());
+ }
}
else if(eventSource==numberPreservationTemperature){
addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
else if(eventSource==textBarcode){
getEntity().setBarcode(textBarcode.getText());
}
+ else if(eventSource==checkIsPublish){
+ getEntity().setPublish(checkIsPublish.getSelection());
+ }
}
private PreservationMethod addPreservationMethod(){
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.molecular.Primer;
import eu.etaxonomy.cdm.model.molecular.SequenceString;
import eu.etaxonomy.cdm.model.reference.Reference;
@Override
protected void createControls(ICdmFormElement formElement, Primer entity, int style) {
textPrimerName = formFactory.createTextWithLabelElement(formElement, "Primer Name", entity.getLabel(), style);
- String sequenceString = "";
+ String sequenceString = null;
if(entity.getSequence()!=null){
sequenceString = entity.getSequence().getString();
}
textPrimerSequence = formFactory.createTextWithLabelElement(formElement, "Primer seq. 5'->3'", sequenceString, style);
- //TODO dnaMarker
-// comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
+ comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
selectionReference = formFactory
.createSelectionElement(Reference.class,
getEntity().setLabel(textPrimerName.getText());
}
else if(eventSource==comboMarker){
- //TODO dnaMarker
-// getEntity().setDnaMarker(comboMarker.getSelection());
+ getEntity().setDnaMarker(comboMarker.getSelection());
}
else if(eventSource==textPrimerSequence){
SequenceString sequenceString = getEntity().getSequence();
@Override
public void handleEvent(Object eventSource) {
if(eventSource==text_description){
- this.entity.setIdentifier(text_description.getText());
+ String identifier = null;
+ if(!text_description.getText().isEmpty()){
+ identifier = text_description.getText();
+ }
+ this.entity.setIdentifier(identifier);
}
}
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
private TermComboElement<DefinedTerm> comboMarker;
private TextWithLabelElement textConsensusSequence;
- private NumberWithLabelElement textConsensusSequenceLength;
private TextWithLabelElement textGeneticAccessNo;
private UriWithLabelElement textNCBIUri;
private UriWithLabelElement textENAUri;
}
consensusSequence.setString(textConsensusSequence.getText());
getEntity().setConsensusSequence(consensusSequence);
- textConsensusSequenceLength.setNumber(consensusSequence.getLength());
}
else if(eventSource==textGeneticAccessNo){
textGeneticAccessNo.setBackground(getPersistentBackground());
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
import eu.etaxonomy.cdm.model.molecular.Primer;
import eu.etaxonomy.cdm.model.molecular.SingleRead;
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.ui.section.supplemental.AnnotationSection;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
/**
@Override
protected void createControls(ICdmFormElement formElement, SingleRead entity, int style) {
selectionPrimer = formFactory.createSelectionElement(Primer.class, getConversationHolder(), formElement, "Primer", entity.getPrimer(), EntitySelectionElement.ALL, style);
- selectionAmplification = formFactory.createSelectionElement(Amplification.class, getConversationHolder(), formElement, "Amplification", entity.getAmplification(), EntitySelectionElement.ALL, style);
+ AmplificationResult amplificationResult = entity.getAmplificationResult();
+ if(amplificationResult==null){
+ amplificationResult = AmplificationResult.NewInstance();
+ amplificationResult.addSingleRead(entity);
+ }
+ selectionAmplification = formFactory.createSelectionElement(Amplification.class, getConversationHolder(), formElement, "Amplification", amplificationResult.getAmplification(), EntitySelectionElement.ALL, style);
+
+ AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), formElement, style);
+ annotationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ annotationSection.setEntity(entity);
+
+ AmplificationCloningDetailSection cloningSection = formFactory.createAmplificationCloningDetailSection(getConversationHolder(), formElement, formFactory.getSelectionProvider(), style);
+ cloningSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ cloningSection.setEntity(amplificationResult);
+
+ AmplificationGelPhotoCollectionDetailSection gelPhotoSection = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), formElement, style);
+ gelPhotoSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ gelPhotoSection.setEntity(amplificationResult);
}
/*
if(eventSource==selectionPrimer){
getEntity().setPrimer(selectionPrimer.getSelection());
}
- else if(eventSource==selectionAmplification){
- selectionAmplification.getSelection().addSingleRead(getEntity());
+ else {
+ if(eventSource==selectionAmplification){
+ AmplificationResult amplificationResult = getEntity().getAmplificationResult();
+ if(amplificationResult==null){
+ amplificationResult = AmplificationResult.NewInstance();
+ }
+ amplificationResult.setAmplification(selectionAmplification.getSelection());
+ amplificationResult.addSingleRead(getEntity());
+ }
}
}
}
import org.apache.log4j.Logger;
import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Institution;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.common.TimePeriod;
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
private TermComboElement<DefinedTerm> comboKindOfTissue;
- private EntitySelectionElement<AgentBase> selectionInstitution;
+ private EntitySelectionElement<Institution> selectionInstitution;
private EntitySelectionElement<AgentBase> selectionStaff;
private TimePeriodElement datePreparation;
private TermComboElement<DefinedTerm> comboPreservationMedium;
private EntitySelectionElement<Collection> selectionCollection;
private TextWithLabelElement textAccessionNumber;
private TextWithLabelElement textBarcode;
+ private CheckboxElement checkIsPublish;
/**
*/
@Override
protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
- //TODO handle all parameters here and in handleEvent()
comboKindOfTissue = formFactory.createDefinedTermComboElement(TermType.KindOfUnit, formElement, "Kind Of Tissue", entity.getKindOfUnit(), style);
- //TODO: institute
TimePeriod preparationDate = null;
DefinedTerm preservationMedium = null;
AgentBase<?> staff = null;
+ Institution institution = null;
if(entity.getDerivedFrom()!=null){
staff = entity.getDerivedFrom().getActor();
preparationDate = entity.getDerivedFrom().getTimeperiod();
+ institution = entity.getDerivedFrom().getInstitution();
}
if(entity.getPreservation()!=null){
preservationMedium = entity.getPreservation().getMedium();
}
+ selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", institution, EntitySelectionElement.ALL, style);
selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL,style);
datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
selectionCollection = formFactory.createSelectionElement(Collection.class, getConversationHolder(), formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
+ checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
}
*/
@Override
public void handleEvent(Object eventSource) {
- //TODO: institute
if(eventSource==comboKindOfTissue) {
getEntity().setKindOfUnit(comboKindOfTissue.getSelection());
}
getEntity().getDerivedFrom().setTimeperiod(datePreparation.getTimePeriod());
}
}
+ else if(eventSource==selectionInstitution){
+ if(getEntity().getDerivedFrom()!=null){
+ getEntity().getDerivedFrom().setInstitution(selectionInstitution.getSelection());
+ }
+ }
else if(eventSource==selectionStaff){
if(getEntity().getDerivedFrom()!=null){
getEntity().getDerivedFrom().setActor(selectionStaff.getSelection());
}
}
+ else if(eventSource==checkIsPublish){
+ getEntity().setPublish(checkIsPublish.getSelection());
+ }
}
private PreservationMethod addPreservationMethod(){
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
private EntitySelectionElement<Collection> selection_collection;
private TextWithLabelElement text_accessionNumber;
private EntitySelectionElement<Reference> selection_publishedIn;
+ private CheckboxElement checkIsPublish;
private MediaDetailElement mediaDetailElement;
/**
}
}
selection_publishedIn = formFactory.createSelectionElement(Reference.class, getConversationHolder(), formElement, "Published in", publishedIn, EntitySelectionElement.ALL, style);
+ checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
mediaDetailElement = formFactory.createMediaDetailElement(formElement);
mediaDetailElement.setEntity(media);
primaryMediaSource.setCitation(selection_publishedIn.getSelection());
}
}
+ else if(eventSource==checkIsPublish){
+ getEntity().setPublish(checkIsPublish.getSelection());
+ }
}
public void toogleAdvancedMediaView() {
- mediaDetailElement.toggleAdvancedMediaView();
+ if(mediaDetailElement!=null){
+ mediaDetailElement.toggleAdvancedMediaView();
+ }
}
public boolean isAdvancedMediaView() {
+ if(mediaDetailElement==null){
+ return false;
+ }
return mediaDetailElement.isAdvancedMediaView();
}
protected Control createToolbar() {
ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
- final String label;
-
- if(mediaSpecimenGeneralDetailElement.isAdvancedMediaView()){
- label = "Use simple media view";
- }
- else{
- label = "Use advanced media view";
- }
- Action addAction = new Action("Use advanced media view", IAction.AS_PUSH_BUTTON) {
+ String actionLabel = "Change View Type";
+ Action addAction = new Action(actionLabel, IAction.AS_PUSH_BUTTON) {
/* (non-Javadoc)
* @see org.eclipse.jface.action.Action#run()
*/
mediaSpecimenGeneralDetailElement.toogleAdvancedMediaView();
}
};
- addAction.setToolTipText(label);
+ addAction.setToolTipText(actionLabel);
toolBarManager.add(addAction);
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.model.TextHelper;
-import eu.etaxonomy.taxeditor.newWizard.AmplificationCloningWizardPage;
-import eu.etaxonomy.taxeditor.newWizard.AmplificationGelPhotoWizardPage;
import eu.etaxonomy.taxeditor.newWizard.AmplificationGeneralWizardPage;
import eu.etaxonomy.taxeditor.newWizard.PrimerWizardPage;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
addPage(new AmplificationGeneralWizardPage(formFactory,
selectionElement.getConversationHolder(),
(Amplification) entity));
- addPage(new AmplificationCloningWizardPage(formFactory,
- selectionElement.getConversationHolder(),
- (Amplification) entity));
- addPage(new AmplificationGelPhotoWizardPage(formFactory,
- selectionElement.getConversationHolder(),
- (Amplification) entity));
} else {
MessagingUtils.warningDialog("Missing interface", this,
"No detail element for current selection");
} else if (entity instanceof Primer){
return ((Primer) entity).getLabel();
} else if (entity instanceof Amplification){
- return ((Amplification) entity).getDescription();
+ return ((Amplification) entity).getLabelCache();
}
}
}
}
else{
- try {
- //clone original
- clonedEntity = (T) ((CdmBase) originalEntity).clone();
- } catch (CloneNotSupportedException e1) {
- MessagingUtils.warningDialog(TRANSIENT_EDITING_WARNING_TITLE, this, TRANSIENT_EDITING_WARNING_TEXT);
- }
+ //FIXME temporarily disabled cloning re-opening bug #2645 (EditFromSelectionWizard persists data even when canceled)
+// try {
+// //clone original
+// clonedEntity = (T) ((CdmBase) originalEntity).clone();
+// } catch (CloneNotSupportedException e1) {
+// MessagingUtils.warningDialog(TRANSIENT_EDITING_WARNING_TITLE, this, TRANSIENT_EDITING_WARNING_TEXT);
+// }
}
}
LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(multilanguageText, getLanguages());
- text_source = formFactory.createLanguageStringWithLabelElement(element, null, preferredLanguageString, TEXT_HEIGHT, SWT.NULL);
+ text_source = formFactory.createLanguageStringWithLabelElement(element, null, preferredLanguageString, TEXT_HEIGHT, false, SWT.NULL);
// text_source.setEnabled(false);
}
});
- text_target = formFactory.createLanguageStringWithLabelElement(element, null, null, TEXT_HEIGHT, SWT.NULL);
+ text_target = formFactory.createLanguageStringWithLabelElement(element, null, null, TEXT_HEIGHT, false, SWT.NULL);
//
// The automated translation did rely on the Google Translate API. Unfortunately this service is not free anymore.
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2015 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.view;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.PopupDialog;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+
+/**
+ * This class provides the possibility to choose from a list of possible viewers
+ * which can be opened for a given input in a popup dialog.
+ *
+ * @author pplitzner
+ * @date Feb 23, 2015
+ *
+ */
+public class CdmViewerChooser extends PopupDialog implements ISelectionChangedListener, ILabelProvider{
+
+ private Object input;
+ private Map<Entry<Class<?>, String>, ICdmViewer> nameViewerMap;
+
+ public CdmViewerChooser(Shell parentShell) {
+ this(parentShell, SWT.RESIZE | SWT.ON_TOP, true, false, false, false, false, "Open in ...",
+ "Clicking will open the selected viewer");
+ }
+
+ public CdmViewerChooser(Shell parent, int shellStyle, boolean takeFocusOnOpen, boolean persistSize,
+ boolean persistLocation, boolean showDialogMenu, boolean showPersistActions, String titleText,
+ String infoText) {
+ super(parent, shellStyle, takeFocusOnOpen, persistSize, persistLocation, showDialogMenu, showPersistActions,
+ titleText, infoText);
+ }
+
+ /**
+ * Opens a popup dialog with all possible viewers for the given input.
+ * @param input the input for which the viewers are listed
+ */
+ public void chooseViewer(Object input){
+ this.input = input;
+ this.nameViewerMap = new HashMap<Entry<Class<?>, String>, ICdmViewer>();
+
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] extensions = reg
+ .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer");
+ for (IConfigurationElement configElement : extensions) {
+ try {
+ Object object = configElement.createExecutableExtension("class");
+ if(object instanceof ICdmViewer){
+ ICdmViewer cdmViewer = (ICdmViewer)object;
+ Map<Class<?>, String> viewerClasses = cdmViewer.getViewerClasses(input);
+ for (Entry<Class<?>, String> entry : viewerClasses.entrySet()) {
+ nameViewerMap.put(entry, cdmViewer);
+ }
+ }
+ else{
+ MessagingUtils.error(CdmViewerChooser.class, new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Could not load cdmViewer extension"));
+ }
+ } catch (CoreException e) {
+ MessagingUtils.error(CdmViewerChooser.class, "Could not load cdmViewer extension", e);
+ }
+ }
+ //if only one editor is available then open it
+ if(nameViewerMap.size()==1){
+ Entry<Class<?>, String> next = nameViewerMap.keySet().iterator().next();
+ ICdmViewer cdmViewer = nameViewerMap.get(next);
+ cdmViewer.show(input, next.getKey());
+ }
+ else{
+ if(nameViewerMap.isEmpty()){
+ this.setInfoText("No viewers registered for this input");
+ }
+ this.open();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ TableViewer viewer = new TableViewer(new Table(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION));
+ viewer.setContentProvider(new ArrayContentProvider());
+ viewer.setLabelProvider(this);
+ viewer.addSelectionChangedListener(this);
+ viewer.setInput(nameViewerMap.keySet());
+ return parent;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
+ */
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ ISelection selection = event.getSelection();
+ if(selection instanceof IStructuredSelection){
+ Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+ if(nameViewerMap.containsKey(firstElement)){
+ Entry<Class<?>, String> entry = (Entry<Class<?>, String>)firstElement;
+ ICdmViewer cdmViewer = nameViewerMap.get(entry);
+ cdmViewer.show(input, entry.getKey());
+ this.close();
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
+ */
+ @Override
+ public String getText(Object element) {
+ String text = null;
+ if(nameViewerMap.containsKey(element)){
+ Entry<Class<?>, String> entry = (Entry<Class<?>, String>) element;
+ text = entry.getValue();
+ }
+ return text;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+ */
+ @Override
+ public void addListener(ILabelProviderListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+ */
+ @Override
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
+ */
+ @Override
+ public boolean isLabelProperty(Object element, String property) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+ */
+ @Override
+ public void removeListener(ILabelProviderListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
+ */
+ @Override
+ public Image getImage(Object element) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 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.view;
+
+import java.util.Map;
+
+
+/**
+ * Implementors of this interface provide a mapping of input elements to views
+ * or editors which can display information or provide editing functionality for
+ * the input elements.
+ *
+ * @author pplitzner
+ * @date Feb 23, 2015
+ *
+ */
+public interface ICdmViewer {
+
+ /**
+ * For the given input a map specifying the available viewers classes as
+ * keys and their string representation as values is returned
+ *
+ * @param input
+ * the input for which the viewer classes should be returned
+ * @return a map holding the viewer classes as keys and their string
+ * representations as values
+ */
+ public Map<Class<?>, String> getViewerClasses(Object input);
+
+ /**
+ * Opens the viewer defined by the given viewerClass for the given input.
+ * @param input the input for which a viewer should be opened
+ * @param viewerClass the qualified class name of the viewer
+ */
+ public void show(Object input, Class<?> viewerClass);
+
+}
}
});
status = Status.OK_STATUS;
+ }else{
+ throw new RuntimeException("An error occurred during the update.");
}
}catch(Exception e){
status = new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, e.getMessage(), e);
- MessagingUtils.messageDialog("Could not run updater", getClass(), status.getMessage());
+ MessagingUtils.errorDialog("Could not complete updater", updater, status.getMessage(), status.getPlugin(), e, true);
}
}
-package eu.etaxonomy.taxeditor.editor.view.derivate;
+package eu.etaxonomy.taxeditor.view.derivateSearch;
import java.util.ArrayList;
import java.util.LinkedHashSet;
@Override
public Object[] getElements(Object inputElement) {
List<TreeNode> rootElements = new ArrayList<TreeNode>();
- if(inputElement instanceof DerivateViewEditorInput){
- Set<UUID> rootUUIDs = ((DerivateViewEditorInput) inputElement).getRootUUIDs();
- for (UUID uuid : rootUUIDs) {
- SpecimenOrObservationBase<?> rootElement = CdmStore.getService(IOccurrenceService.class).load(uuid);
- if(rootElement!=null){
- rootElements.add(new TreeNode(rootElement));
- }
+ if(inputElement instanceof Set){
+ for (Object o: (Set)inputElement) {
+ if(o instanceof UUID){
+ UUID uuid = (UUID)o;
+ SpecimenOrObservationBase<?> rootElement = CdmStore.getService(IOccurrenceService.class).load(uuid);
+ if(rootElement!=null){
+ rootElements.add(new TreeNode(rootElement));
+ }
+ }
}
}
return rootElements.toArray();
label += collection.getCode()!=null?"("+collection.getCode()+")"+separator:emptyString;
}
label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+separator:emptyString;
+ label += mediaSpecimen.getBarcode()!=null?mediaSpecimen.getBarcode()+separator:emptyString;
}
//TissueSample + DnaSample
else if(derivate instanceof DnaSample){
}
}
else if(((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.TissueSample){
- label += dnaSample.getKindOfUnit()+separator;
+ if(dnaSample.getKindOfUnit()!=null){
+ label += dnaSample.getKindOfUnit()+separator;
+ }
Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
label += currentSampleDesignation.getIdentifier()+separator;
label += NO_SAMPLE_DESIGNATION+separator;
}
label += singleRead.getPrimer()!=null?singleRead.getPrimer().getLabel()+separator:emptyString;
- if(sequence!=null){
- label += sequence.getDnaMarker()!=null?sequence.getDnaMarker():emptyString;
+ if(sequence!=null && sequence.getDnaMarker()!=null){
+ label += sequence.getDnaMarker()+separator;
+ }
+ if(singleRead.getAmplificationResult()!=null && singleRead.getAmplificationResult().getAmplification()!=null){
+ label += singleRead.getAmplificationResult().getAmplification().getLabelCache()+separator;
}
}
}
buttonSearch.setText("Search");
searchField = formToolkit.createText(this, "New Text", SWT.NONE);
- searchField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 3, 1));
+ searchField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
searchField.setText("");
+ new Label(this, SWT.NONE);
+ new Label(this, SWT.NONE);
resultViewer = new TableViewer(this, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
table = resultViewer.getTable();
/** {@inheritDoc} */
@Override
public void dispose() {
- super.dispose();
selectionService.removePostSelectionListener(this);
+ super.dispose();
+
}
/**
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.cdm.model.molecular.SingleRead;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.taxeditor.editor.UsageTermCollection;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
+import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.OriginalLabelDataSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoCollectionDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
createSpecimenDescriptionSection(rootElement);
}
else{
- Set<Marker> descriptionMarkers = ((DescriptionBase) input).getMarkers();
+ Set<Marker> descriptionMarkers = ((DescriptionBase<?>) input).getMarkers();
MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(
UsageTermCollection.uuidUseMarkerType);
Boolean isUseDescription = false;
isUseDescription = true;
}
}
- if (((DescriptionBase) input).isImageGallery()) {
+ if (((DescriptionBase<?>) input).isImageGallery()) {
createImageGallerySection(rootElement);
} else if (isUseDescription) {
} else if (input instanceof DerivedUnitFacade) {
if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.FieldUnit){
- createFieldUnitSection(rootElement);
+ if(((DerivedUnitFacade) input).innerFieldUnit()==null){
+ MessagingUtils.error(DetailsViewer.class, "FieldUnit of facade is null", null);
+ }
+ else{
+ createFieldUnitSection(rootElement);
+ }
}
else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.PreservedSpecimen){
- createDerivedUnitBaseElementSection(rootElement);
+ if(((DerivedUnitFacade) input).innerDerivedUnit()==null){
+ MessagingUtils.error(DetailsViewer.class, "DerivedUnit of facade is null", null);
+ }
+ else{
+ createDerivedUnitBaseElementSection(rootElement);
+ }
}
else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){
//TissueSample should only be created by using it's own class
} else if (input instanceof MediaSpecimen){
createMediaSpecimenSection(rootElement);
}
- else if(input instanceof Amplification){
- createAmplificationSection(rootElement);
- }
else if(input instanceof Sequence){
createSequenceSection(rootElement);
}
private void createDerivedUnitBaseElementSection(RootElement parent) {
destroySections();
- //different order of sections (Specimen Details as second section and expanded)
- if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS)){
- DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
- addPart(derivedUnitGeneralDetailSection);
-
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+ DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
+ if(!(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart)){
+ derivedUnitGeneralDetailSection.setShowOnlyDerivedUnitData(true);
+ }
+ addPart(derivedUnitGeneralDetailSection);
- OriginalLabelDataSection originalLabelDataSection = formFactory.createOriginalLabelDataSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
- addPart(originalLabelDataSection);
+ formFactory.createHorizontalSeparator(parent, SWT.BORDER);
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+ DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ addPart(derivedUnitBaseDetailSection);
- DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
- addPart(derivedUnitBaseDetailSection);
+ formFactory.createHorizontalSeparator(parent, SWT.BORDER);
- }
- else{
- DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
- addPart(derivedUnitGeneralDetailSection);
+ OriginalLabelDataSection originalLabelDataSection = formFactory.createOriginalLabelDataSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ addPart(originalLabelDataSection);
+ //for editors working with facades
+ if(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart){
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
addPart(gatheringEventDetailSection);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
addPart(fieldUnitDetailSection);
+ }
+ if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS)){
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
- DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
- addPart(derivedUnitBaseDetailSection);
-
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
addPart(determinationDetailSection);
}
+ if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS)){
+ formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+ TaxonAssociationDetailSection taxonAssociationDetailSection = formFactory.createTaxonAssociationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ addPart(taxonAssociationDetailSection);
+ }
}
addPart(sampleDesignationDetailSection);
}
- private void createAmplificationSection(RootElement parent) {
- destroySections();
- AmplificationGeneralDetailSection generalSection = formFactory.createAmplificationGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
- AmplificationPrimerDetailSection primerSection = formFactory.createAmplificationPrimerDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
- AmplificationCloningDetailSection cloningSection = formFactory.createAmplificationCloningDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
- formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
- AmplificationGelPhotoCollectionDetailSection gelPhotoSection = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
-
- addPart(generalSection);
- addPart(primerSection);
- addPart(cloningSection);
- addPart(gelPhotoSection);
- }
-
private void createSequenceSection(RootElement parent) {
destroySections();
destroySections();
SingleReadGeneralDetailSection section = formFactory.createSingleReadGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ addPart(section);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
- addPart(section);
addPart(pherogramSection);
+
}
private void createMediaSpecimenSection(RootElement parent) {
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
-<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="3.4.0.qualifier" useFeatures="true" includeLaunchers="true">
+<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="3.4.1.qualifier" useFeatures="true" includeLaunchers="true">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<prerequisites>
<maven>3.0</maven>
</prerequisites>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.1-SNAPSHOT</version>
<name>EDIT Taxonomic Editor</name>
<description>The Taxonomic Editor for EDIT's platform for
cybertaxonomy</description>
<properties>
<java.codelevel>1.6</java.codelevel>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>3.4.0-SNAPSHOT</cdmlib.version>
+ <cdmlib.version>3.4.1-SNAPSHOT</cdmlib.version>
<!-- TODO can we use project.version ????? -->
<tycho.version>0.14.0</tycho.version>
- <taxeditor.version>3.4.0-SNAPSHOT</taxeditor.version>
+ <taxeditor.version>3.4.1-SNAPSHOT</taxeditor.version>
<update.dir>snapshot</update.dir>
</properties>
<modules>
<module>eu.etaxonomy.taxeditor.feature.platform</module>
<module>eu.etaxonomy.taxeditor.feature</module>
<module>eu.etaxonomy.taxeditor</module>
-
</modules>
<scm>
<connection>scm:svn:http://dev.e-taxonomy.eu/svn/trunk/taxeditor/</connection>
<role>Java Developer</role>
<role>Architect</role>
</roles>
- <url />
+ <url/>
</developer>
<developer>
<!-- your SVN account id please! -->
<role>Java Developer</role>
<role>Architect</role>
</roles>
- <url />
+ <url/>
</developer>
</developers>
<issueManagement>
<tagBase>http://dev.e-taxonomy.eu/svn/tags/taxeditor</tagBase>
</configuration>
</plugin>
-
</plugins>
<extensions>
<extension>
<url>scpexe://wp5.e-taxonomy.eu/var/www/wp5.e-taxonomy.eu/mavenrepo/</url>
</repository>
</distributionManagement>
-
</project>