Fixes #1820; Refactoring of bulk editor component includes simpler API when implement...
authorn.hoffmann <n.hoffmann@localhost>
Tue, 14 Dec 2010 20:05:31 +0000 (20:05 +0000)
committern.hoffmann <n.hoffmann@localhost>
Tue, 14 Dec 2010 20:05:31 +0000 (20:05 +0000)
151 files changed:
.gitattributes
taxeditor-bulkeditor/plugin.xml
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineDocumentProvider.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineEditor.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityCreator.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityCreatorService.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/SupplementalTextScanner.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/handler/NewObjectHandler.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditor.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorEntityCreatorService.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorLineDisplay.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorMarkerPreferenceComposite.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorQuery.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSearch.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSearchComposite.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSortCombo.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSortMenuProvider.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorUtil.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorViewerConfiguration.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorQuery.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortMenuProvider.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortProvider.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicMarkerTypeEditingMenu.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicNewObjectMenu.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/SetMarkerContributionItems.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagFalseHandler.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagHandler.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagTrueHandler.java [deleted file]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameRelationshipEditorInput.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/ReferenceEditorInput.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/AgentCreator.java [moved from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/TeamOrPersonCreator.java with 77% similarity]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/NameCreator.java [moved from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/NameCreator.java with 96% similarity]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/OccurrenceCreator.java [moved from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/OccurrenceCreator.java with 97% similarity]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/ReferenceCreator.java [moved from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/ReferenceCreator.java with 98% similarity]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractDateComparator.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractSortProvider.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/CdmBaseSortProvider.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/IdentifiableEntitySortProvider.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/ReferenceSortProvider.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/TitleCacheComparator.java [moved from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IdentifiableEntityComparator.java with 65% similarity]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorGeneralPreferencePage.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorMarkerPreferencePage.java [new file with mode: 0644]
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java
taxeditor-editor/plugin.xml
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/AbstractFilteredCdmResourceSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredAgentSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredClassificationSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredCollectionSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredDerivedUnitSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredFeatureSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredFeatureTreeSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredFieldObservationSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredNameSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredNamedAreaSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredNomenclaturalAuthorTeamSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredPersonSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredPolytomousKeySelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredReferenceSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredTaxonBaseSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredTaxonNodeSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredTeamSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmDataTransfer.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInputFactory.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowDetailsViewHandler.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowMediaViewHandler.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowSupplementalDataViewHandler.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowTaxonDescriptionsViewHandler.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeAcceptedTaxonToSynonymOperation.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperation.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperation.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewCollectionWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewDerivedUnitBaseWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewFieldObservationWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewNonViralNameWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewPersonWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewReferenceWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewTeamWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CdmFormFactory.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/ReferenceSelectionElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/SynonymSelectionElement.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TaxonBaseSelectionElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TaxonSelectionElement.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/classification/TaxonNodeDetailElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/description/detail/TaxonInteractionDetailElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/SpecimenTypeDesignationElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/DeterminationEventDetailElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/supplemental/ImageFileElement.java
taxeditor-navigation/plugin.xml
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowPolytomousKeysViewHandler.java [deleted file]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java [deleted file]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeleteOperation.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/Root.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/EditClassificationOperation.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateClassification.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreatePolytomousKey.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/ClassificationWizard.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewTaxonNodeWizard.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewTaxonNodeWizardPage.java
taxeditor-store/plugin.xml
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/handler/ChangeConnectionHandler.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/AvailableFeaturesWizardPage.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/EditFeatureTreeWizardPage.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeTransfer.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeEditorWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewHandler.java [deleted file]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowErrorViewHandler.java [deleted file]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowUserManagerViewHandler.java [deleted file]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOHandler.java with 92% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ExportManager.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ExportHandler.java with 93% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ImportHandler.java with 96% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/BerlinModelExportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/BerlinModelImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/EndnoteImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelNormalExplicitTaxaImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbExportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddExportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsExportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/reporting/ReportingViewPart.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/SearchManager.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/CreateUserOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/DeleteUserOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/EditUserOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/ToggleUserEnablementOperation.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/view/UserManagerView.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/wizard/UserWizardPage.java

index 504ab4a30917388d4cfa80526198418181444134..5902d7353ca161f548b4ef57f2420ac9c4835751 100644 (file)
@@ -60,11 +60,9 @@ taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/An
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/EntityListener.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityContainer.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityCreator.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityCreatorService.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/ILineDisplayStrategy.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/ILineSelectionSource.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IdentifiableEntityComparator.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/LineAnnotation.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/LineAnnotationModel.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/LineSelectionSource.java -text
@@ -73,31 +71,24 @@ taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/Su
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/handler/DeleteObjectHandler.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/handler/NewObjectHandler.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditor.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorEntityCreatorService.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorLineDisplay.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorMarkerPreferenceComposite.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSearchComposite.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSortMenuProvider.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorQuery.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSearch.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSortCombo.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorUtil.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorViewerConfiguration.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorConstants.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorQuery.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortMenuProvider.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/NameCreator.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/OccurrenceCreator.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/ReferenceCreator.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/TeamOrPersonCreator.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortProvider.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorInputTypeValues.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorPropertyTester.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DeleteObjectContributionItem.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicMarkerTypeEditingMenu.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicNewObjectMenu.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/SetMarkerContributionItems.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/OpenBulkEditorHandler.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/RemoveMergeCandidateHandler.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagFalseHandler.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagTrueHandler.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagHandler.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMergeCandidateHandler.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMergeTargetHandler.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/ShowReferencingObjectsHandler.java -text
@@ -107,7 +98,20 @@ taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameE
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameRelationshipEditorInput.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/ReferenceEditorInput.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/AgentCreator.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/NameCreator.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/OccurrenceCreator.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/ReferenceCreator.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractDateComparator.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractSortProvider.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/CdmBaseSortProvider.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/IdentifiableEntitySortProvider.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/ReferenceSortProvider.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/TitleCacheComparator.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/internal/TaxeditorBulkeditorPlugin.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorGeneralPreferencePage.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorMarkerPreferencePage.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsContentProvider.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsLabelProvider.java -text
 taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java -text
@@ -354,10 +358,6 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditNewTaxo
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenParentHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveAllHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveTaxonHandler.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowDetailsViewHandler.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowMediaViewHandler.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowSupplementalDataViewHandler.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowTaxonDescriptionsViewHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewNameHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewPersonHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewReferenceHandler.java -text
@@ -536,8 +536,10 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PersonSele
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PolytomousKeyNodeSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PolytomousKeySelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/ReferenceSelectionElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/SynonymSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TaxonBaseSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TaxonNodeSelectionElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TaxonSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TeamSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/term/AbstractEnumComboElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/term/AbstractTermComboElement.java -text
@@ -753,8 +755,6 @@ taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/WorkbenchUn
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewClassificationHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonNodeHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/RefreshTreeHandler.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowPolytomousKeysViewHandler.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/internal/TaxeditorNavigationPlugin.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyContentProvider.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyLabelProvider.java -text
@@ -996,14 +996,11 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeEdit
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeLabelProvider.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewHandler.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowErrorViewHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowLoginWindowHandler.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowUserManagerViewHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOHandler.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ExportHandler.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ImportHandler.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ExportManager.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractExcelExportWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractExcelImportWizard.java -text
@@ -1106,6 +1103,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/StageMenuPr
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/TaxonRelationshipTypeMenuPreferences.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/VocabularyTermWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/VocabularyTermWizardPage.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/reporting/ReportingViewPart.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/ContextManager.java -text
index 6638e3737eadf3af214e4f5496edbb556979600b..7e8b3eb4f022feca6b94ed3d1ff830d53a9d50cb 100644 (file)
       </menuContribution>\r
       <menuContribution\r
             locationURI="popup:#BulkEditorContext">\r
-         <command\r
-               commandId="taxeditor-bulkeditor.dynamicnewobjectcommand"\r
-               label="New"\r
-               style="push">\r
-         </command>\r
          <separator\r
                name="taxeditor-bulkeditor.separator1"\r
                visible="true">\r
                name="taxeditor-bulkeditor.separator3"\r
                visible="true">\r
          </separator>\r
+         <menu\r
+               label="New">\r
+            <dynamic\r
+                  class="eu.etaxonomy.taxeditor.bulkeditor.command.DynamicNewObjectMenu"\r
+                  id="eu.etaxonomy.taxeditor.bulkeditor.dynamicNewMenu">\r
+            </dynamic>\r
+         </menu>\r
+         <menu\r
+               label="Set Marker Type">\r
+            <dynamic\r
+                  class="eu.etaxonomy.taxeditor.bulkeditor.command.DynamicMarkerTypeEditingMenu"\r
+                  id="eu.etaxonomy.taxeditor.bulkeditor.dynamicMarkerTypeEditingMenu">\r
+            </dynamic>\r
+         </menu>\r
       </menuContribution>\r
    </extension>\r
    <extension\r
             type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">\r
       </propertyTester>\r
    </extension>\r
-   <extension\r
-         point="org.eclipse.ui.menus">\r
-      <menuContribution\r
-            locationURI="popup:#BulkEditorContext?after=taxeditor-bulkeditor.separator2">\r
-         <dynamic\r
-               class="eu.etaxonomy.taxeditor.bulkeditor.command.SetMarkerContributionItems"\r
-               id="taxeditor-bulkeditor.dynamic1">\r
-         </dynamic>\r
-      </menuContribution>\r
-   </extension>\r
    <extension\r
          point="org.eclipse.ui.commands">\r
       <command\r
-            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.SetMarkerFlagTrueHandler"\r
-            id="taxeditor-bulkeditor.command.setMarkerFlagTrue"\r
-            name="Set Marker Flag True">\r
-      </command>\r
-      <command\r
-            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.SetMarkerFlagFalseHandler"\r
-            id="taxeditor-bulkeditor.command.setMarkerFlagFalse"\r
-            name="Set Marker Flag False">\r
+            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.SetMarkerFlagHandler"\r
+            id="taxeditor-bulkeditor.command.setMarkerFlag"\r
+            name="Set Marker Flag">\r
       </command>\r
    </extension>\r
    <extension\r
             </with>\r
          </activeWhen>\r
       </handler>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.preferencePages">\r
+      <page\r
+            category="eu.etaxonomy.taxeditor.preferences.bulkeditor.general"\r
+            class="eu.etaxonomy.taxeditor.bulkeditor.preference.BulkEditorMarkerPreferencePage"\r
+            id="eu.etaxonomy.taxeditor.preferences.bulkeditor.markerTypes"\r
+            name="Marker Types">\r
+      </page>\r
+      <page\r
+            category="eu.etaxonomy.taxeditor.preferences.general"\r
+            class="eu.etaxonomy.taxeditor.bulkeditor.preference.BulkEditorGeneralPreferencePage"\r
+            id="eu.etaxonomy.taxeditor.preferences.bulkeditor.general"\r
+            name="Bulk Editor">\r
+      </page>\r
    </extension>
 <!-- start set marker -->\r
 \r
index 866938b236d703f2885bfbc27b32c3bfec3267b0..c4cc60fbfcaf897e2b24dfe3b0902b83bbd93d9d 100644 (file)
@@ -76,7 +76,7 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        // Create model as necessary
                        if (annotationModel == null) {
                                annotationModel = new LineAnnotationModel(getLineDisplayStrategy(element));
-                               annotationModel.setEntityCreator(getEntityCreator(element));
+                               annotationModel.setEntityCreator(getEntityCreator(input));
                        }
                        return annotationModel;
                }
@@ -163,7 +163,9 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                Position position = new Position(docLength, text.length());
                
                IAnnotationModel model = getAnnotationModel(element);
-               model.addAnnotation(annotation, position);
+               if(model != null){
+                       model.addAnnotation(annotation, position);
+               }
                                                        
 //             lineDisplayStrategy.addDisplayListener(entity, 
 //                                             new EntityListenerImpl((LineAnnotation) annotation, element));
@@ -207,25 +209,6 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        BulkEditorUtil.error(getClass(), "Problem updating annotated line: " ,e);
                }
        }
-
-//     class EntityListenerImpl extends EntityListener {
-//
-//             private LineAnnotation lineAnnotation;
-//             private Object element;
-//
-//             EntityListenerImpl(LineAnnotation lineAnnotation, Object element) {
-//                     this.lineAnnotation = lineAnnotation;
-//                     this.element = element;
-//             }
-//             /* (non-Javadoc)
-//              * @see eu.etaxonomy.taxeditor.annotatedlineeditor.EntityDisplayListener#updateDisplay()
-//              */
-//             @Override
-//             protected void updateEntity() {
-//                     lineAnnotation.setDirty(true);
-//                     updateLineFromAnnotation(element, lineAnnotation);
-//             }
-//     }
        
        /**
         * @param element 
@@ -233,7 +216,7 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
         */
        private List<?> getEntityList(Object element) {
                if (element instanceof AbstractBulkEditorInput) {
-                       return ((AbstractBulkEditorInput)element).listEntities();
+                       return ((AbstractBulkEditorInput)element).getModel();
                }
                return null;
        }
@@ -293,18 +276,6 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                // enables copy & paste
                return false;
        }
-
-       /**
-        * <p>Setter for the field <code>entityCreator</code>.</p>
-        *
-        * @param entityCreator a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator} object.
-        * @param element a {@link java.lang.Object} object.
-        */
-       public void setEntityCreator(IEntityCreator<?> entityCreator, Object element) {
-               if (element instanceof IEditorInput) {
-                       this.entityCreator = entityCreator;
-               }
-       }
        
        /**
         * <p>Getter for the field <code>entityCreator</code>.</p>
@@ -312,12 +283,11 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
         * @param element a {@link java.lang.Object} object.
         * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator} object.
         */
-       public IEntityCreator<?> getEntityCreator(Object element) {
-               if (element instanceof IEditorInput) {
-//                     Assert.isNotNull(entityCreator, "No IEntityCreator set for this element.");
-                       return entityCreator;
+       public IEntityCreator<?> getEntityCreator(IEditorInput input) {
+               if (input instanceof AbstractBulkEditorInput) {
+                       entityCreator = ((AbstractBulkEditorInput) input).getEntityCreator();
                }
-               return null;
+               return entityCreator;
        }
 
        /**
index 3d82c88d56c3bf23385e4cefdab2cd24314a77cf..94ed51707d081395730ca8f3489a851c6af47955 100644 (file)
@@ -9,14 +9,18 @@
 */
 package eu.etaxonomy.taxeditor.annotatedlineeditor;
 
+import java.util.Iterator;
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.source.IAnnotationModel;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.text.source.IVerticalRuler;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
@@ -29,9 +33,8 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  * <p>
  * Extending classes must set:
  * <ul>
- * <li>an <code>IEntityCreator</code> to create a new domain object when the user creates a new line;
- * <li>an <code>IEntityPersistenceService</code> for interacting with the persistence layer; and
- * <li>an <code>ILineDisplayStrategy</code> for various visual manifestations of the domain object.
+ * <li>an {@link IEntityPersistenceService} for interacting with the persistence layer; and
+ * <li>an {@link ILineDisplayStrategy} for various visual manifestations of the domain object.
  * </ul>
  *
  * @author p.ciardelli
@@ -44,8 +47,6 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
        
        private IEntityPersistenceService persistenceService;
        protected ILineDisplayStrategy lineDisplayStrategy;
-       private IEntityCreatorService entityCreatorService;
-       private IEntityCreator<?> entityCreator;
        
        
        /**
@@ -65,11 +66,7 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
        protected void doSetInput(IEditorInput input) throws CoreException {
 
                AnnotatedLineDocumentProvider provider = createAnnotatedLineDocumentProvider();
-               if (entityCreatorService != null) {
-                       provider.setEntityCreator(entityCreatorService.getEntityCreator(input), input);
-               } else {
-                       provider.setEntityCreator(entityCreator, input);
-               }
+               
                provider.setLineDisplayStrategy(lineDisplayStrategy, input);
                setDocumentProvider(provider);
                
@@ -85,23 +82,6 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
                return new AnnotatedLineDocumentProvider(getEditorInput());
        }
 
-       /**
-        * <p>Setter for the field <code>entityCreatorService</code>.</p>
-        *
-        * @param entityCreatorService a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreatorService} object.
-        */
-       protected void setEntityCreatorService(IEntityCreatorService entityCreatorService) {
-               this.entityCreatorService = entityCreatorService;
-       }
-       
-       /**
-        * <p>Setter for the field <code>entityCreator</code>.</p>
-        *
-        * @param entityCreator a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator} object.
-        */
-       protected void setEntityCreator(IEntityCreator entityCreator) {
-               this.entityCreator = entityCreator;
-       }
                
        /**
         * <p>Setter for the field <code>persistenceService</code>.</p>
@@ -156,8 +136,10 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
        public LineAnnotation createAnnotatedLineNewObject() {
                
                // Create new object
-               Object entity = ((AnnotatedLineDocumentProvider) getDocumentProvider()).
-                                                       getEntityCreator(getEditorInput()).createEntity(null);
+               
+               AnnotatedLineDocumentProvider documentProvider = (AnnotatedLineDocumentProvider) getDocumentProvider();
+               IEntityCreator entityCreator = documentProvider.getEntityCreator(getEditorInput());
+               Object entity = entityCreator.createEntity(null);
 
                LineAnnotation annotation = createAnnotatedLine(entity);
                if (annotation != null) {
@@ -204,8 +186,11 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
                        annotation = provider.createAnnotatedLine(input, entity);
 
                        // Jump to new line
-                       int start= provider.getAnnotationModel(input).getPosition(annotation).getOffset();
-                       selectAndReveal(start, 0);
+                       IAnnotationModel model = provider.getAnnotationModel(input);
+                       if(model != null){
+                               int start= model.getPosition(annotation).getOffset();
+                               selectAndReveal(start, 0);
+                       }
                        
                } catch (BadLocationException e) {
                        // TODO Auto-generated catch block
@@ -281,12 +266,32 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
        /** {@inheritDoc} */
        public void update(CdmDataChangeMap changeEvents) {}
 
+       /**
+        * Refreshes text in all lines.
+        */
+       protected void refreshLineDisplay() {
+               IDocumentProvider provider = getDocumentProvider();
+               IEditorInput input = getEditorInput();
+               IAnnotationModel model = provider.getAnnotationModel(input);
+               Iterator iter = getDocumentProvider().getAnnotationModel(getEditorInput()).getAnnotationIterator();
+               while (iter.hasNext()) {
+                       Object next = iter.next();
+                       if (next instanceof LineAnnotation) {
+                               LineAnnotation annotation = (LineAnnotation) next;
+                               ((AnnotatedLineDocumentProvider) getDocumentProvider()).
+                                               updateLineFromAnnotation(annotation);
+                       }
+               }
+       }
+       
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
         */
        /** {@inheritDoc} */
        public boolean postOperation(CdmBase objectAffectedByOperation) {
-               return false;
+               refreshLineDisplay();
+               
+               return true;
        }
        
        /* (non-Javadoc)
index 31e9d5220bf69b36aad04a69037c740966f7cb2d..0ea3e38e49c11f7dc6646c9627f9f091d19a8267 100644 (file)
@@ -12,7 +12,7 @@ package eu.etaxonomy.taxeditor.annotatedlineeditor;
 
 import java.util.Map;
 
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 
 
 /**
@@ -22,7 +22,7 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
  * @created 03.07.2009
  * @version 1.0
  */
-public interface IEntityCreator<T extends CdmBase> {
+public interface IEntityCreator<T> {
        
        /**
         * <p>createEntity</p>
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityCreatorService.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityCreatorService.java
deleted file mode 100644 (file)
index a288c73..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.annotatedlineeditor;
-
-
-/**
- * Associates entity creators with classes, e.g.
- * ReferenceEditorInput with ReferenceCreator.
- *
- * @author p.ciardelli
- * @created 25.08.2009
- * @version 1.0
- */
-public interface IEntityCreatorService {
-
-       /**
-        * <p>setEntityCreator</p>
-        *
-        * @param entityCreator a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator} object.
-        * @param element a {@link java.lang.Object} object.
-        */
-       void setEntityCreator(IEntityCreator entityCreator, Object element);
-       
-       /**
-        * <p>getEntityCreator</p>
-        *
-        * @param element a {@link java.lang.Object} object.
-        * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator} object.
-        */
-       IEntityCreator getEntityCreator(Object element);
-}
index 89badfdcdac630e5560655fdbbff38e8acd6b313..7c292c52dc428218757f4ddca4eca08236b09345 100644 (file)
 
 package eu.etaxonomy.taxeditor.annotatedlineeditor;
 
-import java.util.List;
 
 /**
- * Performs the retrieving and saving of a list of entities edited by a <code>ListEditor<code>,
+ * Performs the retrieving and saving of a list of entities edited by a <code>ListEditor</code>,
  * interacting with the persistence layer.
  * <p>
- * The methods' element input parameter is typically the <code>ListEditor<code>'s <code>IEditorInput<code>.
+ * The methods' element input parameter is typically the <code>ListEditor</code>'s <code>IEditorInput</code>.
  *
  * @author p.ciardelli
  * @created 07.07.2009
  * @version 1.0
  */
-public interface IEntityPersistenceService {
-       
-       /**
-        * <p>listEntities</p>
-        *
-        * @return a {@link java.util.List} object.
-        */
-       List<?> listEntities(); 
+public interface IEntityPersistenceService<T> {
        
        /**
         * <p>create</p>
@@ -37,7 +29,7 @@ public interface IEntityPersistenceService {
         * @param entity a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       boolean create(Object entity);
+       boolean create(T entity);
        
        /**
         * <p>save</p>
@@ -45,7 +37,7 @@ public interface IEntityPersistenceService {
         * @param entity a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       boolean save(Object entity);
+       boolean save(T entity);
        
        /**
         * <p>merge</p>
@@ -54,7 +46,7 @@ public interface IEntityPersistenceService {
         * @param mergeTarget a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       boolean merge(Object entity, Object mergeTarget);
+       boolean merge(T entity, T mergeTarget);
        
        /**
         * <p>delete</p>
@@ -62,5 +54,5 @@ public interface IEntityPersistenceService {
         * @param entity a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       boolean delete(Object entity);
+       boolean delete(T entity);
 }
index 9f966ba5979ac073abb3c8f8ffa2a9d5d91986e1..ba256be0840979f7947ff29ddd9fba21e7d08306 100644 (file)
@@ -81,22 +81,24 @@ public class SupplementalTextScanner extends RuleBasedPartitionScanner {
                // Get all supplemental texts in the partial range
                supplementalTexts = new HashMap<Integer, String>();
                LineAnnotationModel model = (LineAnnotationModel) sourceViewer.getAnnotationModel();
-               Iterator iter = model.getAnnotationIterator(offset, length, true, true);
-               while (iter.hasNext()) {
-                       Object next = iter.next();
-                       if (next instanceof LineAnnotation) {
-                                Object entity = ((LineAnnotation) next).getEntity();
-                                String supplementalText = lineDisplayStrategy.getSupplementalText(entity);
-                                if (supplementalText != null && supplementalText.length() > 0) {
-                                        try {
-                                               int line = document.getLineOfOffset(model.getPosition((LineAnnotation) next).getOffset());
-                                               supplementalTexts.put(line, supplementalText);
-                                       } catch (BadLocationException e) {
-                                               // TODO Auto-generated catch block
-                                               e.printStackTrace();
-                                       }
-                                        
-                                }
+               if(model != null){
+                       Iterator iter = model.getAnnotationIterator(offset, length, true, true);
+                       while (iter.hasNext()) {
+                               Object next = iter.next();
+                               if (next instanceof LineAnnotation) {
+                                        Object entity = ((LineAnnotation) next).getEntity();
+                                        String supplementalText = lineDisplayStrategy.getSupplementalText(entity);
+                                        if (supplementalText != null && supplementalText.length() > 0) {
+                                                try {
+                                                       int line = document.getLineOfOffset(model.getPosition((LineAnnotation) next).getOffset());
+                                                       supplementalTexts.put(line, supplementalText);
+                                               } catch (BadLocationException e) {
+                                                       // TODO Auto-generated catch block
+                                                       e.printStackTrace();
+                                               }
+                                                
+                                        }
+                               }
                        }
                }
                this.document = (Document) document; 
index c9ee3ea1975431fb7eb3ca0d3b40b8b39253d2d1..43b4b8e5e7a98a08c931a041bbbfb1db740bdf32 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.annotatedlineeditor.handler;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -31,8 +30,6 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
  * @version 1.0
  */
 public class NewObjectHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(NewObjectHandler.class);
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -47,12 +44,14 @@ public class NewObjectHandler extends AbstractHandler {
                        
                        Object key = ((Event)event.getTrigger()).data;
                        if (key != null) {
+                               
+                               
                                String text = ((Event)event.getTrigger()).text;
                                InputDialog dialog = new InputDialog(HandlerUtil.getActiveShell(event), "Create " + text, "Enter new " + text, "", null);
-                               if (dialog.open() == Window.CANCEL) {
-                                       return null;
+                               if (dialog.open() != Window.CANCEL) {
+                                       ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject(key, dialog.getValue());
                                }
-                               ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject(key, dialog.getValue());
+                               
                        } else {
                                ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject();
                        }
index f3753205737bb55923a9491f8f0d2d1caaafa6c1..9b9d200017bbe53d76619244fcb543815e4badf5 100644 (file)
 
 package eu.etaxonomy.taxeditor.bulkeditor;
 
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.Iterator;
-
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.MessageDialogWithToggle;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.source.Annotation;
 import org.eclipse.jface.text.source.AnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationModel;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.text.source.IVerticalRuler;
 import org.eclipse.jface.util.IPropertyChangeListener;
@@ -36,9 +31,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.texteditor.IDocumentProvider;
 
-import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineDocumentProvider;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
@@ -48,7 +41,6 @@ import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.TermStore;
 
 /**
  * <p>BulkEditor class.</p>
@@ -57,14 +49,14 @@ import eu.etaxonomy.taxeditor.store.TermStore;
  * @created 07.07.2009
  * @version 1.0
  */
-public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeListener, IPartContentHasDetails, IDirtyMarkableSelectionProvider{
+public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDetails, IDirtyMarkableSelectionProvider{
 
        /** Constant <code>ID="bulkeditor.editor"</code> */
        public static final String ID = "bulkeditor.editor";
 
        private boolean isInitialFocus = true;
        
-       private BulkEditorSearchComposite searchBar = null;
+       private BulkEditorSearch searchBar = null;
        
        private IPropertyChangeListener markerPreferenceListener;
 
@@ -88,7 +80,7 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
                 */
                setEditorContextMenuId("#BulkEditorContext");
 
-               setEntityCreatorService(new BulkEditorEntityCreatorService());
+//             setEntityCreatorService(new BulkEditorEntityCreatorService());
                
                setLineDisplayStrategy(new BulkEditorLineDisplay(this));
                
@@ -121,8 +113,6 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
                }
                
                super.init(site, input);
-               
-               ((AbstractBulkEditorInput) input).addPropertyChangeListener(this);
        }
        
        /* (non-Javadoc)
@@ -134,18 +124,17 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
                
                parent.setLayout(new GridLayout());
                
-               Composite layoutComposite = new Composite(parent, SWT.TOP);
+               Composite layoutComposite = new Composite(parent, SWT.NONE);
                layoutComposite.setLayout(new GridLayout());
-               
-               searchBar = new BulkEditorSearchComposite(this, layoutComposite, SWT.NONE);
-               layoutComposite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
 
-               if (isEditableMarkerTypes()) {
-                       // TODO this will be obsolete
-//                     createMarkerEditing(layoutComposite);
-               }
+               GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
+               layoutComposite.setLayoutData(gridData);
+               
+//             layoutComposite.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_BLUE));
+               
                
-               searchBar.setEnabled(! getEditorInput().isSingleEntityMode());
+               searchBar = new BulkEditorSearch(this, layoutComposite, SWT.NONE);
+//             layoutComposite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
                                
                super.createPartControl(parent);
                
@@ -158,24 +147,6 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
                }
        }
        
-       /**
-        * @param parent 
-        * 
-        */
-       private void createMarkerEditing(Composite parent) {
-               final BulkEditorMarkerPreferenceComposite markerPreferenceBar = 
-                               new BulkEditorMarkerPreferenceComposite((AbstractBulkEditorInput) getEditorInput(), parent, SWT.NONE);
-               markerPreferenceListener = new IPropertyChangeListener() {
-                       public void propertyChange(
-                                       org.eclipse.jface.util.PropertyChangeEvent event) {
-                               if (event.getProperty().contains(PreferencesUtil.EDIT_MARKER_TYPE_PREFIX)) {
-                                       refreshLineDisplay();
-                               }
-                       }
-               };
-               PreferencesUtil.getPreferenceStore().addPropertyChangeListener(markerPreferenceListener);
-       }
-       
        /* (non-Javadoc)
         * @see org.eclipse.ui.editors.text.TextEditor#dispose()
         */
@@ -187,38 +158,6 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
                }
                super.dispose();
        }
-       
-       /**
-        * Can this input type edit any markers?
-        * 
-        * @return
-        */
-       private boolean isEditableMarkerTypes() { 
-               for (MarkerType markerType : TermStore.getNonTechnicalMarkerTypes()) {
-                       if (((AbstractBulkEditorInput) getEditorInput()).isMarkerTypeEditingEnabled(markerType)) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * Refreshes text in all lines.
-        */
-       protected void refreshLineDisplay() {
-               IDocumentProvider provider = getDocumentProvider();
-               IEditorInput input = getEditorInput();
-               IAnnotationModel model = provider.getAnnotationModel(input);
-               Iterator iter = getDocumentProvider().getAnnotationModel(getEditorInput()).getAnnotationIterator();
-               while (iter.hasNext()) {
-                       Object next = iter.next();
-                       if (next instanceof LineAnnotation) {
-                               LineAnnotation annotation = (LineAnnotation) next;
-                               ((AnnotatedLineDocumentProvider) getDocumentProvider()).
-                                               updateLineFromAnnotation(annotation);
-                       }
-               }
-       }
 
        /* (non-Javadoc)
         * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#isEditable()
@@ -235,10 +174,7 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
        /** {@inheritDoc} */
        @Override
        public void setFocus() {
-//             super.setFocus();
-               
-               // TODO Since setFocus() is called by RCP, can a global variable (searchBar) be avoided?
-               setFocusOnToolBar();
+               searchBar.setFocus();
 
                // TODO find a better place to put this - this dialog should be shown after initial contents of 
                //      Editor are displayed
@@ -247,15 +183,6 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
                        isInitialFocus = false;
                }
        }
-
-       /**
-        * Sets focus on the toolbar.
-        */
-       private void setFocusOnToolBar() {
-               if (searchBar != null) {
-                       searchBar.setFocus();
-               }
-       }
        
        /**
         * 
@@ -300,15 +227,17 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
                LineAnnotationModel model = 
                                (LineAnnotationModel) getSourceViewer().getAnnotationModel();
                
-               Annotation annotation = model.getAnnotationAtLine(line, document);
-               
-               if (annotation != null) {
-                       if (annotation.getType().equals(IBulkEditorConstants.TYPE_MERGE_CANDIDATE)) {
-                               model.changeAnnotationType(
-                                               annotation, LineAnnotation.TYPE_GENERIC);
-                       } else {
-                               model.changeAnnotationType(
-                                               annotation, IBulkEditorConstants.TYPE_MERGE_CANDIDATE);
+               if(model != null){
+                       Annotation annotation = model.getAnnotationAtLine(line, document);
+                       
+                       if (annotation != null) {
+                               if (annotation.getType().equals(IBulkEditorConstants.TYPE_MERGE_CANDIDATE)) {
+                                       model.changeAnnotationType(
+                                                       annotation, LineAnnotation.TYPE_GENERIC);
+                               } else {
+                                       model.changeAnnotationType(
+                                                       annotation, IBulkEditorConstants.TYPE_MERGE_CANDIDATE);
+                               }
                        }
                }
        }
@@ -325,8 +254,8 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
         * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
         */
        /** {@inheritDoc} */
-       public void propertyChange(PropertyChangeEvent evt) {
-               if (evt.getPropertyName().equals(AbstractBulkEditorInput.QUERY_CHANGED)) {
+       public void performSearch(BulkEditorQuery query) {
+               if (query != null) {
                        
                        // TODO check if dirty, prompt save
                        if (isDirty()) {
@@ -338,29 +267,27 @@ public class BulkEditor extends AnnotatedLineEditor implements PropertyChangeLis
                                        return;
                                }
                        }
-                       if(getDocumentProvider().getAnnotationModel(getEditorInput()) != null){
-                               ((AnnotationModel) getDocumentProvider().getAnnotationModel(getEditorInput())).removeAllAnnotations();
-                       }
-                       setInput(getEditorInput());
+                                               
+                       getEditorInput().performSearch(query);
+                       
+                       refresh();
                }
        }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
-        */
+       
        /**
-        * <p>getContributorId</p>
-        *
-        * @return a {@link java.lang.String} object.
+        * 
         */
-       public String getContributorId() {
-               return BulkEditor.ID;
+       public void refresh() {
+               if(getDocumentProvider().getAnnotationModel(getEditorInput()) != null){
+                       ((AnnotationModel) getDocumentProvider().getAnnotationModel(getEditorInput())).removeAllAnnotations();
+               }
+               
+               setInput(getEditorInput());
        }
        
        /** {@inheritDoc} */
        @Override
        public AbstractBulkEditorInput getEditorInput() {
-               // TODO Auto-generated method stub
                return (AbstractBulkEditorInput) super.getEditorInput();
        }
 }
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorEntityCreatorService.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorEntityCreatorService.java
deleted file mode 100644 (file)
index 3582459..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor;
-
-import org.apache.log4j.Logger;
-
-import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
-import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreatorService;
-import eu.etaxonomy.taxeditor.bulkeditor.input.AgentEditorInput;
-import eu.etaxonomy.taxeditor.bulkeditor.input.NameEditorInput;
-import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
-import eu.etaxonomy.taxeditor.bulkeditor.input.ReferenceEditorInput;
-
-/**
- * <p>BulkEditorEntityCreatorService class.</p>
- *
- * @author p.ciardelli
- * @created 25.08.2009
- * @version 1.0
- */
-public class BulkEditorEntityCreatorService implements IEntityCreatorService {
-       private static final Logger logger = Logger
-                       .getLogger(BulkEditorEntityCreatorService.class);
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreatorService#getEntityCreator(java.lang.Object)
-        */
-       /** {@inheritDoc} */
-       public IEntityCreator getEntityCreator(Object element) {
-               if (element instanceof ReferenceEditorInput) {
-                       return new ReferenceCreator();
-               }
-               if (element instanceof NameEditorInput) {
-                       return new NameCreator();
-               }
-               if (element instanceof AgentEditorInput) {
-                       return new TeamOrPersonCreator();
-               }
-               if (element instanceof OccurrenceEditorInput) {
-                       return new OccurrenceCreator();
-               }
-               return null;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreatorService#setEntityCreator(eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator, java.lang.Object)
-        */
-       /** {@inheritDoc} */
-       public void setEntityCreator(IEntityCreator entityCreator, Object element) {}
-}
index 91bfb3de4545e29e618b77ac623d91d80699b142..8a8085aeead4311377787132473caf91272f5403 100644 (file)
 
 package eu.etaxonomy.taxeditor.bulkeditor;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.EntityListener;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy;
+import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
@@ -37,14 +44,14 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  */
 public class BulkEditorLineDisplay implements ILineDisplayStrategy {
        
-       private IEditorPart editor;
+       private BulkEditor editor;
 
        /**
         * <p>Constructor for BulkEditorLineDisplay.</p>
         *
         * @param editor a {@link org.eclipse.ui.IEditorPart} object.
         */
-       public BulkEditorLineDisplay(IEditorPart editor) {
+       public BulkEditorLineDisplay(BulkEditor editor) {
                this.editor = editor;
        }
 
@@ -90,43 +97,32 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         */
        /** {@inheritDoc} */
        public String getSupplementalText(Object entity) {
-               if (entity instanceof Reference) {
-                       Reference reference = (Reference) HibernateProxyHelper.deproxy(entity);
-                       // Nobody seems to like displaying the date
-//                     TimePeriod datePublished = ((StrictReferenceBase) reference).getDatePublished();
-//                                             
-//                     String date = datePublished == null ? null : datePublished.toString();
-//                     if (date != null) {
-//                             text += " [" + date + "]";
-//                     }
-                       String markerText = null;
-                       for (Marker marker : reference.getMarkers()) {
-                               if (PreferencesUtil.getEditMarkerTypePreference(editor.getEditorInput(), marker.getMarkerType())) {
-                                       if (markerText == null) {
-                                               markerText = " [";
-                                       } else {
-                                               markerText += ", ";
-                                       }
-                                       markerText += marker.getMarkerType().getLabel() + " = " + marker.getFlag();
-                               }
+               
+               String supplementalText = "";
+               
+               AbstractBulkEditorInput input = editor.getEditorInput();
+               String typeText = input.getTypeText(entity);
+               
+               supplementalText += CdmUtils.isEmpty(typeText) ? "" : String.format(" [%s]", typeText);
+               
+               if (entity instanceof IAnnotatableEntity) {
+                       IAnnotatableEntity annotatableEntity = (IAnnotatableEntity) HibernateProxyHelper.deproxy(entity);
+
+                       Map<MarkerType, Boolean> editMarkerTypePreferences = PreferencesUtil.getEditMarkerTypePreferences();
+                       
+                       String markerText = "";
+                       List<String> markers = new ArrayList<String>();
+                       for (Marker marker : annotatableEntity.getMarkers()) {
+                               markers.add(String.format("%1s = %2s", marker.getMarkerType().getLabel(), marker.getFlag() ? "yes" : "no"));
                        }
-                       if (markerText != null) {
-                               markerText += "]";
-                       } else {
-                               markerText = "";
+                       if (! markers.isEmpty()) {
+                               markerText = StringUtils.join(markers, ", ");
                        }
-                       return markerText;
+                       
+                       supplementalText += CdmUtils.isEmpty(markerText) ? "" : String.format(" [%s]", markerText);
                }
-               if (entity instanceof TaxonNameBase) { 
-                       return "";
-               }
-               if (entity instanceof AgentBase) {
-                       return "[" + entity.getClass().getSimpleName() + "]";
-               }
-               if (entity instanceof SpecimenOrObservationBase) {
-                       return "[" + entity.getClass().getSimpleName() + "]";
-               }
-               return "";
+               
+               return supplementalText;
        }
        
        /* (non-Javadoc)
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorMarkerPreferenceComposite.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorMarkerPreferenceComposite.java
deleted file mode 100644 (file)
index bf35ee3..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.TermStore;
-
-/**
- * <p>BulkEditorMarkerPreferenceComposite class.</p>
- *
- * @author p.ciardelli
- * @created 17.08.2009
- * @version 1.0
- */
-public class BulkEditorMarkerPreferenceComposite extends Composite {
-       private static final Logger logger = Logger.getLogger(BulkEditorMarkerPreferenceComposite.class);
-       
-       private AbstractBulkEditorInput editorInput;
-       
-       Map<Button, MarkerType> markerTypeButtons = new HashMap<Button, MarkerType>();
-               
-       /**
-        * <p>Constructor for BulkEditorMarkerPreferenceComposite.</p>
-        *
-        * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
-        * @param style a int.
-        * @param editorInput a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
-        */
-       public BulkEditorMarkerPreferenceComposite(AbstractBulkEditorInput editorInput, Composite parent, int style) {
-               super(parent, style);
-               this.editorInput = editorInput;
-               createControl();
-       }
-
-       /**
-        * @param markerType 
-        * @return 
-        * 
-        */
-       private boolean getEditMarkerPreference(MarkerType markerType) {
-               return PreferencesUtil.getEditMarkerTypePreference(editorInput, markerType);
-       }
-
-       private void setEditMarkerPreference(MarkerType markerType, boolean edit) {
-               PreferencesUtil.setEditMarkerTypePreference(editorInput, markerType, edit);
-       }
-               
-       /**
-        * <p>createControl</p>
-        */
-       protected void createControl() {
-               
-               GridLayout gridLayout = new GridLayout();
-               gridLayout.numColumns = 3;
-               gridLayout.marginHeight = 0;
-               gridLayout.marginWidth = 12;
-               setLayout(gridLayout);
-               
-               for (final MarkerType markerType : TermStore.getNonTechnicalMarkerTypes()) {
-                       if (editorInput.isMarkerTypeEditingEnabled(markerType)) {
-                               final Button button = new Button(this, SWT.CHECK);
-                               button.setText("Edit " + markerType.getLabel() + " markers");
-                               button.addSelectionListener(new SelectionAdapter() {
-                                       public void widgetSelected(SelectionEvent e) {
-                                               setEditMarkerPreference(markerType, button.getSelection());
-                                       }
-                               });
-                               button.setSelection(getEditMarkerPreference(markerType));
-                               
-                               markerTypeButtons.put(button, markerType);
-                       }
-               }
-       }
-}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorQuery.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorQuery.java
new file mode 100644 (file)
index 0000000..1ddb809
--- /dev/null
@@ -0,0 +1,62 @@
+// $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.bulkeditor;
+
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.config.impl.IdentifiableServiceConfiguratorImpl;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public class BulkEditorQuery {
+               
+       private String searchString;
+       private Comparator comparator;
+       private IIdentifiableEntityServiceConfigurator searchConfigurator;
+
+       public BulkEditorQuery (String searchString, Comparator comparator) {
+               this.searchString = searchString;
+               this.comparator = comparator;
+               
+               searchConfigurator = IdentifiableServiceConfiguratorImpl.NewInstance();
+               searchConfigurator.setTitleSearchString(searchString);
+               
+               if(searchString != null && searchString.trim().equals("*")){
+                       searchConfigurator.setPageSize(1000);
+               }
+               
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery#getComparator()
+        */
+       public Comparator getComparator() {
+               return comparator;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery#getSearchString()
+        */
+       public String getSearchString() {
+               return searchString;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery#getSearchConfigurator()
+        */
+       public IIdentifiableEntityServiceConfigurator getSearchConfigurator() {
+               return searchConfigurator;
+       }
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSearch.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSearch.java
new file mode 100644 (file)
index 0000000..2d194f9
--- /dev/null
@@ -0,0 +1,234 @@
+// $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.bulkeditor;
+
+import java.util.Comparator;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+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.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.swt.IFocusService;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.preference.Resources;
+
+/**
+ * <p>BulkEditorSearchComposite class.</p>
+ *
+ * @author p.ciardelli
+ * @author e.-m.lee
+ * @author n.hoffmann
+ * @created 17.08.2009
+ * @version 1.0
+ */
+public class BulkEditorSearch {
+       
+       /**
+        * 
+        */
+       private static final String SEARCH = "Search";
+
+       private static final String DEFAULT_TEXT = "Use \"*\" for wildcard searching";
+       
+       private BulkEditor editor;
+       private Menu sortMenu;
+       
+       private Text text;
+       private BulkEditorSortCombo sortCombo;
+       
+       private Button button;
+       
+       
+       public Object ORDER_BY = new Object();
+       private ToolItem toolItem;
+       
+       /**
+        * <p>Constructor for BulkEditorSearchComposite.</p>
+        *
+        * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
+        * @param style a int.
+        * @param editor a {@link org.eclipse.ui.IEditorPart} object.
+        */
+       public BulkEditorSearch(BulkEditor editor, Composite parent, int style) {
+               this.editor = editor;
+               
+               createControl(parent, style);
+       }
+
+       /*
+        * Creates the search control.
+        */
+       /**
+        * <p>createControl</p>
+        */
+       protected void createControl(Composite parent, int style) {
+       
+               final Composite container = new Composite(parent, style);
+               GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
+               container.setLayoutData(gridData);
+               container.setLayout(new GridLayout(5, false));
+               
+               createSearchTextField(container, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
+               
+               createSortCombo(container, style);
+               
+               button = new Button(container, SWT.PUSH);
+               button.setText(SEARCH);
+               button.addSelectionListener(new SelectionAdapter() {
+                       /* (non-Javadoc)
+                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+                        */
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               updateEditorInput();
+                       }
+               });
+               
+               registerAtFocusService();
+       }
+
+       /**
+        * @param container
+        * @param style
+        */
+       private void createSortCombo(Composite parent, int style) {
+               sortCombo = new BulkEditorSortCombo(parent, editor.getEditorInput().getSortProviders());
+               
+       }
+
+       /**
+        * Handles focus changes for the textfield.
+        */
+       private void registerAtFocusService() {
+               IFocusService focusService = 
+                       (IFocusService) PlatformUI.getWorkbench().getService(IFocusService.class);
+               if (focusService != null) {
+                       focusService.addFocusTracker(text, "bulkeditor.textControlId");
+               }
+       }
+
+
+       /**
+        * Creates the search textfield.
+        */
+       private void createSearchTextField(Composite parent, int style) {
+               final Label label = new Label(parent, SWT.NONE);
+               label.setText("Title Cache");
+               
+               text = new Text(parent, style);
+               text.setText(DEFAULT_TEXT);
+               text.setForeground(BulkEditorUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
+               
+               text.addFocusListener(new FocusListener() {
+
+                       public void focusGained(FocusEvent e) {
+                               text.setForeground(BulkEditorUtil.getColor(Resources.SEARCH_VIEW_FOCUS));
+                               if (DEFAULT_TEXT.equals(text.getText())) {
+                                       text.setText("");
+                               }
+                       }
+
+                       public void focusLost(FocusEvent e) {
+                               if (CdmUtils.isEmpty(text.getText())) {
+                                       text.setForeground(BulkEditorUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
+                                       text.setText(DEFAULT_TEXT);             
+                               } 
+                       }
+               });
+               
+               text.addKeyListener(new KeyAdapter() {
+                       /* (non-Javadoc)
+                        * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
+                        */
+                       @Override
+                       public void keyReleased(KeyEvent e) {
+                               if (e.keyCode == SWT.CR) {
+                                       updateEditorInput();
+                               }
+                       }
+               });
+               
+               GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
+               text.setLayoutData(gridData);
+       }
+
+
+       /*
+        * Shows the results of the search.
+        */
+       private void updateEditorInput() {
+               
+               String searchString = getSearchString().trim();
+               
+               if(DEFAULT_TEXT.equals(searchString) || CdmUtils.isEmpty(searchString)){
+                       return;
+               }
+               
+               // update query in IEditorInput
+               AbstractBulkEditorInput input = editor.getEditorInput();
+               if (input instanceof AbstractBulkEditorInput) {
+                       BulkEditorQuery query = new BulkEditorQuery(getSearchString(), getComparator());
+                       editor.performSearch(query);
+               }
+       }
+       
+       /*
+        * Returns the current string in the search textfield.
+        * @return the content of the textfield
+        */
+       /**
+        * <p>getSearchString</p>
+        *
+        * @return a {@link java.lang.String} object.
+        */
+       public String getSearchString() {
+               return text.getText().trim();
+       }
+       
+       /*
+        * 
+        */
+       /**
+        * <p>getComparator</p>
+        *
+        * @return a {@link java.util.Comparator} object.
+        */
+       public Comparator getComparator() {
+               return sortCombo.getSelection();
+       };
+       
+       /*
+        * 
+        */
+
+       /**
+        * 
+        */
+       public void setFocus() {
+               if(text != null && ! text.isDisposed()){
+                       text.setFocus();
+               }
+       }
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSearchComposite.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSearchComposite.java
deleted file mode 100644 (file)
index fb63e86..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor;
-
-import java.util.Comparator;
-
-import org.apache.log4j.Logger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.swt.IFocusService;
-
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.config.impl.IdentifiableServiceConfiguratorImpl;
-import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * <p>BulkEditorSearchComposite class.</p>
- *
- * @author p.ciardelli
- * @author e.-m.lee
- * @created 17.08.2009
- * @version 1.0
- */
-public class BulkEditorSearchComposite extends Composite {
-       private static final Logger logger = Logger.getLogger(BulkEditorSearchComposite.class);
-       
-       private IEditorPart editor;
-       private IBulkEditorSortMenuProvider menuProvider;
-       private Menu sortMenu;
-       private Text text;
-       private static final String DEFAULT_TEXT = "Use \"*\" for wildcard searching";
-       public Object ORDER_BY = new Object();
-       private ToolItem toolItem;
-       
-       /**
-        * <p>Constructor for BulkEditorSearchComposite.</p>
-        *
-        * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
-        * @param style a int.
-        * @param editor a {@link org.eclipse.ui.IEditorPart} object.
-        */
-       public BulkEditorSearchComposite(IEditorPart editor, Composite parent, int style) {
-               super(parent, style);
-               this.editor = editor;
-               this.menuProvider = new BulkEditorSortMenuProvider();
-
-               createControl();
-       }
-
-       /*
-        * Creates the search control.
-        */
-       /**
-        * <p>createControl</p>
-        */
-       protected void createControl() {
-               createLayout();
-               createSearchTextField();
-               createToolBar();
-               registerAtFocusService();
-           setSearchEnabled(false);
-       }
-
-
-       /**
-        * Handles focus changes for the textfield.
-        */
-       private void registerAtFocusService() {
-               IFocusService focusService = 
-                       (IFocusService) PlatformUI.getWorkbench().getService(IFocusService.class);
-               if (focusService != null) {
-                       focusService.addFocusTracker(text, "bulkeditor.textControlId");
-               }
-       }
-
-
-       /**
-        * Creates the search toolbar.
-        */
-       private void createToolBar() {
-               final ToolBar toolBar = new ToolBar(this, SWT.NULL);
-               
-               toolItem = new ToolItem(toolBar, SWT.DROP_DOWN | SWT.BORDER);
-               toolItem.setText("Search");
-               
-               DropdownMenu dropdownMenu = new DropdownMenu(toolItem);
-           toolItem.addSelectionListener(dropdownMenu);
-       }
-
-
-       /**
-        * Creates the search textfield.
-        */
-       private void createSearchTextField() {
-               text = new Text(this, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
-               text.setText(DEFAULT_TEXT);
-               text.setForeground(BulkEditorUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
-               
-               text.addFocusListener(new FocusListener() {
-
-                       public void focusGained(FocusEvent e) {
-                               text.setForeground(BulkEditorUtil.getColor(Resources.SEARCH_VIEW_FOCUS));
-                               if (DEFAULT_TEXT.equals(text.getText())) {
-                                       text.setText("");
-                               }
-                       }
-
-                       public void focusLost(FocusEvent e) {
-                               if (text.getText() == "") {
-                                       text.setForeground(BulkEditorUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
-                                       text.setText(DEFAULT_TEXT);                     
-                                   setSearchEnabled(false);            
-                               } else {
-                                   setSearchEnabled(true);                                     
-                               }
-                       }
-               });
-               
-               text.addKeyListener(new KeyAdapter() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
-                        */
-                       @Override
-                       public void keyReleased(KeyEvent e) {
-                               if (e.keyCode == SWT.CR) {
-                                       updateEditorInput();
-                               }
-                       }
-               });
-               
-               GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
-               text.setLayoutData(gridData);
-       }
-
-
-       /**
-        * Creates the search layout.
-        */
-       private void createLayout() {
-               GridLayout gridLayout = new GridLayout();
-               gridLayout.numColumns = 3;
-               gridLayout.marginHeight = 0;
-               gridLayout.marginWidth = 12;
-               setLayout(gridLayout);
-       }
-       
-       /*
-        * Toggles the availability of the search toolItem.
-        */
-       private void setSearchEnabled(boolean enabled) {
-//             toolItem.setEnabled(enabled);           
-       }
-       
-       /*
-        * Shows the results of the search.
-        */
-       private void updateEditorInput() {
-               
-               String searchString = getSearchString();
-               
-               if(!DEFAULT_TEXT.equals(searchString.trim()) && searchString.length() > 0){
-                       // update query in IEditorInput
-                       IEditorInput input = editor.getEditorInput();
-                       if (input instanceof AbstractBulkEditorInput) {
-                               ((AbstractBulkEditorInput) input).setQuery(new BulkEditorQuery(getSearchString(), getComparator()));
-                       }
-               }
-       }
-       
-       /*
-        * Handles drop down menu selection.
-        */
-       class DropdownMenu extends SelectionAdapter {
-
-               /**
-                * @param dropdown
-                */
-               public DropdownMenu(ToolItem dropdown) {
-                       sortMenu = new Menu(dropdown.getParent().getShell());
-                       
-                       MenuItem menuItem = new MenuItem(sortMenu, SWT.PUSH);
-                   menuItem.setText("Order by:");
-                   menuItem.setData(ORDER_BY);
-                       new MenuItem(sortMenu, SWT.SEPARATOR);
-
-                       menuProvider.fillMenu(editor.getEditorInput(), sortMenu);
-                       
-                       SelectionListener listener = new SortListSelectionListener();
-                       
-                       for (MenuItem item : sortMenu.getItems()) {
-                               if (item.getData() instanceof Comparator) {
-                                       item.addSelectionListener(listener);
-                               }
-                       }
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                */
-               public void widgetSelected(SelectionEvent event) {
-                       if (event.detail == SWT.ARROW) {
-                               ToolItem item = (ToolItem) event.widget;
-                               Rectangle rect = item.getBounds();
-                               Point pt = item.getParent().toDisplay(new Point(rect.x, rect.y));
-                               sortMenu.setLocation(pt.x, pt.y + rect.height);
-                               sortMenu.setVisible(true);
-                   } else {
-                       updateEditorInput();
-                   }
-               }
-       }
-
-       /*
-        * Handles search configuration selection.
-        */
-       class SortListSelectionListener extends SelectionAdapter {
-               
-               public void widgetSelected(SelectionEvent e) {
-                       for (MenuItem item : sortMenu.getItems()) {
-                               if (item.getData() instanceof Comparator) {
-                                       if (item.equals(e.getSource())) {
-                                               item.setSelection(true);
-                                       } else {
-                                               item.setSelection(false);
-                                       }
-                               }
-                       }                               
-               }
-       }
-       
-       /*
-        * Returns the current string in the search textfield.
-        * @return the content of the textfield
-        */
-       /**
-        * <p>getSearchString</p>
-        *
-        * @return a {@link java.lang.String} object.
-        */
-       public String getSearchString() {
-               return text.getText().trim();
-       }
-       
-       /*
-        * 
-        */
-       /**
-        * <p>getComparator</p>
-        *
-        * @return a {@link java.util.Comparator} object.
-        */
-       public Comparator getComparator() {
-               Comparator comparator;
-               for (MenuItem item : sortMenu.getItems()) {
-                       if (item.getSelection() == true && item.getData() instanceof Comparator) {
-                               return (Comparator) item.getData();
-                       }
-               }
-               return null;
-       };
-       
-       /*
-        * 
-        */
-       class BulkEditorQuery implements IBulkEditorQuery {
-               
-               private String searchString;
-               private Comparator comparator;
-               private IIdentifiableEntityServiceConfigurator searchConfigurator;
-
-               BulkEditorQuery (String searchString, Comparator comparator) {
-                       this.searchString = searchString;
-                       this.comparator = comparator;
-                       
-                       searchConfigurator = IdentifiableServiceConfiguratorImpl.NewInstance();
-                       searchConfigurator.setTitleSearchString(searchString);
-               }
-
-               /* (non-Javadoc)
-                * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery#getComparator()
-                */
-               public Comparator getComparator() {
-                       return comparator;
-               }
-
-               /* (non-Javadoc)
-                * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery#getSearchString()
-                */
-               public String getSearchString() {
-                       return searchString;
-               }
-
-               /* (non-Javadoc)
-                * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery#getSearchConfigurator()
-                */
-               public IIdentifiableEntityServiceConfigurator getSearchConfigurator() {
-                       return searchConfigurator;
-               }
-       }
-}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSortCombo.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSortCombo.java
new file mode 100644 (file)
index 0000000..a93f2ba
--- /dev/null
@@ -0,0 +1,89 @@
+// $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.bulkeditor;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public class BulkEditorSortCombo {
+
+       private Label label;
+       
+       private Combo combo;
+       
+       private List<IBulkEditorSortProvider> sortProviders;
+               
+       private List<Comparator> comparators = new ArrayList<Comparator>();
+       
+       private int selectedIndex = 0;
+       
+       /**
+        * 
+        */
+       public BulkEditorSortCombo(Composite parent, List<IBulkEditorSortProvider> sortProviders) {
+               this.sortProviders = sortProviders;
+               if(! sortProviders.isEmpty()){
+                       label = new Label(parent, SWT.NONE);
+                       label.setText("Sort by");
+                       
+                       combo = new Combo(parent, SWT.DROP_DOWN);
+                       
+                       fillCombo();
+               }               
+       }
+       
+       /**
+        * 
+        */
+       private void fillCombo() {
+               for(IBulkEditorSortProvider sortProvider : sortProviders){
+                       Set<String> names = sortProvider.getComparatorNames();
+                       for(String name : names){
+                               combo.add(name);
+                               comparators.add(sortProvider.getComparatorByName(name));
+                       }
+               }
+               
+               combo.addSelectionListener(new SelectionListener());
+               combo.select(selectedIndex);
+       }
+       
+       private class SelectionListener extends SelectionAdapter{
+               /* (non-Javadoc)
+                * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+                */
+               @Override
+               public void widgetSelected(SelectionEvent e) {
+                       selectedIndex = combo.getSelectionIndex();
+               }
+       }
+       
+       /**
+        * 
+        */
+       public Comparator getSelection() {
+               return comparators.get(selectedIndex);
+       }
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSortMenuProvider.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorSortMenuProvider.java
deleted file mode 100644 (file)
index a82012d..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor;
-
-import java.util.Comparator;
-
-import org.apache.log4j.Logger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorInput;
-
-import eu.etaxonomy.cdm.model.common.TimePeriod;
-import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.taxeditor.annotatedlineeditor.IdentifiableEntityComparator;
-import eu.etaxonomy.taxeditor.bulkeditor.input.ReferenceEditorInput;
-
-/**
- * <p>BulkEditorSortMenuProvider class.</p>
- *
- * @author p.ciardelli
- * @created 19.08.2009
- * @version 1.0
- */
-public class BulkEditorSortMenuProvider implements IBulkEditorSortMenuProvider {
-       private static final Logger logger = Logger
-                       .getLogger(BulkEditorSortMenuProvider.class);
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortMenuProvider#fillMenu(org.eclipse.ui.IEditorInput, java.awt.Menu)
-        */
-       /** {@inheritDoc} */
-       public Menu fillMenu(IEditorInput input, Menu menu) {
-               addMenuItem(menu, "Title cache", new IdentifiableEntityComparator(), true);
-               
-               if (input instanceof ReferenceEditorInput) {
-                       addMenuItem(menu, "Year", new ReferenceYearComparator(), false);
-               }
-
-               if (input instanceof ReferenceEditorInput) {
-                       addMenuItem(menu, "Reference Type", new ReferenceTypeComparator(), false);
-               }
-               
-               return menu;
-       }
-       
-       /**
-        * @param menu 
-        * @param string
-        * @param identifiableEntityComparator
-        * @return 
-        */
-       private MenuItem addMenuItem(Menu menu, String text, Comparator comparator, boolean selected) {
-               MenuItem menuItem = new MenuItem(menu, SWT.CHECK);
-               menuItem.setText(text);
-               menuItem.setData(comparator);
-               menuItem.setSelection(selected);
-               return menuItem;
-       }
-       
-       class ReferenceYearComparator implements Comparator {
-               
-               /**
-                * @param o1
-                * @return
-                */
-               private String getYearString(Object o) {
-                       TimePeriod datePublished = o == null || !(o instanceof Reference) ? 
-                                       null : ((Reference) o).getDatePublished(); 
-                       return datePublished == null? null : datePublished.toString();
-               }
-               
-               /* (non-Javadoc)
-                * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-                */
-               public int compare(Object o1, Object o2) {
-                       String yearString1 = getYearString(o1);
-                       String yearString2 = getYearString(o2);
-                       if (yearString1 == null) {
-                               if (yearString2 == null) {
-                                       return 0;
-                               } else {
-                                       return -1;
-                               }
-                       }
-                       if (yearString2 == null) {
-                               return 1;
-                       }
-                       int returnVal = yearString1.compareToIgnoreCase(yearString2);
-                       if (returnVal == 0) {
-                               return new IdentifiableEntityComparator().compare(o1, 02);
-                       } else {
-                               return returnVal;
-                       }
-               }               
-       }
-       
-       class ReferenceTypeComparator implements Comparator {
-               
-               /* (non-Javadoc)
-                * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-                */
-               public int compare(Object o1, Object o2) {
-                       String typeString1 = o1.getClass().toString();
-                       String typeString2 = o2.getClass().toString();
-                       if (typeString1 == null) {
-                               if (typeString2 == null) {
-                                       return 0;
-                               } else {
-                                       return -1;
-                               }
-                       }
-                       if (typeString2 == null) {
-                               return 1;
-                       }
-                       int returnVal = typeString1.compareToIgnoreCase(typeString2);
-                       if (returnVal == 0) {
-                               return new IdentifiableEntityComparator().compare(o1, 02);
-                       } else {
-                               return returnVal;
-                       }
-               }               
-       }
-}
index f338e7e6a3ee428e748a6227481d8ebceb10573e..879bd8ea5378d2258893a62c5bec8a8db2dca244 100644 (file)
@@ -11,6 +11,8 @@
 package eu.etaxonomy.taxeditor.bulkeditor;
 
 import org.apache.log4j.Logger;
+import org.eclipse.core.commands.operations.IOperationHistory;
+import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
@@ -30,7 +32,6 @@ import eu.etaxonomy.taxeditor.model.AbstractUtility;
  * @version 1.0
  */
 public class BulkEditorUtil extends AbstractUtility{
-       private static final Logger logger = Logger.getLogger(BulkEditorUtil.class);
        
        /**
         * Opens a new editor window with the given input
@@ -76,4 +77,13 @@ public class BulkEditorUtil extends AbstractUtility{
        protected static String getPluginId(){
                return TaxeditorBulkeditorPlugin.PLUGIN_ID;
        }
+       
+       /**
+        * <p>getUndoContext</p>
+        *
+        * @return a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+        */
+       public static IUndoContext getUndoContext(){
+               return IOperationHistory.GLOBAL_UNDO_CONTEXT;
+       }
 }
index 0e3681c0891597f0047bfb8c7b8028ab07600592..efb1c720b4ee8abd47c58d31d25d27771ecd8589 100644 (file)
@@ -9,7 +9,6 @@
 */
 package eu.etaxonomy.taxeditor.bulkeditor;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.presentation.IPresentationReconciler;
 import org.eclipse.jface.text.presentation.PresentationReconciler;
@@ -17,8 +16,8 @@ import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.text.source.SourceViewerConfiguration;
 
-import eu.etaxonomy.taxeditor.annotatedlineeditor.SupplementalTextScanner;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.SupplementalTextScanner;
 
 
 /**
@@ -29,8 +28,6 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy;
  * @version 1.0
  */
 public class BulkEditorViewerConfiguration extends SourceViewerConfiguration {
-       private static final Logger logger = Logger
-                       .getLogger(BulkEditorViewerConfiguration.class);
        
        private ILineDisplayStrategy lineDisplayStrategy;
 
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorQuery.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorQuery.java
deleted file mode 100644 (file)
index ef711b4..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor;
-
-import java.util.Comparator;
-
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-
-/**
- * <p>IBulkEditorQuery interface.</p>
- *
- * @author p.ciardelli
- * @created 19.08.2009
- * @version 1.0
- */
-public interface IBulkEditorQuery {
-
-       /**
-        * <p>getSearchString</p>
-        *
-        * @return a {@link java.lang.String} object.
-        */
-       String getSearchString();
-       
-       /**
-        * <p>getSearchConfigurator</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator} object.
-        */
-       IIdentifiableEntityServiceConfigurator getSearchConfigurator();
-       
-       /**
-        * <p>getComparator</p>
-        *
-        * @return a {@link java.util.Comparator} object.
-        */
-       Comparator getComparator();
-}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortMenuProvider.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortMenuProvider.java
deleted file mode 100644 (file)
index 029ee59..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor;
-
-
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IEditorInput;
-
-/**
- * <p>IBulkEditorSortMenuProvider interface.</p>
- *
- * @author p.ciardelli
- * @created 19.08.2009
- * @version 1.0
- */
-public interface IBulkEditorSortMenuProvider {
-       
-       /**
-        * Fills a menu with MenuItems representing sort options specific to the IEditorInput.
-        * <p>
-        * Populates each MenuItem with a Comparator associated with the sort option.
-        *
-        * @param input a {@link org.eclipse.ui.IEditorInput} object.
-        * @param menu a {@link org.eclipse.swt.widgets.Menu} object.
-        * @return a {@link org.eclipse.swt.widgets.Menu} object.
-        */
-       Menu fillMenu(IEditorInput input, Menu menu);
-}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortProvider.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortProvider.java
new file mode 100644 (file)
index 0000000..c60d3e7
--- /dev/null
@@ -0,0 +1,32 @@
+// $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.bulkeditor;
+
+import java.util.Comparator;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public interface IBulkEditorSortProvider<T> {
+
+       /**
+        * 
+        */
+       public Map<String, Comparator<T>> getComparators();     
+       
+       public Set<String> getComparatorNames();
+       
+       public Comparator<T> getComparatorByName(String name);
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicMarkerTypeEditingMenu.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicMarkerTypeEditingMenu.java
new file mode 100644 (file)
index 0000000..117f32e
--- /dev/null
@@ -0,0 +1,102 @@
+// $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.bulkeditor.command;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.NotEnabledException;
+import org.eclipse.core.commands.NotHandledException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.jface.action.ContributionItem;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.CompoundContributionItem;
+import org.eclipse.ui.handlers.IHandlerService;
+
+import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 13, 2010
+ * @version 1.0
+ */
+public class DynamicMarkerTypeEditingMenu extends CompoundContributionItem {
+       
+       private IHandlerService handlerService = 
+               (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
+        */
+       @Override
+       protected IContributionItem[] getContributionItems() {
+
+               return new IContributionItem[] {
+                               new ContributionItem() {
+                                       public void fill(Menu menu, int index){
+                                               for(MarkerType markerType : CdmStore.getTermManager().getPreferredMarkerTypes()){
+                                                       createMenuItem(menu, markerType);
+                                               }
+                                       }
+                               }
+               };
+       }
+       
+       private void createMenuItem(Menu menu, final MarkerType markerType) {
+
+               MenuItem subMenuItem = new MenuItem(menu, SWT.CASCADE);
+               subMenuItem.setText(String.format("Set Flag '%s'", markerType.getLabel()));
+               
+               Menu subMenu = new Menu(menu.getShell(), SWT.DROP_DOWN);
+               subMenuItem.setMenu(subMenu);
+               
+               MenuItem trueItem = new MenuItem(subMenu, SWT.PUSH);
+               trueItem.setText("Yes");
+               trueItem.addSelectionListener(new SelectionAdapter() {
+                       public void widgetSelected(SelectionEvent e) {
+                               doSetFlagCommand(markerType, true);
+                       }       
+               });
+               
+               MenuItem falseItem = new MenuItem(subMenu, SWT.PUSH);
+               falseItem.setText("No");
+               falseItem.addSelectionListener(new SelectionAdapter() {
+                       public void widgetSelected(SelectionEvent e) {
+                               doSetFlagCommand(markerType, false);
+                       }                                               
+               });
+       }
+       
+       private void doSetFlagCommand(MarkerType markerType, boolean flag) {
+               try {
+                       Event event = new Event();
+                       event.data = new Object[]{markerType, flag};
+                       handlerService.executeCommand("taxeditor-bulkeditor.command.setMarkerFlag", event);
+               } catch (ExecutionException e) {
+                       BulkEditorUtil.error(getClass(), e);
+               } catch (NotDefinedException e) {
+                       BulkEditorUtil.error(getClass(), e);
+               } catch (NotEnabledException e) {
+                       BulkEditorUtil.error(getClass(), e);
+               } catch (NotHandledException e) {
+                       BulkEditorUtil.error(getClass(), e);
+               }
+               
+       }               
+
+}
index 6e7f5400d0217c1f24a35e6fbb798009717c45be..60535de12ff220caf42a405cc792dbf448bfd1d4 100644 (file)
@@ -20,15 +20,16 @@ import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.actions.CompoundContributionItem;
 import org.eclipse.ui.handlers.IHandlerService;
 
-import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineDocumentProvider;
-import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
+import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 
 /**
  * <p>DynamicNewObjectMenu class.</p>
@@ -37,11 +38,12 @@ import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
  * @created 17.04.2009
  * @version 1.0
  */
-@Deprecated // remove this
 public class DynamicNewObjectMenu extends CompoundContributionItem {
        private static final Logger logger = Logger
                        .getLogger(DynamicNewObjectMenu.class);
        
+       private IHandlerService handlerService = (IHandlerService) BulkEditorUtil.getService(IHandlerService.class);
+       private Map<Object, String> classLabelPairs;
        /* (non-Javadoc)
         * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
         */
@@ -49,50 +51,55 @@ public class DynamicNewObjectMenu extends CompoundContributionItem {
        @Override
        protected IContributionItem[] getContributionItems() {
                
+               classLabelPairs = getClassLabelPairs();
+               
                return new IContributionItem[] {
                                new ContributionItem() {
                                        public void fill(Menu menu, int index){
-                                               
-                                               final Map<Object, String> classLabelPairs = getClassLabelPairs();
-                                               
-                                               final IHandlerService handlerService = 
-                                                                               (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
-                                               
                                                for(final Object key : classLabelPairs.keySet()){
-                                                       MenuItem menuItem = new MenuItem(menu, -1);
-                                                       menuItem.setText(classLabelPairs.get(key));
-                                                       menuItem.addSelectionListener(new SelectionListener(){
-                               
-                                                               public void widgetDefaultSelected(SelectionEvent e) {}
-                               
-                                                               public void widgetSelected(SelectionEvent ev) {
-                                                                       Event event = new Event();
-                                                                       event.data = key;
-                                                                       event.text = classLabelPairs.get(key);
-                                                                       try {
-                                                                               handlerService.executeCommand(IBulkEditorConstants.DYNAMIC_OPEN_OBJECT_ID, event);
-                                                                       } catch (Exception e) {
-                                                                               logger.error("Error executing command", e);
-                                                                               throw new RuntimeException("Error executing command", e);
-                                                                       }
-                                                               }                               
-                                                       });
+                                                       createMenuItem(menu, key);
                                                }                       
                                        }
                                }
                };
        }
 
+       private void createMenuItem(Menu menu, final Object key){
+               MenuItem menuItem = new MenuItem(menu, -1);
+               menuItem.setText(classLabelPairs.get(key));
+               menuItem.addSelectionListener(new SelectionListener(){
+
+                       public void widgetDefaultSelected(SelectionEvent e) {}
+
+                       public void widgetSelected(SelectionEvent ev) {
+                               Event event = new Event();
+                               event.data = key;
+                               event.text = classLabelPairs.get(key);
+                               try {
+                                       handlerService.executeCommand(IBulkEditorConstants.DYNAMIC_OPEN_OBJECT_ID, event);
+                               } catch (Exception e) {
+                                       logger.error("Error executing command", e);
+                                       throw new RuntimeException("Error executing command", e);
+                               }
+                       }                               
+               });
+       }
+       
        /**
         * Get class label pairs from Annotated Line Editor's entity creator.
         * @return
         */
        private Map<Object, String> getClassLabelPairs() {
                IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-               if (editor == null || !(editor instanceof AnnotatedLineEditor) || !(((AnnotatedLineEditor) editor).getDocumentProvider() instanceof AnnotatedLineDocumentProvider)) {
-                       return null;
+               if (editor != null){
+                       IEditorInput input = editor.getEditorInput();
+                       
+                       if(input instanceof AbstractBulkEditorInput){
+                               IEntityCreator<?> entityCreator = ((AbstractBulkEditorInput) input).getEntityCreator();
+                               return entityCreator.getKeyLabelPairs();
+                       }
                }
-               IEntityCreator<?> entityCreator = ((AnnotatedLineDocumentProvider) ((AnnotatedLineEditor) editor).getDocumentProvider()).getEntityCreator(editor.getEditorInput());
-               return entityCreator.getKeyLabelPairs();
+               
+               return null;
        }       
 }
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/SetMarkerContributionItems.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/SetMarkerContributionItems.java
deleted file mode 100644 (file)
index 0dd7ebf..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor.command;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.handlers.IHandlerService;
-
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.TermStore;
-
-/**
- * <p>SetMarkerContributionItems class.</p>
- *
- * @author p.ciardelli
- * @created 20.10.2009
- * @version 1.0
- */
-public class SetMarkerContributionItems extends CompoundContributionItem {
-       private static final Logger logger = Logger
-                       .getLogger(SetMarkerContributionItems.class);
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected IContributionItem[] getContributionItems() {
-                       
-               List<IContributionItem> contributions = new ArrayList<IContributionItem>();
-               
-               IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-               if (editor.getEditorInput() instanceof AbstractBulkEditorInput) {
-                       AbstractBulkEditorInput input = (AbstractBulkEditorInput) editor.getEditorInput();              
-                       for (final MarkerType markerType : TermStore.getNonTechnicalMarkerTypes()) {
-                               if (input.isMarkerTypeEditingEnabled(markerType) && PreferencesUtil.getEditMarkerTypePreference(input, markerType)) {
-                                       contributions.add(new ContributionItem() {
-                                               /* (non-Javadoc)
-                                                * @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
-                                                */
-                                               @Override
-                                               public void fill(Menu menu, int index) {
-                                                       MenuItem subMenuItem = new MenuItem(menu, SWT.CASCADE, index);
-                                                       subMenuItem.setText("Set Flag - \"" + markerType.getLabel() + "\"");
-                                                       Menu subMenu = new Menu(menu.getShell(), SWT.DROP_DOWN);
-                                                       subMenuItem.setMenu(subMenu);
-                                                       
-                                                       MenuItem trueItem = new MenuItem(subMenu, SWT.PUSH);
-                                                       trueItem.setText("true");
-                                                       trueItem.addSelectionListener(new SelectionAdapter() {
-                                                               public void widgetSelected(SelectionEvent e) {
-                                                                       doSetFlagCommand(markerType, true);
-                                                               }       
-                                                       });
-                                                       
-                                                       MenuItem falseItem = new MenuItem(subMenu, SWT.PUSH);
-                                                       falseItem.setText("false");
-                                                       falseItem.addSelectionListener(new SelectionAdapter() {
-                                                               public void widgetSelected(SelectionEvent e) {
-                                                                       doSetFlagCommand(markerType, false);
-                                                               }                                               
-                                                       });
-                                               }
-                                       });
-                               }
-                       }
-               }
-               return (IContributionItem[]) contributions.toArray(new IContributionItem[contributions.size()]);
-       }
-
-       private void doSetFlagCommand(MarkerType markerType, boolean flag) {
-               try {
-                       IHandlerService handlerService = 
-                               (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
-                       Event event = new Event();
-                       event.data = markerType;
-                       if (flag) {
-                               handlerService.executeCommand("taxeditor-bulkeditor.command.setMarkerFlagTrue", event);
-                       } else {
-                               handlerService.executeCommand("taxeditor-bulkeditor.command.setMarkerFlagFalse", event);
-                       }
-               } catch (Exception e) {
-                       // TODO Auto-generated catch block
-                       e.printStackTrace();
-               }
-       }                                       
-}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagFalseHandler.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagFalseHandler.java
deleted file mode 100644 (file)
index bdff2f9..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor.handler;
-
-import java.beans.PropertyChangeEvent;
-import java.util.Iterator;
-
-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.text.TextSelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
-import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-
-/**
- * <p>SetMarkerFlagFalseHandler class.</p>
- *
- * @author p.ciardelli
- * @created 20.10.2009
- * @version 1.0
- */
-public class SetMarkerFlagFalseHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(SetMarkerFlagFalseHandler.class);
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               
-               // TODO merge this w SetMarkerFlagTrueHandler
-               
-               Object data = ((Event) event.getTrigger()).data;
-               
-               if (HandlerUtil.getCurrentSelection(event) instanceof TextSelection 
-                                       && HandlerUtil.getActiveEditor(event) instanceof BulkEditor && data instanceof MarkerType) {
-                       TextSelection selection = (TextSelection) HandlerUtil.getCurrentSelection(event);
-                       BulkEditor editor = (BulkEditor) HandlerUtil.getActiveEditor(event);
-                       
-                       LineAnnotationModel model = (LineAnnotationModel) editor.getDocumentProvider().getAnnotationModel(editor.getEditorInput());
-                       if (model != null) {
-                               Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
-                               while (iter.hasNext()) {
-                                       Object next = iter.next();
-                                       if (next instanceof LineAnnotation) {
-                                               Object entity = ((LineAnnotation) next).getEntity();
-                                               createOrUpdateMarker((AnnotatableEntity) entity, (MarkerType) data, false);
-                                               ((CdmBase) entity).firePropertyChange(new PropertyChangeEvent(entity, "", null, null));
-                                       }
-                               }
-                       }
-               }
-               return null;
-       }
-
-       /**
-        * @param entity
-        * @param publish
-        * @param flag
-        */
-       private void createOrUpdateMarker(AnnotatableEntity entity,
-                       MarkerType markerType, boolean flag) {
-               for (Marker marker : entity.getMarkers()) {
-                       if (markerType.equals(marker.getMarkerType())) {
-                               marker.setFlag(flag);
-                               return;
-                       }
-               }
-               entity.addMarker(Marker.NewInstance(markerType, flag));
-       }
-}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagHandler.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagHandler.java
new file mode 100644 (file)
index 0000000..916507b
--- /dev/null
@@ -0,0 +1,83 @@
+// $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.bulkeditor.handler;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
+import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.bulkeditor.operation.SetMarkerFlagOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+
+/**
+ * <p>SetMarkerFlagTrueHandler class.</p>
+ *
+ * @author p.ciardelli
+ * @created 20.10.2009
+ * @version 1.0
+ */
+public class SetMarkerFlagHandler extends AbstractHandler {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+        */
+       /** {@inheritDoc} */
+       public Object execute(ExecutionEvent event) throws ExecutionException {
+               
+               ISelection selection = HandlerUtil.getCurrentSelection(event);
+               
+               IEditorPart editor = HandlerUtil.getActiveEditor(event);
+               
+               Object[] data = (Object[]) ((Event) event.getTrigger()).data;
+               
+               if (selection instanceof TextSelection 
+                                       && editor instanceof BulkEditor) {
+                       TextSelection textSelection = (TextSelection) selection;
+                       BulkEditor bulkEditor = (BulkEditor) editor;
+                       
+                       LineAnnotationModel model = (LineAnnotationModel) bulkEditor.getDocumentProvider().getAnnotationModel(editor.getEditorInput());
+                       if (model != null) {
+                               Iterator iter = model.getAnnotationIterator(textSelection.getOffset(), textSelection.getLength(), true, true);
+                               
+                               Set<IAnnotatableEntity> annotatableEntities = new HashSet<IAnnotatableEntity>();
+                               while (iter.hasNext()) {
+                                       Object next = iter.next();
+                                       if (next instanceof LineAnnotation) {
+                                               Object entity = ((LineAnnotation) next).getEntity();
+                                               
+                                               if(entity instanceof IAnnotatableEntity){
+                                                       annotatableEntities.add((IAnnotatableEntity) entity);
+                                               }
+                                       }
+                               }
+                                                               
+                               AbstractPostOperation operation = new SetMarkerFlagOperation("Set Marker", BulkEditorUtil.getUndoContext(), annotatableEntities, (MarkerType) data[0], (Boolean) data[1], bulkEditor);
+                               BulkEditorUtil.executeOperation(operation);
+                       }
+               }
+               return null;
+       }
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagTrueHandler.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/SetMarkerFlagTrueHandler.java
deleted file mode 100644 (file)
index dc7cfa4..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.bulkeditor.handler;
-
-import java.beans.PropertyChangeEvent;
-import java.util.Iterator;
-
-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.text.TextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
-import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.model.LineSelection;
-
-/**
- * <p>SetMarkerFlagTrueHandler class.</p>
- *
- * @author p.ciardelli
- * @created 20.10.2009
- * @version 1.0
- */
-public class SetMarkerFlagTrueHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(SetMarkerFlagTrueHandler.class);
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               
-               Object data = ((Event) event.getTrigger()).data;
-               
-               if (HandlerUtil.getCurrentSelection(event) instanceof TextSelection 
-                                       && HandlerUtil.getActiveEditor(event) instanceof BulkEditor && data instanceof MarkerType) {
-                       TextSelection selection = (TextSelection) HandlerUtil.getCurrentSelection(event);
-                       BulkEditor editor = (BulkEditor) HandlerUtil.getActiveEditor(event);
-                       
-                       LineAnnotationModel model = (LineAnnotationModel) editor.getDocumentProvider().getAnnotationModel(editor.getEditorInput());
-                       if (model != null) {
-                               Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
-                               while (iter.hasNext()) {
-                                       Object next = iter.next();
-                                       if (next instanceof LineAnnotation) {
-                                               Object entity = ((LineAnnotation) next).getEntity();
-                                               createOrUpdateMarker((AnnotatableEntity) entity, (MarkerType) data, true);
-                                               ((CdmBase) entity).firePropertyChange(new PropertyChangeEvent(entity, "", null, null));
-                                       }
-                               }
-                       }
-               }
-               return null;
-       }
-
-       /**
-        * @param entity
-        * @param publish
-        * @param b
-        */
-       private void createOrUpdateMarker(AnnotatableEntity entity,
-                       MarkerType markerType, boolean flag) {
-               for (Marker marker : entity.getMarkers()) {
-                       if (markerType.equals(marker.getMarkerType())) {
-                               marker.setFlag(flag);
-                               return;
-                       }
-               }
-               entity.addMarker(Marker.NewInstance(markerType, flag));
-       }
-}
index 09f8ad0733384646a2d4565c7a5fb4e704d0978a..d47572ee95308d6369bfbfdd747cace6862a2ce9 100644 (file)
@@ -9,27 +9,31 @@
 */
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
-import java.beans.PropertyChangeSupport;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPersistableElement;
 
+import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+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.reference.Reference;
+import eu.etaxonomy.cdm.strategy.merge.IMergable;
 import eu.etaxonomy.cdm.strategy.merge.MergeException;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;
-import eu.etaxonomy.taxeditor.annotatedlineeditor.IdentifiableEntityComparator;
-import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorInputTypeValues.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.CdmBaseSortProvider;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.TitleCacheComparator;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -40,28 +44,18 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  * @param <T>
  */
-public abstract class AbstractBulkEditorInput<T> extends PropertyChangeSupport implements IEditorInput, IEntityPersistenceService {
-       private static final Logger logger = Logger
-                       .getLogger(AbstractBulkEditorInput.class);
+public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEditorInput, IEntityPersistenceService<T> {
+
        /**
         * 
         */
        private static final long serialVersionUID = 416414530232743735L;
-       private String mode;
+
        private UUID entityUuid;
 
-       /**
-        * <p>Constructor for AbstractBulkEditorInput.</p>
-        *
-        * @param sourceBean a {@link java.lang.Object} object.
-        * @param <T> a T object.
-        */
-       public AbstractBulkEditorInput(Object sourceBean) {
-               super(sourceBean);
-       }
+       private List<T> model;
        
-       /** Constant <code>QUERY_CHANGED="query_changed"</code> */
-       public static final String QUERY_CHANGED = "query_changed";
+       private IEntityCreator<T> entityCreator;
        
        /**
         * <p>NewInstance</p>
@@ -91,38 +85,6 @@ public abstract class AbstractBulkEditorInput<T> extends PropertyChangeSupport i
                return editorInput;
        }
        
-       /**
-        * Queries the service for entities that match the criterias defined in the given
-        * search configurator
-        *
-        * @return a {@link java.util.List} object.
-        */
-       public List<T> listEntities(){
-               if(getEntityUuid() != null){
-                       List<T> entityList = new ArrayList<T>();
-                       T entity = loadEntity(getEntityUuid());
-                       entityList.add(entity);
-                       return entityList;
-               }
-               
-               if(query != null){
-                       
-                       String queryString = query.getSearchString();
-                       IIdentifiableEntityServiceConfigurator configurator = query.getSearchConfigurator();
-                       Comparator queryComparator = (query.getComparator() != null) ? query.getComparator() : new IdentifiableEntityComparator();
-                       
-                       List<T> entityList = listEntities(configurator);
-                       
-                       Collections.sort(entityList, queryComparator);                  
-                       
-                       // reset query
-                       setQuery(null);
-                       
-                       return entityList;
-               }
-               return null;
-       }
-       
        /**
         * <p>listEntities</p>
         *
@@ -152,7 +114,6 @@ public abstract class AbstractBulkEditorInput<T> extends PropertyChangeSupport i
                return entityUuid;
        }
 
-       private IBulkEditorQuery query;
                        
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#exists()
@@ -206,22 +167,29 @@ public abstract class AbstractBulkEditorInput<T> extends PropertyChangeSupport i
         *
         * @param bulkEditorQuery a {@link eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery} object.
         */
-       public void setQuery(IBulkEditorQuery bulkEditorQuery) {
-                               
-               this.query = bulkEditorQuery;
+       public void performSearch(final BulkEditorQuery bulkEditorQuery) {
+               
+               List<T> entityList = new ArrayList<T>();
                
-               if (query != null) {
-                       firePropertyChange(QUERY_CHANGED, null, null);
+               if(getEntityUuid() != null){
+                       
+                       T entity = loadEntity(getEntityUuid());
+                       entityList.add(entity);
+                       model = entityList;
                }
-       }
-       
-       /**
-        * <p>Getter for the field <code>query</code>.</p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery} object.
-        */
-       public IBulkEditorQuery getQuery() {
-               return query;
+               else if(bulkEditorQuery != null){
+                       
+                       String queryString = bulkEditorQuery.getSearchString();
+                       IIdentifiableEntityServiceConfigurator configurator = bulkEditorQuery.getSearchConfigurator();
+                       Comparator queryComparator = (bulkEditorQuery.getComparator() != null) ? bulkEditorQuery.getComparator() : new TitleCacheComparator();
+                       
+                       entityList = listEntities(configurator);
+                       
+                       Collections.sort(entityList, queryComparator);                  
+                       
+               }
+               
+               model = entityList;
        }
        
        /**
@@ -243,27 +211,17 @@ public abstract class AbstractBulkEditorInput<T> extends PropertyChangeSupport i
                return false;
        }
        
-       /**
-        * <p>isSingleEntityMode</p>
-        *
-        * @return a boolean.
-        */
-       public boolean isSingleEntityMode(){
-               return getEntityUuid() != null;
-       }
-       
        /*
         * (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#merge(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
         */
        /** {@inheritDoc} */
-       public boolean merge(Object entity, Object mergeTarget) {
-               logger.info("Merge "  + entity + " into " + mergeTarget);
-               if (entity instanceof Reference) {
+       public boolean merge(T entity, T mergeTarget) {
+               if (entity instanceof IMergable) {
                        try {
-                               CdmStore.getCommonService().merge((Reference) mergeTarget, (Reference) entity, null);
+                               CdmStore.getService(ICommonService.class).merge((IMergable)mergeTarget, (IMergable)entity, null);
                        } catch (MergeException e) {
-                               logger.error("Problems merging objects", e);
+                               BulkEditorUtil.error(getClass(), e);
                        }
                }
                return true;
@@ -274,7 +232,46 @@ public abstract class AbstractBulkEditorInput<T> extends PropertyChangeSupport i
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#create(eu.etaxonomy.cdm.model.common.IdentifiableEntity)
         */
        /** {@inheritDoc} */
-       public boolean create(Object entity) {
+       public boolean create(T entity) {
                return save(entity);            
        };
+       
+       public IEntityCreator<T> getEntityCreator(){
+               if(entityCreator == null){
+                       entityCreator = createEntityCreator();
+               }
+               return entityCreator;
+       }
+
+       /**
+        * @return
+        */
+       protected abstract IEntityCreator<T> createEntityCreator();
+
+       /**
+        * The default implementation returns an empty list of sort providers.
+        * @return
+        */
+       public List<IBulkEditorSortProvider<T>> getSortProviders(){
+               List<IBulkEditorSortProvider<T>> sortProviders = new ArrayList<IBulkEditorSortProvider<T>>();
+               
+               sortProviders.add(new CdmBaseSortProvider<T>());
+               
+               return sortProviders;
+       }
+
+       /**
+        * @param entity
+        * @return
+        */
+       public String getTypeText(Object entity){
+               return entity.getClass().getSimpleName();
+       }
+
+       /**
+        * @return
+        */
+       public List<?> getModel() {
+               return model;
+       }
 }
index 41ad7029a1fc3afeae9a9abd5e09496b90150da3..5441c2bb4738447b183637889fa6da2e9f6ded3b 100644 (file)
@@ -13,9 +13,14 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
+import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorInputTypeValues.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.AgentCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
@@ -28,18 +33,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class AgentEditorInput extends AbstractBulkEditorInput<AgentBase> {
 
+       /**
+        * 
+        */
+       private static final long serialVersionUID = 3387950621617078479L;
+
        /** Constant <code>ID="bulkeditor.input.author"</code> */
        public static final String ID = "bulkeditor.input.author";
        
        private static AgentEditorInput instance;
 
-       /**
-        * <p>Constructor for AgentEditorInput.</p>
-        */
-       public AgentEditorInput() {
-               super(new Object());
-       }
-
        /**
         * <p>getID</p>
         *
@@ -96,7 +99,7 @@ public class AgentEditorInput extends AbstractBulkEditorInput<AgentBase> {
 
        /** {@inheritDoc} */
        @Override
-       public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
+       public List<AgentBase> listEntities(IIdentifiableEntityServiceConfigurator configurator) {
                return CdmStore.getSearchManager().findTeamOrPersons(configurator);
        }
 
@@ -104,16 +107,36 @@ public class AgentEditorInput extends AbstractBulkEditorInput<AgentBase> {
        @Override
        public AgentBase loadEntity(UUID uuid) {
                List<String> propertyPaths = Arrays.asList(new String[]{}); 
-               return CdmStore.getAgentService().load(uuid, propertyPaths);
+               return CdmStore.getService(IAgentService.class).load(uuid, propertyPaths);
        }
 
        /** {@inheritDoc} */
-       public boolean delete(Object entity) {
-               return CdmStore.getAgentService().delete((AgentBase) entity) != null;                   
+       public boolean delete(AgentBase entity) {
+               return CdmStore.getService(IAgentService.class).delete(entity) != null;                 
        }
 
        /** {@inheritDoc} */
-       public boolean save(Object entity) {
-               return CdmStore.getAgentService().saveOrUpdate((AgentBase) entity) != null;
+       public boolean save(AgentBase entity) {
+               return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
+        */
+       @Override
+       public List<IBulkEditorSortProvider<AgentBase>> getSortProviders() {
+               List<IBulkEditorSortProvider<AgentBase>> sortProviders = super.getSortProviders();
+               
+               sortProviders.add(new IdentifiableEntitySortProvider<AgentBase>());
+               
+               return sortProviders;
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
+        */
+       @Override
+       protected IEntityCreator<AgentBase> createEntityCreator() {
+               return new AgentCreator();
        }
 }
index dca5833f9969969f2cb95d3daa65c2b71d46f97f..9bfbba53f7fae0a46c74070ca8d1d6433dc826b7 100644 (file)
@@ -14,9 +14,14 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
+import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorInputTypeValues.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.NameCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -28,14 +33,11 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
 
-       private static NameEditorInput instance;
-
        /**
-        * <p>Constructor for NameEditorInput.</p>
+        * 
         */
-       public NameEditorInput() {
-               super(new Object());
-       }
+       private static final long serialVersionUID = -3085029575759626823L;
+       private static NameEditorInput instance;
 
        /** Constant <code>ID="bulkeditor.input.name"</code> */
        public static final String ID = "bulkeditor.input.name";
@@ -104,17 +106,48 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
        @Override
        public TaxonNameBase loadEntity(UUID uuid) {
                List<String> propertyPaths = Arrays.asList(new String[]{}); 
-               return CdmStore.getNameService().load(uuid, propertyPaths);
+               return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
        }
 
        /** {@inheritDoc} */
-       public boolean delete(Object entity) {
-               return CdmStore.getNameService().delete((TaxonNameBase) entity) != null;
+       public boolean delete(TaxonNameBase entity) {
+               return CdmStore.getService(INameService.class).delete(entity) != null;
        }
 
        /** {@inheritDoc} */
-       public boolean save(Object entity) {
-               return CdmStore.getNameService().saveOrUpdate((TaxonNameBase) entity) != null;
+       public boolean save(TaxonNameBase entity) {
+               return CdmStore.getService(INameService.class).saveOrUpdate(entity) != null;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
+        */
+       @Override
+       protected IEntityCreator<TaxonNameBase> createEntityCreator() {
+               return new NameCreator();
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
+        */
+       @Override
+       public List<IBulkEditorSortProvider<TaxonNameBase>> getSortProviders() {
+               List<IBulkEditorSortProvider<TaxonNameBase>> sortProviders = super.getSortProviders();
+               
+               sortProviders.add(new IdentifiableEntitySortProvider<TaxonNameBase>());
+               
+               return sortProviders;
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
+        */
+       @Override
+       public String getTypeText(Object entity) {
+               if(entity instanceof TaxonNameBase){
+                       return ((TaxonNameBase) entity).getNomenclaturalCode().getTitleCache();
+               }
+               return super.getTypeText(entity);
        }
 
 }
index 1b0e83eedd905f9c25a50a1b45a0d20af18d5cdc..76c2035555ab8978c0b74af6cc524b1e8aaff484 100644 (file)
@@ -15,11 +15,12 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
-import javax.naming.NameNotFoundException;
-
+import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.model.common.RelationshipBase;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorInputTypeValues.BulkEditorInputType;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -41,13 +42,6 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
        public static final String ID = "bulkeditor.input.nameRelationship";
 
        private static NameRelationshipEditorInput instance;
-       
-       /**
-        * <p>Constructor for NameRelationshipEditorInput.</p>
-        */
-       public NameRelationshipEditorInput() {
-               super(new Object());
-       }
 
        /**
         * <p>Getter for the field <code>instance</code>.</p>
@@ -84,7 +78,7 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
         */
        /** {@inheritDoc} */
        @Override
-       public boolean save(Object entity) {
+       public boolean save(NameRelationship entity) {
                // TODO Auto-generated method stub
                return false;
        }
@@ -94,7 +88,7 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
         */
        /** {@inheritDoc} */
        @Override
-       public boolean delete(Object entity) {
+       public boolean delete(NameRelationship entity) {
                // TODO Auto-generated method stub
                return false;
        }
@@ -107,7 +101,7 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
        protected List<NameRelationship> listEntities(
                        IIdentifiableEntityServiceConfigurator configurator) {
                List<NameRelationship> relationships = new ArrayList<NameRelationship>(); 
-               List<RelationshipBase> all = CdmStore.getNameService().getAllRelationships(0, 0);
+               List<RelationshipBase> all = CdmStore.getService(INameService.class).getAllRelationships(0, 0);
                
                for (RelationshipBase relationship : all){
                        if(relationship instanceof NameRelationship){
@@ -129,4 +123,25 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
                return null; // CdmStore.getNameService().load(entityUuid, propertyPaths);
        }
 
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
+        */
+       @Override
+       protected IEntityCreator<NameRelationship> createEntityCreator() {
+               BulkEditorUtil.notImplementedMessage(getClass());
+               return null;
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
+        */
+       @Override
+       public String getTypeText(Object entity) {
+               if(entity instanceof NameRelationship){
+                       return ((NameRelationship) entity).getType().getTitleCache();
+               }
+               
+               return super.getTypeText(entity);
+       }
+
 }
index 0ae6751deb101d2920e6f58ac598055eb44815b0..5c8cf02bed80baaec99c994d660c005584046d69 100644 (file)
@@ -14,9 +14,14 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorInputTypeValues.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.OccurrenceCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -38,13 +43,6 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
 
        private static OccurrenceEditorInput instance;
        
-       /**
-        * <p>Constructor for OccurrenceEditorInput.</p>
-        */
-       public OccurrenceEditorInput() {
-               super(new Object());
-       }
-       
        /**
         * <p>Getter for the field <code>instance</code>.</p>
         *
@@ -74,7 +72,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        @Override
        protected SpecimenOrObservationBase loadEntity(UUID entityUuid) {
                List<String> propertyPaths = Arrays.asList(new String[]{}); 
-               return CdmStore.getOccurrenceService().load(entityUuid, propertyPaths);
+               return CdmStore.getService(IOccurrenceService.class).load(entityUuid, propertyPaths);
        }
 
        /* (non-Javadoc)
@@ -114,15 +112,36 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public boolean delete(Object entity) {
-               return CdmStore.getOccurrenceService().delete((SpecimenOrObservationBase) entity) != null;
+       public boolean delete(SpecimenOrObservationBase entity) {
+               return CdmStore.getService(IOccurrenceService.class).delete(entity) != null;
        }
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#save(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public boolean save(Object entity) {
-               return CdmStore.getOccurrenceService().save((SpecimenOrObservationBase) entity) != null;
+       public boolean save(SpecimenOrObservationBase entity) {
+               return CdmStore.getService(IOccurrenceService.class).save(entity) != null;
+       }
+       
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
+        */
+       @Override
+       protected IEntityCreator<SpecimenOrObservationBase> createEntityCreator() {
+               return new OccurrenceCreator();
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
+        */
+       @Override
+       public List<IBulkEditorSortProvider<SpecimenOrObservationBase>> getSortProviders() {
+               List<IBulkEditorSortProvider<SpecimenOrObservationBase>> sortProviders = super.getSortProviders();
+               
+               sortProviders.add(new IdentifiableEntitySortProvider<SpecimenOrObservationBase>());
+               
+               return sortProviders;
        }
 }
index 6cc3175e284866e1f0ef705aaa653cd32ce3977f..e7c8f3d70b4fdbd6aa4c0967455a817fb76fc4ce 100644 (file)
@@ -13,10 +13,17 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
+import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorInputTypeValues.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.ReferenceCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.CdmBaseSortProvider;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.ReferenceSortProvider;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
@@ -39,13 +46,6 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
        
        private static ReferenceEditorInput instance;
 
-       /**
-        * <p>Constructor for ReferenceEditorInput.</p>
-        */
-       public ReferenceEditorInput() {
-               super(new Object());
-       }
-
        /**
         * <p>getID</p>
         *
@@ -112,28 +112,63 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
                return super.isMarkerTypeEditingEnabled(markerType);
        }
 
-       // Entity persistence
        
        /** {@inheritDoc} */
        @Override
        public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
                return CdmStore.getSearchManager().findReferences(configurator);
        }
-
+       
+       // Entity persistence
+       
        /** {@inheritDoc} */
        @Override
        public Reference loadEntity(UUID entityUuid) {
                List<String> propertyPaths = Arrays.asList(new String[]{"*", "inReference.*", "authorTeam.*"}); 
-               return CdmStore.getReferenceService().load(entityUuid, propertyPaths);
+               return CdmStore.getService(IReferenceService.class).load(entityUuid, propertyPaths);
        }
 
        /** {@inheritDoc} */
-       public boolean delete(Object entity) {
-               return CdmStore.getReferenceService().delete((Reference) entity) != null;
+       public boolean delete(Reference entity) {
+               return CdmStore.getService(IReferenceService.class).delete(entity) != null;
        }
 
        /** {@inheritDoc} */
-       public boolean save(Object entity) {
-               return CdmStore.getReferenceService().saveOrUpdate((Reference) entity) != null;
+       public boolean save(Reference entity) {
+               return CdmStore.getService(IReferenceService.class).saveOrUpdate(entity) != null;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
+        */
+       @Override
+       protected IEntityCreator<Reference> createEntityCreator() {
+               return new ReferenceCreator();
        }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
+        */
+       @Override
+       public List<IBulkEditorSortProvider<Reference>> getSortProviders() {
+               List<IBulkEditorSortProvider<Reference>> sortProviders = super.getSortProviders();
+               
+               sortProviders.add(new IdentifiableEntitySortProvider<Reference>());
+               sortProviders.add(new CdmBaseSortProvider<Reference>());
+               sortProviders.add(new ReferenceSortProvider());
+               
+               return sortProviders;
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
+        */
+       @Override
+       public String getTypeText(Object entity) {
+               if(entity instanceof Reference){
+                       return ((Reference) entity).getType().getMessage(CdmStore.getDefaultLanguage());
+               }
+               return super.getTypeText(entity);
+       }
+
 }
similarity index 77%
rename from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/TeamOrPersonCreator.java
rename to taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/AgentCreator.java
index 71c61036d6d736914d2bbc5a581d0a868021b3a3..0635914f47d32c8ddf5d651ba0228f6b75c3e7d6 100644 (file)
@@ -8,13 +8,14 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.bulkeditor;
+package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.log4j.Logger;
 
+import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
@@ -27,15 +28,18 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
  * @created 18.09.2009
  * @version 1.0
  */
-public class TeamOrPersonCreator implements IEntityCreator<TeamOrPersonBase> {
+public class AgentCreator implements IEntityCreator<AgentBase> {
        private static final Logger logger = Logger
-                       .getLogger(TeamOrPersonCreator.class);
+                       .getLogger(AgentCreator.class);
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.String)
         */
        /** {@inheritDoc} */
-       public TeamOrPersonBase createEntity(String text) {
+       public AgentBase createEntity(String text) {
+               logger.error("FIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXME");
+               logger.error("We can only create Persons at the moment. See #1820");
+               logger.error("FIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXMEFIXME");
                return createEntity(Person.class, text);
        }
 
@@ -43,7 +47,7 @@ public class TeamOrPersonCreator implements IEntityCreator<TeamOrPersonBase> {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.Class, java.lang.String)
         */
        /** {@inheritDoc} */
-       public TeamOrPersonBase createEntity(Object key, String text) {
+       public AgentBase createEntity(Object key, String text) {
                TeamOrPersonBase teamOrPerson = null;
                if (Team.class.equals(((Class) key))) {
                        teamOrPerson = Team.NewInstance();
similarity index 96%
rename from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/NameCreator.java
rename to taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/NameCreator.java
index 083b6910067f7feddde7f6824b6db1c0836a6396..15604b9811fb6228fc175ed9b1aeb30db69c4c58 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.bulkeditor;
+package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
 
 import java.util.HashMap;
 import java.util.Map;
similarity index 97%
rename from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/OccurrenceCreator.java
rename to taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/OccurrenceCreator.java
index b1081e13c52b757420a3291ae542d6c74fb76e9d..2f1449f27ee251eb32d34093c4614a0e35195cba 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.bulkeditor;
+package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
 
 import java.util.HashMap;
 import java.util.Map;
similarity index 98%
rename from taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/ReferenceCreator.java
rename to taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/ReferenceCreator.java
index 32a56c646fe43f617144fb7e16d253dfeb5922a5..37f95c0a8a33bbd3daae7b260271f23aa8750c25 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.bulkeditor;
+package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractDateComparator.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractDateComparator.java
new file mode 100644 (file)
index 0000000..e476053
--- /dev/null
@@ -0,0 +1,31 @@
+// $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.bulkeditor.input.sortprovider;
+
+import java.util.Comparator;
+
+import org.joda.time.DateTime;
+
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public abstract class AbstractDateComparator<T extends ICdmBase> implements Comparator<T>{
+       
+       public int compare(T o1, T o2) {                
+               return getDate(o1).compareTo(getDate(o2));
+       };
+       
+       protected abstract DateTime getDate(T object);
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractSortProvider.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractSortProvider.java
new file mode 100644 (file)
index 0000000..0be51b3
--- /dev/null
@@ -0,0 +1,53 @@
+// $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.bulkeditor.input.sortprovider;
+
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public class AbstractSortProvider<T> implements IBulkEditorSortProvider<T> {
+
+       Map<String, Comparator<T>> comparators = new HashMap<String, Comparator<T>>();
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider#getComparators()
+        */
+       @Override
+       public Map<String, Comparator<T>> getComparators() {
+               return comparators;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider#getComparatorNames()
+        */
+       @Override
+       public Set<String> getComparatorNames() {
+               return comparators.keySet();
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider#getComparatorByName(java.lang.String)
+        */
+       @Override
+       public Comparator<T> getComparatorByName(String name) {
+               return comparators.get(name);
+       }
+
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/CdmBaseSortProvider.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/CdmBaseSortProvider.java
new file mode 100644 (file)
index 0000000..fea139d
--- /dev/null
@@ -0,0 +1,42 @@
+// $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.bulkeditor.input.sortprovider;
+
+import org.joda.time.DateTime;
+
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public class CdmBaseSortProvider<T extends ICdmBase> extends AbstractSortProvider<T> {
+
+       /**
+        * 
+        */
+       public CdmBaseSortProvider() {
+               comparators.put("Created When", new CreatedDateComparator());
+       }
+       
+       private class CreatedDateComparator extends AbstractDateComparator<T>{
+
+               /* (non-Javadoc)
+                * @see eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.AbstractDateComparator#getDate(eu.etaxonomy.cdm.model.common.ICdmBase)
+                */
+               @Override
+               protected DateTime getDate(T object) {
+                       return object.getCreated();
+               }
+               
+       }
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/IdentifiableEntitySortProvider.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/IdentifiableEntitySortProvider.java
new file mode 100644 (file)
index 0000000..3e5032d
--- /dev/null
@@ -0,0 +1,26 @@
+// $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.bulkeditor.input.sortprovider;
+
+import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public class IdentifiableEntitySortProvider<T extends IIdentifiableEntity> extends AbstractSortProvider<T> {
+
+       public IdentifiableEntitySortProvider(){
+               comparators.put("Title Cache", new TitleCacheComparator<T>());
+       }
+       
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/ReferenceSortProvider.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/ReferenceSortProvider.java
new file mode 100644 (file)
index 0000000..e2d299e
--- /dev/null
@@ -0,0 +1,97 @@
+// $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.bulkeditor.input.sortprovider;
+
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.cdm.model.reference.Reference;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public class ReferenceSortProvider extends AbstractSortProvider<Reference> {
+
+       /**
+        * 
+        */
+       public ReferenceSortProvider() {
+               comparators.put("Type", new ReferenceTypeComparator());
+               comparators.put("Year", new ReferenceYearComparator());
+       }
+
+       private class ReferenceYearComparator implements Comparator<Reference> {
+               
+               /**
+                * @param o1
+                * @return
+                */
+               private String getYearString(Reference o) {
+                       TimePeriod datePublished = o == null ? null : o.getDatePublished(); 
+                       return datePublished == null? null : datePublished.toString();
+               }
+               
+               /* (non-Javadoc)
+                * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+                */
+               public int compare(Reference o1, Reference o2) {
+                       String yearString1 = getYearString(o1);
+                       String yearString2 = getYearString(o2);
+                       if (yearString1 == null) {
+                               if (yearString2 == null) {
+                                       return 0;
+                               } else {
+                                       return -1;
+                               }
+                       }
+                       if (yearString2 == null) {
+                               return 1;
+                       }
+                       int returnVal = yearString1.compareToIgnoreCase(yearString2);
+                       if (returnVal == 0) {
+                               return new TitleCacheComparator<Reference>().compare(o1, o2);
+                       } else {
+                               return returnVal;
+                       }
+               }               
+       }
+       
+       private class ReferenceTypeComparator implements Comparator<Reference> {
+               
+               /* (non-Javadoc)
+                * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+                */
+               public int compare(Reference o1, Reference o2) {
+                       String typeString1 = o1.getClass().toString();
+                       String typeString2 = o2.getClass().toString();
+                       if (typeString1 == null) {
+                               if (typeString2 == null) {
+                                       return 0;
+                               } else {
+                                       return -1;
+                               }
+                       }
+                       if (typeString2 == null) {
+                               return 1;
+                       }
+                       int returnVal = typeString1.compareToIgnoreCase(typeString2);
+                       if (returnVal == 0) {
+                               return new TitleCacheComparator<Reference>().compare(o1, o2);
+                       } else {
+                               return returnVal;
+                       }
+               }               
+       }
+
+       
+}
@@ -8,13 +8,11 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.annotatedlineeditor;
+package eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider;
 
 import java.util.Comparator;
 
-import org.apache.log4j.Logger;
-
-import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 
 /**
  * <p>IdentifiableEntityComparator class.</p>
@@ -23,22 +21,19 @@ import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
  * @created 19.08.2009
  * @version 1.0
  */
-public class IdentifiableEntityComparator implements Comparator {
-       private static final Logger logger = Logger
-                       .getLogger(IdentifiableEntityComparator.class);
+public class TitleCacheComparator<T extends IIdentifiableEntity> implements Comparator<T> {
        
     private boolean fIgnoreCase;
 
-       private String getTitleCache(Object o) {
-               return o == null || !(o instanceof IdentifiableEntity) ? 
-                               null : ((IdentifiableEntity) o).getTitleCache();
+       private String getTitleCache(T o) {
+               return o == null ? null : o.getTitleCache();
        }
        
        /* (non-Javadoc)
         * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
         */
        /** {@inheritDoc} */
-       public int compare(Object o1, Object o2) {
+       public int compare(T o1, T o2) {
                String titleCache1 = getTitleCache(o1);
                String titleCache2 = getTitleCache(o2);
                if (titleCache1 == null && titleCache2 == null) {
@@ -53,4 +48,4 @@ public class IdentifiableEntityComparator implements Comparator {
         return fIgnoreCase ? titleCache1.compareToIgnoreCase(titleCache2) : 
                                                        titleCache1.compareTo(titleCache2);
        }
-}
+}
\ No newline at end of file
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java
new file mode 100644 (file)
index 0000000..0c0673a
--- /dev/null
@@ -0,0 +1,92 @@
+// $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.bulkeditor.operation;
+
+import java.util.Set;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
+import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 13, 2010
+ * @version 1.0
+ */
+public class SetMarkerFlagOperation extends AbstractPostOperation {
+
+       private Set<IAnnotatableEntity> annotatableEntities;
+       private MarkerType markerType;
+       private boolean value;
+
+       /**
+        * @param label
+        * @param undoContext
+        * @param postOperationEnabled
+        */
+       public SetMarkerFlagOperation(String label, IUndoContext undoContext,
+                       Set<IAnnotatableEntity> annotatableEntities, MarkerType markerType, boolean value,
+                       IPostOperationEnabled postOperationEnabled) {
+               super(label, undoContext, postOperationEnabled);
+               this.annotatableEntities = annotatableEntities;
+               this.markerType = markerType;
+               this.value = value;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               
+               for(IAnnotatableEntity annotatableEntity : annotatableEntities){
+                       Marker marker = Marker.NewInstance(markerType, value);
+                       
+                       annotatableEntity.addMarker(marker);
+               }
+               
+               return postExecute(null);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               return execute(monitor, info);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               for(IAnnotatableEntity annotatableEntity : annotatableEntities){
+                       Marker marker = Marker.NewInstance(markerType, ! value);
+                       
+                       annotatableEntity.addMarker(marker);
+               }
+               
+               return postExecute(null);
+       }
+
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorGeneralPreferencePage.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorGeneralPreferencePage.java
new file mode 100644 (file)
index 0000000..8d42994
--- /dev/null
@@ -0,0 +1,50 @@
+// $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.bulkeditor.preference;
+
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 13, 2010
+ * @version 1.0
+ */
+public class BulkEditorGeneralPreferencePage extends PreferencePage implements
+               IWorkbenchPreferencePage {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+        */
+       @Override
+       public void init(IWorkbench workbench) {
+               // TODO Auto-generated method stub
+
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
+        */
+       @Override
+       protected Control createContents(Composite parent) {
+               Composite container = new Composite(parent, SWT.NULL);
+               container.setLayout(new GridLayout());
+
+               //
+               return container;
+       }
+
+}
diff --git a/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorMarkerPreferencePage.java b/taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorMarkerPreferencePage.java
new file mode 100644 (file)
index 0000000..e677b4d
--- /dev/null
@@ -0,0 +1,86 @@
+// $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.bulkeditor.preference;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.TermStore;
+
+/**
+ * <p>BulkEditorMarkerPreferenceComposite class.</p>
+ *
+ * @author p.ciardelli
+ * @created 17.08.2009
+ * @version 1.0
+ */
+public class BulkEditorMarkerPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
+
+       private Map<MarkerType, Boolean> markerTypeEditingMap = new HashMap<MarkerType, Boolean>();
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+        */
+       @Override
+       public void init(IWorkbench workbench) {
+               setPreferenceStore(PreferencesUtil.getPreferenceStore());
+               markerTypeEditingMap = PreferencesUtil.getEditMarkerTypePreferences();
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
+        */
+       @Override
+       protected Control createContents(Composite parent) {
+               Composite container = new Composite(parent, SWT.NULL);
+               container.setLayout(new GridLayout());
+
+               for (final MarkerType markerType : TermStore.getNonTechnicalMarkerTypes()) {
+                       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);
+               }
+               
+               return container;
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.preference.PreferencePage#performOk()
+        */
+       @Override
+       public boolean performOk() {
+               PreferencesUtil.setEditMarkerTypePreferences(markerTypeEditingMap);
+               
+               return super.performOk();
+       }
+}
index 5b59ead18c9c1236bb0c002636c9bc9c2a16f37c..8f48fb32a96c55931ed753e03fc5529aeb99c0d1 100644 (file)
@@ -34,6 +34,7 @@ import org.eclipse.ui.ISelectionListener;
 import org.eclipse.ui.IWorkbenchPart;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
@@ -139,7 +140,7 @@ public class ReferencingObjectsView extends AbstractCdmViewPart implements ISele
         try {
                if(entity instanceof CdmBase){
                        referencedObject = (CdmBase) entity;
-                       Set<CdmBase> setOfReferencingObjects = CdmStore.getCommonService().getReferencingObjects(referencedObject);
+                       Set<CdmBase> setOfReferencingObjects = CdmStore.getService(ICommonService.class).getReferencingObjects(referencedObject);
                        
                        List<CdmBase> referencingObjects = new ArrayList<CdmBase>(setOfReferencingObjects);                     
                        
index c5742e3404067f5838dc1d5806c51417320d1266..339a358f8bee480f24a96f3073f00fdd6e364c15 100644 (file)
       <menuContribution
             locationURI="menu:eu.etaxonomy.taxeditor.menu.showView">
          <command
-               commandId="eu.etaxonomy.taxeditor.editor.commands.showDetailsView"
+               commandId="org.eclipse.ui.views.showView"
                label="Details"
                style="push">
+            <parameter
+                  name="org.eclipse.ui.views.showView.viewId"
+                  value="eu.etaxonomy.taxeditor.editor.forms.detailsView">
+            </parameter>
          </command>
          <command
-               commandId="eu.etaxonomy.taxeditor.editor.commands.showTaxonDescriptions"
+               commandId="org.eclipse.ui.views.showView"
                label="Descriptive"
                style="push">
+            <parameter
+                  name="org.eclipse.ui.views.showView.viewId"
+                  value="eu.etaxonomy.taxeditor.editor.view.description">
+            </parameter>
          </command>
          <command
-               commandId="eu.etaxonomy.taxeditor.editor.commands.showSupplementalDataView"
+               commandId="org.eclipse.ui.views.showView"
                label="Supplemental"
                style="push">
+            <parameter
+                  name="org.eclipse.ui.views.showView.viewId"
+                  value="eu.etaxonomy.taxeditor.editor.view.supplementalData">
+            </parameter>
          </command>
          <command
-               commandId="eu.etaxonomy.taxeditor.editor.commands.showMedia"
+               commandId="org.eclipse.ui.views.showView"
                label="Media"
                style="push">
+            <parameter
+                  name="org.eclipse.ui.views.showView.viewId"
+                  value="eu.etaxonomy.taxeditor.editor.view.media">
+            </parameter>
          </command>
       </menuContribution>
    </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.ShowDetailsViewHandler"
-            id="eu.etaxonomy.taxeditor.editor.commands.showDetailsView"
-            name="Show Details">
-      </command>
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.ShowTaxonDescriptionsViewHandler"
-            id="eu.etaxonomy.taxeditor.editor.commands.showTaxonDescriptions"
-            name="Show Taxon Descriptions">
-      </command>
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.ShowSupplementalDataViewHandler"
-            id="eu.etaxonomy.taxeditor.editor.commands.showSupplementalDataView"
-            name="Show Suplemental Data">
-      </command>
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.ShowMediaViewHandler"
-            id="eu.etaxonomy.taxeditor.editor.commands.showMedia"
-            name="Show Media">
-      </command>
-   </extension>
    <extension
          point="org.eclipse.ui.menus">
       <menuContribution
index a8d5ae2e00bf87ffc94aec53e2c0043992f564be..500ac3e4c9c38a2e14342d94d5576e3c412eddc5 100644 (file)
@@ -42,6 +42,7 @@ import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
@@ -55,7 +56,7 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
  * @created 04.06.2009
  * @version 1.0
  */
-public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends CdmBase> extends
+public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmBase> extends
                FilteredItemsSelectionDialog implements IConversationEnabled {
        private static final Logger logger = Logger
                        .getLogger(AbstractFilteredCdmResourceSelectionDialog.class);
index 0a18721e0bffb0931e15506b0327ab6e3aef4f5b..94b0eeb95198598ec339c386e89bfeeb92f2398b 100644 (file)
@@ -18,6 +18,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
@@ -88,7 +89,7 @@ public class FilteredAgentSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected AgentBase getPersistentObject(UUID cdmUuid) {
-               return CdmStore.getAgentService().load(cdmUuid);
+               return CdmStore.getService(IAgentService.class).load(cdmUuid);
        }
 
        /** {@inheritDoc} */
@@ -113,7 +114,7 @@ public class FilteredAgentSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getAgentService().getUuidAndTitleCache();
+               model = CdmStore.getService(IAgentService.class).getUuidAndTitleCache();
        }
 
 
index b4e6f36fca8e1c045dbbbc65ca65bc695a3221d3..afa2dc7076bb58ca8a0bfcfe883a26fe228094a7 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -75,7 +76,7 @@ public class FilteredClassificationSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected Classification getPersistentObject(UUID cdmUuid) {
-               return CdmStore.getClassificationService().getClassificationByUuid(cdmUuid);
+               return CdmStore.getService(IClassificationService.class).getClassificationByUuid(cdmUuid);
        }
 
        /* (non-Javadoc)
@@ -84,7 +85,7 @@ public class FilteredClassificationSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getClassificationService().getUuidAndTitleCache();
+               model = CdmStore.getService(IClassificationService.class).getUuidAndTitleCache();
        }
 
        /** {@inheritDoc} */
index 6353c077a5f57250ac6bb5a8be69fb1514836f1b..318b976707f4badbbe95e6381c963b3757d8d658 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.ICollectionService;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.editor.newWizard.NewCollectionWizard;
@@ -66,7 +67,7 @@ public class FilteredCollectionSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected Collection getPersistentObject(UUID uuid) {
-               return CdmStore.getCollectionService().load(uuid);
+               return CdmStore.getService(ICollectionService.class).load(uuid);
        }
 
        /* (non-Javadoc)
@@ -75,7 +76,7 @@ public class FilteredCollectionSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getCollectionService().getUuidAndTitleCache();
+               model = CdmStore.getService(ICollectionService.class).getUuidAndTitleCache();
        }
 
        /* (non-Javadoc)
index efe1509b150292a6cc4753af2e02559f998504f8..278f35bd9b833632aeab3c21875a7a51a1096f14 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
@@ -65,7 +66,7 @@ public class FilteredDerivedUnitSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected DerivedUnitBase getPersistentObject(UUID uuid) {
-               Object object = CdmStore.getOccurrenceService().load(uuid);
+               Object object = CdmStore.getService(IOccurrenceService.class).load(uuid);
                
                SpecimenOrObservationBase specimenObservationBase = (SpecimenOrObservationBase) HibernateProxyHelper.deproxy(object);
                
@@ -79,7 +80,7 @@ public class FilteredDerivedUnitSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getOccurrenceService().getDerivedUnitBaseUuidAndTitleCache();
+               model = CdmStore.getService(IOccurrenceService.class).getDerivedUnitBaseUuidAndTitleCache();
        }
 
        /** {@inheritDoc} */
index a76c253d136e86436215af6fdaffd611e11308e5..c1a99c2702a99197e986b4e99ba0b614ef43105d 100644 (file)
@@ -17,6 +17,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.description.Feature;
@@ -57,7 +58,7 @@ public class FilteredFeatureSelectionDialog extends
        @Override
        protected Feature getPersistentObject(UUID uuid) {
                
-               DefinedTermBase term = CdmStore.getTermService().load(uuid);
+               DefinedTermBase term = CdmStore.getService(ITermService.class).load(uuid);
                
                if(term instanceof Feature){
                        return (Feature) term;
@@ -71,7 +72,7 @@ public class FilteredFeatureSelectionDialog extends
         */
        @Override
        protected void initModel() {
-               List<Feature> features = CdmStore.getTermService().listByTermClass(Feature.class, null, null, null, null);
+               List<Feature> features = CdmStore.getService(ITermService.class).listByTermClass(Feature.class, null, null, null, null);
                
                List<UuidAndTitleCache<Feature>> featureUuidAndTitleCache = new ArrayList<UuidAndTitleCache<Feature>>();
                
index 0f356bec49d347d471a723c5a3892325882995da..18b6eb66beebb27e8eba3706d6625f9547a84bd5 100644 (file)
@@ -25,6 +25,7 @@ import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
@@ -77,7 +78,7 @@ public class FilteredFeatureTreeSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected FeatureTree getPersistentObject(UUID uuid) {
-               return CdmStore.getFeatureTreeService().load(uuid);
+               return CdmStore.getService(IFeatureTreeService.class).load(uuid);
        }
 
        /* (non-Javadoc)
@@ -86,7 +87,7 @@ public class FilteredFeatureTreeSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               List<FeatureTree> featureTrees = CdmStore.getFeatureTreeService().list(FeatureTree.class, null, null, null, null);
+               List<FeatureTree> featureTrees = CdmStore.getService(IFeatureTreeService.class).list(FeatureTree.class, null, null, null, null);
                
                if(model == null){
                        model = new ArrayList<UuidAndTitleCache<FeatureTree>>();
index 382446cb32121df70c82e1275ce778f793c5b09e..9f3c2825ceeb98367cb5243a26ce69b29dddd5d5 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.occurrence.FieldObservation;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
@@ -69,7 +70,7 @@ public class FilteredFieldObservationSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected FieldObservation getPersistentObject(UUID uuid) {
-               Object object = CdmStore.getOccurrenceService().load(uuid);
+               Object object = CdmStore.getService(IOccurrenceService.class).load(uuid);
                
                SpecimenOrObservationBase specimenObservationBase = (SpecimenOrObservationBase) HibernateProxyHelper.deproxy(object);
                
@@ -86,7 +87,7 @@ public class FilteredFieldObservationSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getOccurrenceService().getFieldObservationUuidAndTitleCache();
+               model = CdmStore.getService(IOccurrenceService.class).getFieldObservationUuidAndTitleCache();
        }
 
        /** {@inheritDoc} */
index da2df9c18df6167576a23ef66678247d4124e429..60fcad930d5a0184f16ba5a459f3a83f35850320 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.editor.newWizard.NewNonViralNameWizard;
@@ -64,7 +65,7 @@ public class FilteredNameSelectionDialog extends AbstractFilteredCdmResourceSele
        /** {@inheritDoc} */
        @Override
        protected TaxonNameBase getPersistentObject(UUID cdmUuid) {
-               return CdmStore.getNameService().load(cdmUuid);
+               return CdmStore.getService(INameService.class).load(cdmUuid);
        }
 
        /* (non-Javadoc)
@@ -73,7 +74,7 @@ public class FilteredNameSelectionDialog extends AbstractFilteredCdmResourceSele
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getNameService().getUuidAndTitleCache();               
+               model = CdmStore.getService(INameService.class).getUuidAndTitleCache();         
        }
 
        /** {@inheritDoc} */
index d105b37b2bb2e8c87d029bb851d29d74312ba8fc..6af655962b279e254b8a0ec46c83c539dcd69ac6 100644 (file)
@@ -24,10 +24,9 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.Representation;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.common.VocabularyEnum;
@@ -161,7 +160,7 @@ public class FilteredNamedAreaSelectionDialog extends
        @Override
        protected NamedArea getPersistentObject(UUID uuid) {
                for(VocabularyEnum selectedVocabulary : selectedVocabularies){
-                       TermVocabulary vocabulary = CdmStore.getVocabularyService().getVocabulary(selectedVocabulary);
+                       TermVocabulary vocabulary = CdmStore.getService(IVocabularyService.class).getVocabulary(selectedVocabulary);
                        for(Object object : vocabulary.getTerms()){
                                CdmBase cdmBaseObject = (CdmBase) object;
                                if(uuid.equals(cdmBaseObject.getUuid())){
@@ -188,7 +187,7 @@ public class FilteredNamedAreaSelectionDialog extends
                
                Set<NamedArea> terms = new HashSet<NamedArea>();
                for(VocabularyEnum vocabularyEnum : selectedVocabularies){
-                       TermVocabulary vocabulary = (TermVocabulary) HibernateProxyHelper.deproxy(CdmStore.getVocabularyService().getVocabulary(vocabularyEnum));
+                       TermVocabulary vocabulary = (TermVocabulary) HibernateProxyHelper.deproxy(CdmStore.getService(IVocabularyService.class).getVocabulary(vocabularyEnum));
                        terms.addAll(vocabulary.getTermsOrderedByLabels(CdmStore.getDefaultLanguage()));
                }
                
index b29069729a0644a7415cf3a7f728458de36ce62f..b183c250919b4d76942c7ddb7d3de76f85c11ca8 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.editor.newWizard.NewTeamWizard;
@@ -74,12 +75,12 @@ public class FilteredNomenclaturalAuthorTeamSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getAgentService().getTeamUuidAndNomenclaturalTitle();
+               model = CdmStore.getService(IAgentService.class).getTeamUuidAndNomenclaturalTitle();
        }
 
        /** {@inheritDoc} */
        @Override
        protected Team getPersistentObject(UUID uuid) {
-               return (Team) CdmStore.getAgentService().load(uuid);
+               return (Team) CdmStore.getService(IAgentService.class).load(uuid);
        }
 }
index 96284215c47e27bbe03ba2ad917d01e28400a5ee..8def40fa39681d792ab248363acd58c7e9356a95 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.editor.newWizard.NewPersonWizard;
@@ -67,7 +68,7 @@ public class FilteredPersonSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected Person getPersistentObject(UUID uuid) {
-               return (Person) CdmStore.getAgentService().load(uuid);
+               return (Person) CdmStore.getService(IAgentService.class).load(uuid);
        }
 
        /* (non-Javadoc)
@@ -76,7 +77,7 @@ public class FilteredPersonSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getAgentService().getPersonUuidAndTitleCache();
+               model = CdmStore.getService(IAgentService.class).getPersonUuidAndTitleCache();
        }
 
        /** {@inheritDoc} */
index 936b8fcbe12c628fa712981d3517f501a327c682..5a04a98d1f167e9221f4f2d214efc5da3fd3431b 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -52,7 +53,7 @@ public class FilteredPolytomousKeySelectionDialog extends
         */
        @Override
        protected PolytomousKey getPersistentObject(UUID uuid) {
-               return CdmStore.getPolytomousKeyService().load(uuid);
+               return CdmStore.getService(IPolytomousKeyService.class).load(uuid);
        }
 
        /* (non-Javadoc)
@@ -60,7 +61,7 @@ public class FilteredPolytomousKeySelectionDialog extends
         */
        @Override
        protected void initModel() {
-               model = CdmStore.getPolytomousKeyService().getUuidAndTitleCache();
+               model = CdmStore.getService(IPolytomousKeyService.class).getUuidAndTitleCache();
        }
 
        /* (non-Javadoc)
index 2e0e3f43f01f053404100e088fc787cae33880be..5f0ee5e1ca6207caf9c2e686c718ce0acf6a7b9e 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.strategy.cache.reference.ReferenceBaseDefaultCacheStrategy;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
@@ -65,7 +66,7 @@ public class FilteredReferenceSelectionDialog extends AbstractFilteredCdmResourc
        /** {@inheritDoc} */
        @Override
        protected Reference getPersistentObject(UUID cdmUuid) {
-               return CdmStore.getReferenceService().load(cdmUuid);
+               return CdmStore.getService(IReferenceService.class).load(cdmUuid);
        }
 
        /* (non-Javadoc)
@@ -74,7 +75,7 @@ public class FilteredReferenceSelectionDialog extends AbstractFilteredCdmResourc
        /** {@inheritDoc} */
        @Override
        protected void initModel() {            
-               model = CdmStore.getReferenceService().getUuidAndTitleCache();
+               model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache();
        }
        
 
index b7a88fb35b416b71887994db53c10a9f1db49e43..ea95d51765a4c3ed3efb84361e427beaa3536956 100644 (file)
@@ -17,6 +17,9 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -38,12 +41,40 @@ public class FilteredTaxonBaseSelectionDialog extends
         * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
         */
-       public static TaxonBase select(Shell shell, ConversationHolder conversation) {
-               FilteredTaxonBaseSelectionDialog dialog = new FilteredTaxonBaseSelectionDialog(shell, conversation,
+       public static TaxonBase selectTaxonBase(Shell shell, ConversationHolder conversation) {
+               FilteredTaxonBaseSelectionDialog dialog = new FilteredTaxonBaseSelectionDialog(TaxonBase.class, shell, conversation,
                                "Choose a taxon", false, null);
                return getSelectionFromDialog(dialog);
        }
        
+       /**
+        * <p>select</p>
+        *
+        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
+        */
+       public static Taxon selectTaxon(Shell shell, ConversationHolder conversation) {
+               FilteredTaxonBaseSelectionDialog dialog = new FilteredTaxonBaseSelectionDialog(Taxon.class, shell, conversation,
+                               "Choose a taxon", false, null);
+               return (Taxon) getSelectionFromDialog(dialog);
+       }
+       
+       /**
+        * <p>select</p>
+        *
+        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
+        */
+       public static Synonym selectSynonym(Shell shell, ConversationHolder conversation) {
+               FilteredTaxonBaseSelectionDialog dialog = new FilteredTaxonBaseSelectionDialog(Synonym.class, shell, conversation,
+                               "Choose a taxon", false, null);
+               return (Synonym) getSelectionFromDialog(dialog);
+       }
+
+       private Class<? extends TaxonBase> clazz;
+       
        /**
         * <p>Constructor for FilteredTaxonBaseSelectionDialog.</p>
         *
@@ -53,8 +84,9 @@ public class FilteredTaxonBaseSelectionDialog extends
         * @param multi a boolean.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
         */
-       protected FilteredTaxonBaseSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, TaxonBase taxon) {
+       protected FilteredTaxonBaseSelectionDialog(Class<? extends TaxonBase> clazz, Shell shell, ConversationHolder conversation, String title, boolean multi, TaxonBase taxon) {
                super(shell, conversation, title, multi, FilteredReferenceSelectionDialog.class.getCanonicalName(), taxon);
+               this.clazz = clazz;
        }
 
        /* (non-Javadoc)
@@ -72,7 +104,7 @@ public class FilteredTaxonBaseSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected TaxonBase getPersistentObject(UUID uuid) {
-               return CdmStore.getTaxonService().load(uuid);
+               return CdmStore.getService(ITaxonService.class).load(uuid);
        }
 
        /* (non-Javadoc)
@@ -81,7 +113,15 @@ public class FilteredTaxonBaseSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getTaxonService().getUuidAndTitleCache();
+               if(clazz == TaxonBase.class){
+                       model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCache();
+               }
+               else if(clazz == Taxon.class){
+                       model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCacheTaxon();
+               }
+               else if(clazz == Synonym.class){
+                       model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCacheSynonym();
+               }
        }
 
        /** {@inheritDoc} */
index 6c241de31c6aeb5b3330dec3b7536c46697420c0..3b8c63740600deb99e8fb9d433df3eca28a15e13 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
@@ -132,7 +133,7 @@ public class FilteredTaxonNodeSelectionDialog extends AbstractFilteredCdmResourc
        /** {@inheritDoc} */
        @Override
        protected TaxonNode getPersistentObject(UUID uuid) {
-               return CdmStore.getClassificationService().getTaxonNodeByUuid(uuid);
+               return CdmStore.getService(IClassificationService.class).getTaxonNodeByUuid(uuid);
        }
 
        /* (non-Javadoc)
@@ -146,11 +147,11 @@ public class FilteredTaxonNodeSelectionDialog extends AbstractFilteredCdmResourc
                
                
                if(classifications == null){
-                       classifications = CdmStore.getClassificationService().list(null, null, null, null, null);
+                       classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, null);
                        selectedClassification = classifications.iterator().next();
                }
                
-               model = CdmStore.getClassificationService().getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification);
+               model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification);
        }
 
        /** {@inheritDoc} */
index fdcb692b23566f061ac1d85de469f600742d892a..c40900138851ae28ecb938410695d66cd64cfe70 100644 (file)
@@ -15,6 +15,7 @@ import java.util.UUID;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.editor.newWizard.NewTeamWizard;
@@ -66,7 +67,7 @@ public class FilteredTeamSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getAgentService().getTeamUuidAndTitleCache();
+               model = CdmStore.getService(IAgentService.class).getTeamUuidAndTitleCache();
        }
 
        /** {@inheritDoc} */
@@ -84,6 +85,6 @@ public class FilteredTeamSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected Team getPersistentObject(UUID uuid) {
-               return (Team) CdmStore.getAgentService().load(uuid);
+               return (Team) CdmStore.getService(IAgentService.class).load(uuid);
        }
 }
index 2f01598b5f69d03f50b1610c2951137b75fabbe0..b2260dd877794bb1a51f1570cc74cc3952d4f277 100644 (file)
@@ -24,6 +24,7 @@ import org.apache.log4j.Logger;
 import org.eclipse.swt.dnd.ByteArrayTransfer;
 import org.eclipse.swt.dnd.TransferData;
 
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -143,7 +144,7 @@ public class CdmDataTransfer extends ByteArrayTransfer {
                in.readInt();
                
                if(className.equals(Synonym.class.getName()) || className.equals(Taxon.class.getName())){
-                       ICdmBase object = CdmStore.getTaxonService().load(UUID.fromString(idString));
+                       ICdmBase object = CdmStore.getService(ITaxonService.class).load(UUID.fromString(idString));
                        
                        if(object == null){
                                return cdmBase;
index 7bf0379792686c598fb44e26d182d9ca1d31b561..99eb505c45139adda824fbc0794286bd3016903d 100644 (file)
@@ -20,6 +20,9 @@ import org.eclipse.ui.IPersistableElement;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
@@ -82,7 +85,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
     private static TaxonEditorInput NewInstance(UUID taxonNodeUuid, ConversationHolder conversation){
        
        
-       TaxonNode taxonNode = CdmStore.getTaxonNodeService().load(taxonNodeUuid, null);
+       TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid, null);
                
                if(taxonNode == null){
                        EditorUtil.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not type TaxonBase.");
@@ -103,7 +106,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
        
        TaxonEditorInput input = null;
        
-       TaxonBase taxonBase = CdmStore.getTaxonService().find(taxonBaseUuid);
+       TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid);
        
        if(taxonBase instanceof Taxon){
                Taxon taxon = (Taxon) taxonBase;
@@ -181,13 +184,13 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
        ConversationHolder conversation = CdmStore.createConversation();
                
                TaxonNameBase<?, ?> name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null);
-               ITreeNode parentNode = CdmStore.getClassificationService().getTreeNodeByUuid(parentNodeUuid);
+               ITreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid);
                
                Taxon newTaxon = Taxon.NewInstance(name, parentNode.getReference());
                TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference(), null);
                
                // add the new taxon to the editors persistence context
-               UUID newTaxonNodeUuid = CdmStore.getTaxonNodeService().save(newTaxonNode);
+               UUID newTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).save(newTaxonNode);
                
                return new TaxonEditorInput(newTaxonNode, conversation);
     }
index 33a8a73d33869f5257d70fe531beb164735ced09..187568dd1ad5a9cb9acda98675cd848746718302 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.ui.IElementFactory;
 import org.eclipse.ui.IMemento;
 
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
@@ -49,7 +50,7 @@ public class TaxonEditorInputFactory implements IElementFactory {
         if(! CdmStore.isActive()){
                return null;
         }
-        if (taxonNodeUuid == null || CdmStore.getClassificationService().getTaxonNodeByUuid(UUID.fromString(taxonNodeUuid)) == null) {
+        if (taxonNodeUuid == null || CdmStore.getService(IClassificationService.class).getTaxonNodeByUuid(UUID.fromString(taxonNodeUuid)) == null) {
                EditorUtil.warn(this.getClass(), "Couldn't find taxon node with UUID " + taxonNodeUuid);
                return null;
         }
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowDetailsViewHandler.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowDetailsViewHandler.java
deleted file mode 100644 (file)
index 590de16..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.handler;
-
-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.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.editor.view.detail.DetailsViewPart;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
-/**
- * <p>ShowDetailsViewHandler class.</p>
- *
- * @author n.hoffmann
- * @created 05.06.2009
- * @version 1.0
- */
-public class ShowDetailsViewHandler extends AbstractHandler implements
-               IHandler {
-       private static final Logger logger = Logger
-                       .getLogger(ShowDetailsViewHandler.class);
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                               .getActiveWorkbenchWindow().getActivePage().showView(DetailsViewPart.ID, 
-                                       null, IWorkbenchPage.VIEW_VISIBLE);
-               } catch (PartInitException e) {
-                       logger.error("Error opening entity details view.", e);
-               }
-               return null;
-       }
-}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowMediaViewHandler.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowMediaViewHandler.java
deleted file mode 100644 (file)
index 174300c..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.handler;
-
-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.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
-/**
- * <p>ShowMediaViewHandler class.</p>
- *
- * @author n.hoffmann
- * @created Jun 10, 2010
- * @version 1.0
- */
-public class ShowMediaViewHandler extends AbstractHandler  implements IHandler {
-       private static final Logger logger = Logger
-                       .getLogger(ShowMediaViewHandler.class);
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                               .getActiveWorkbenchWindow().getActivePage().showView(MediaViewPart.ID, 
-                                       null, IWorkbenchPage.VIEW_VISIBLE);
-               } catch (PartInitException e) {
-                       logger.error("Error opening name relationship view.", e);
-               }
-               return null;
-       }
-}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowSupplementalDataViewHandler.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowSupplementalDataViewHandler.java
deleted file mode 100644 (file)
index ca30d3d..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.handler;
-
-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.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.editor.view.supplementaldata.SupplementalDataViewPart;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
-/**
- * <p>ShowSupplementalDataViewHandler class.</p>
- *
- * @author n.hoffmann
- * @created Jun 10, 2010
- * @version 1.0
- */
-public class ShowSupplementalDataViewHandler extends AbstractHandler  implements IHandler {
-       private static final Logger logger = Logger
-                       .getLogger(ShowSupplementalDataViewHandler.class);
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                               .getActiveWorkbenchWindow().getActivePage().showView(SupplementalDataViewPart.ID, 
-                                       null, IWorkbenchPage.VIEW_VISIBLE);
-               } catch (PartInitException e) {
-                       logger.error("Error opening name relationship view.", e);
-               }
-               return null;
-       }
-}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowTaxonDescriptionsViewHandler.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ShowTaxonDescriptionsViewHandler.java
deleted file mode 100644 (file)
index 768baeb..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.handler;
-
-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.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
-/**
- * <p>ShowTaxonDescriptionsViewHandler class.</p>
- *
- * @author n.hoffmann
- * @created 05.06.2009
- * @version 1.0
- */
-public class ShowTaxonDescriptionsViewHandler extends AbstractHandler implements
-               IHandler {
-       private static final Logger logger = Logger
-                       .getLogger(ShowTaxonDescriptionsViewHandler.class);
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                               .getActiveWorkbenchWindow().getActivePage().showView(DescriptiveViewPart.ID, 
-                                       null, IWorkbenchPage.VIEW_VISIBLE);
-               } catch (PartInitException e) {
-                       logger.error("Error opening name relationship view.", e);
-               }
-               return null;
-       }
-}
index ad64fd2a3f482005b4617b5ac6f730d25f536fe1..a0a198bb6169b74269436466e78d8cd05d3b2eba 100644 (file)
@@ -6,6 +6,7 @@ package eu.etaxonomy.taxeditor.editor.key.polytomous;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.key.AbstractIdentificationEditorInput;
@@ -38,7 +39,7 @@ public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<
        }
        
        public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid, ConversationHolder conversation) throws Exception{
-               PolytomousKey polytomousKey = CdmStore.getPolytomousKeyService().load(polytomousKeyUuid, null);
+               PolytomousKey polytomousKey = CdmStore.getService(IPolytomousKeyService.class).load(polytomousKeyUuid, null);
                        
                return new PolytomousKeyEditorInput(conversation, polytomousKey);
        }
index b0054beeff555b8c269e7ddee6f1cbceb32f09ec..2739805f426db17a5931bbf35f31f24fcc1a4f90 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
@@ -66,7 +67,7 @@ public class ChangeAcceptedTaxonToSynonymOperation extends
 
                monitor.worked(20);
                bind();
-       Synonym synonym = CdmStore.getTaxonService().changeAcceptedTaxonToSynonym(oldTaxonNode, newAcceptedTaxonNode, null, null, null);
+       Synonym synonym = CdmStore.getService(ITaxonService.class).changeAcceptedTaxonToSynonym(oldTaxonNode, newAcceptedTaxonNode, null, null, null);
                monitor.worked(40);
         
                return postExecute(synonym);
index c14ab938284564dc912e8ebbf786e246e489185e..3cbdc5f0d923e53acbdbe219fe9679c8c520b037 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -72,7 +73,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                
-               newTaxon = CdmStore.getTaxonService().changeSynonymToAcceptedTaxon(synonym, taxon);
+               newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym, taxon);
                monitor.worked(20);
                
 //             synonym.setSec(null);
index 8ead142b1279f02670e372612f2f750ff2061dea..9ec8fa36de8d795e639dcf8b022d2a5d3900578a 100644 (file)
@@ -15,6 +15,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
@@ -74,7 +75,7 @@ public class ChangeSynonymToConceptOperation extends AbstractPostOperation {
 //             fromTaxon.addTaxonRelation(taxon, taxonRelationshipType, null, null);
 
                monitor.worked(20);
-       Taxon fromTaxon = CdmStore.getTaxonService().changeSynonymToRelatedTaxon(synonym, taxon, taxonRelationshipType, null, null);
+       Taxon fromTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToRelatedTaxon(synonym, taxon, taxonRelationshipType, null, null);
                monitor.worked(40);
                
 //             TaxonRelationshipType.
index d05b4ca308f95aded506db1c1979241ab07a8dc8..f3b9ff566c629521e26c29fc0b17798ff90c4d92 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
@@ -66,7 +67,7 @@ public class ChangeSynonymToMisapplicationOperation extends AbstractPostOperatio
 
                // make misapplied name with synonym name
                misapplication = Taxon.NewInstance(synonymName, null);
-               CdmStore.getTaxonService().saveOrUpdate(misapplication);
+               CdmStore.getService(ITaxonService.class).saveOrUpdate(misapplication);
                monitor.worked(20);
                
                // store synonymRelationshipType for later undo operations
index 670b09af09bfb40b2de180b4d403f16669b0997a..4926128addfa6dcdeb7bfe2492c02d5f493a8bda 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
+import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -63,7 +64,7 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostOperation {
 
                monitor.worked(20);
                
-               CdmStore.getTaxonService().swapSynonymAndAcceptedTaxon(synonym, taxon);
+               CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym, taxon);
                
                monitor.worked(40);
 
index e35ed861df0d060fca8066fa7cac455d5f2e00fa..33b392d3f4002bdc0d9ce64e6e1f3864284fed6b 100644 (file)
@@ -10,6 +10,7 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
+import eu.etaxonomy.cdm.api.service.ICollectionService;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.taxeditor.section.occurrence.CollectionWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -35,7 +36,7 @@ public class NewCollectionWizard extends AbstractNewEntityWizard<Collection> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-               CdmStore.getCollectionService().saveOrUpdate(entity);
+               CdmStore.getService(ICollectionService.class).saveOrUpdate(entity);
        }
 
        /* (non-Javadoc)
index 490c50c325380fdeb9ae0b0882870693c34e4364..c2597454f30f6ff6e37659e96cd059427867e083 100644 (file)
@@ -10,6 +10,7 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
 import eu.etaxonomy.cdm.model.occurrence.Specimen;
 import eu.etaxonomy.taxeditor.section.occurrence.DerivedUnitFacadeWizardPage;
@@ -48,6 +49,6 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUni
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-               CdmStore.getOccurrenceService().saveOrUpdate(entity);
+               CdmStore.getService(IOccurrenceService.class).saveOrUpdate(entity);
        }
 }
index 086c50ab026de17c957cd763ff882e6a5751ff15..2b3ca2a6f0bf8f9b44470404bdb5af1cbcdd8c1c 100644 (file)
@@ -10,8 +10,7 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
-import org.apache.log4j.Logger;
-
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.model.occurrence.FieldObservation;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -23,8 +22,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class NewFieldObservationWizard extends AbstractNewEntityWizard<FieldObservation> {
-       private static final Logger logger = Logger
-                       .getLogger(NewFieldObservationWizard.class);
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
@@ -42,6 +39,6 @@ public class NewFieldObservationWizard extends AbstractNewEntityWizard<FieldObse
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-               CdmStore.getOccurrenceService().saveOrUpdate(entity);
+               CdmStore.getService(IOccurrenceService.class).saveOrUpdate(entity);
        }
 }
index c6115cff23d87001b226a89b775c89eed044ef89..298aa33398a433b170cab3c8af67ec1f3376c298 100644 (file)
@@ -10,6 +10,7 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
+import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.model.name.BotanicalName;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.NonViralName;
@@ -48,6 +49,6 @@ public class NewNonViralNameWizard extends AbstractNewEntityWizard<NonViralName>
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-               CdmStore.getNameService().saveOrUpdate(entity);
+               CdmStore.getService(INameService.class).saveOrUpdate(entity);
        }
 }
index 07ae59bf6b9b93cb07518b1f10afc29cb74c7f72..88da47b3daf571acc3a5f3ba4a6a345c083de09a 100644 (file)
@@ -10,6 +10,7 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
+import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.taxeditor.section.agent.PersonWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -38,6 +39,6 @@ public class NewPersonWizard extends AbstractNewEntityWizard<Person> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-               CdmStore.getAgentService().saveOrUpdate(entity);
+               CdmStore.getService(IAgentService.class).saveOrUpdate(entity);
        }
 }
index c44e617c47d13b59fe12bcce93272b7241dfd297..351d9e5f6a1005052a404049ad6a179b1a35daf1 100644 (file)
@@ -10,6 +10,7 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
+import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
 import eu.etaxonomy.taxeditor.section.reference.ReferenceWizardPage;
@@ -44,7 +45,7 @@ public class NewReferenceWizard extends AbstractNewEntityWizard<Reference> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-               CdmStore.getReferenceService().saveOrUpdate(entity);
+               CdmStore.getService(IReferenceService.class).saveOrUpdate(entity);
        }
 
        /** {@inheritDoc} */
index ca9dd0114e8ea6a88b2dafa1a867e8375b61aa44..958e418dacbb901b05a9ba5e5ea09754ee9fb23d 100644 (file)
@@ -10,6 +10,7 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
+import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.taxeditor.section.agent.TeamWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -41,6 +42,6 @@ public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-               CdmStore.getAgentService().saveOrUpdate(entity);
+               CdmStore.getService(IAgentService.class).saveOrUpdate(entity);
        }
 }
index 1ac46d65fc2096d96febca5ae8de1930c4755bd0..084ccaff237effaac17f5e1004a91ecaacc67457 100644 (file)
@@ -113,6 +113,8 @@ import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
 import eu.etaxonomy.cdm.model.occurrence.Specimen;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
@@ -133,8 +135,10 @@ import eu.etaxonomy.taxeditor.forms.selection.PersonSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.PolytomousKeyNodeSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.PolytomousKeySelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.ReferenceSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.SynonymSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.TaxonBaseSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.TaxonNodeSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.TaxonSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.TeamSelectionElement;
 import eu.etaxonomy.taxeditor.forms.term.AbstractEnumComboElement;
 import eu.etaxonomy.taxeditor.forms.term.AbstractTermComboElement;
@@ -918,6 +922,8 @@ public class CdmFormFactory extends FormToolkit{
                NAME,
                REFERENCE,
                TAXON_BASE,
+               TAXON,
+               SYNONYM,
                TEAM, 
                AUTHOR_TEAM,
                PERSON, 
@@ -1737,6 +1743,12 @@ public class CdmFormFactory extends FormToolkit{
                case TAXON_BASE:
                        element = new TaxonBaseSelectionElement(this, conversation, parentElement, labelString, (TaxonBase) entity, style);
                        break;
+               case TAXON:
+                       element = new TaxonSelectionElement(this, conversation, parentElement, labelString, (Taxon) entity, style);
+                       break;
+               case SYNONYM:
+                       element = new SynonymSelectionElement(this, conversation, parentElement, labelString, (Synonym) entity, style);
+                       break;
                case DERIVED_UNIT:
                        element = new DerivedUnitBaseSelectionElement(this, conversation, parentElement, labelString, (DerivedUnitBase) entity, style);
                        break;
index 4ca1cbd5405f85ff3d2758df15bc3e13a6b73b16..f3ac06ce1f657c3b86134a8a79b5676d7f42f253 100644 (file)
@@ -6,6 +6,7 @@ package eu.etaxonomy.taxeditor.forms.selection;
 import org.eclipse.swt.events.SelectionEvent;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredReferenceSelectionDialog;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
@@ -44,7 +45,7 @@ public class ReferenceSelectionElement extends AbstractSelectionElement<Referenc
                
                Reference freshlyLoadedSelection = null;
                if(newSelection != null)
-                       freshlyLoadedSelection = CdmStore.getReferenceService().load(newSelection.getUuid());
+                       freshlyLoadedSelection = CdmStore.getService(IReferenceService.class).load(newSelection.getUuid());
                
                setSelectionInternal(freshlyLoadedSelection);
        }
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/SynonymSelectionElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/SynonymSelectionElement.java
new file mode 100644 (file)
index 0000000..76cbf90
--- /dev/null
@@ -0,0 +1,55 @@
+// $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.forms.selection;
+
+import org.eclipse.swt.events.SelectionEvent;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredTaxonBaseSelectionDialog;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 9, 2010
+ * @version 1.0
+ */
+public class SynonymSelectionElement extends AbstractSelectionElement<Synonym> {
+
+       /**
+        * @param formFactory
+        * @param conversation
+        * @param parentElement
+        * @param labelString
+        * @param entity
+        * @param isEditable
+        * @param isSelectable
+        * @param isDeletable
+        * @param style
+        */
+       public SynonymSelectionElement(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       String labelString, Synonym entity, int style) {
+               super(formFactory, conversation, parentElement, labelString, entity,
+                               false, true, true, style);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+        */
+       @Override
+       public void widgetSelected(SelectionEvent e) {
+               Synonym newSelection = FilteredTaxonBaseSelectionDialog.selectSynonym(getShell(), getConversationHolder());
+               setSelectionInternal(newSelection);
+       }
+
+}
index 381d0ec662de656713566045b41f7e62b5ebc6a3..fac6d5475a53ccdf267e12e6cb8cc09a5ac67eae 100644 (file)
@@ -38,7 +38,7 @@ public class TaxonBaseSelectionElement extends AbstractSelectionElement<TaxonBas
         */
        /** {@inheritDoc} */
        public void widgetSelected(SelectionEvent e) {
-               TaxonBase newSelection = FilteredTaxonBaseSelectionDialog.select(getShell(), getConversationHolder());
+               TaxonBase newSelection = FilteredTaxonBaseSelectionDialog.selectTaxonBase(getShell(), getConversationHolder());
                setSelectionInternal(newSelection);
        }
 
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TaxonSelectionElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TaxonSelectionElement.java
new file mode 100644 (file)
index 0000000..0e9ea56
--- /dev/null
@@ -0,0 +1,55 @@
+// $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.forms.selection;
+
+import org.eclipse.swt.events.SelectionEvent;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredTaxonBaseSelectionDialog;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 9, 2010
+ * @version 1.0
+ */
+public class TaxonSelectionElement extends AbstractSelectionElement<Taxon> {
+
+       /**
+        * @param formFactory
+        * @param conversation
+        * @param parentElement
+        * @param labelString
+        * @param entity
+        * @param isEditable
+        * @param isSelectable
+        * @param isDeletable
+        * @param style
+        */
+       public TaxonSelectionElement(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       String labelString, Taxon entity, int style) {
+               super(formFactory, conversation, parentElement, labelString, entity,
+                               false, true, true, style);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+        */
+       @Override
+       public void widgetSelected(SelectionEvent e) {
+               Taxon newSelection = FilteredTaxonBaseSelectionDialog.selectTaxon(getShell(), getConversationHolder());
+               setSelectionInternal(newSelection);
+       }
+
+}
index f6381d1b23449f62b0f4867cf669a957927ab035..0f94eeb863a2f96c02c9d31c4a40c40219b27178 100644 (file)
@@ -25,6 +25,7 @@ import eu.etaxonomy.taxeditor.forms.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.forms.selection.ClassificationSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.TaxonBaseSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.TaxonNodeSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.TaxonSelectionElement;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
 import eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement;
 
@@ -45,7 +46,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
        
        private ITreeNode parentTreeNode;
        
-       private TaxonBaseSelectionElement selection_reuseExistingTaxon;
+       private TaxonSelectionElement selection_reuseExistingTaxon;
        
        private Taxon taxon;
        
@@ -77,7 +78,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
                        ITreeNode entity, int style) {
                selection_classification = (ClassificationSelectionElement) formFactory.createSelectionElement(SelectionType.CLASSIFICATION, getConversationHolder(), formElement, "Classification", null, style);
                selection_parentTaxonNode = (TaxonNodeSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON_NODE, getConversationHolder(), formElement, "Parent", null, style);
-               selection_reuseExistingTaxon = (TaxonBaseSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON_BASE, getConversationHolder(), formElement, "Reuse existing Taxon", null, style);
+               selection_reuseExistingTaxon = (TaxonSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON, getConversationHolder(), formElement, "Reuse existing Taxon", null, style);
                
                text_newTaxonName = formFactory.createTextWithLabelElement(formElement, "New Taxon", "", style);
 
index e2495af05f1dd76cb0deda61762b331ddad6fffa..e1f2231f4fe76ad092595293445d740f89dad075 100644 (file)
 
 package eu.etaxonomy.taxeditor.section.description.detail;
 
-import org.apache.log4j.Logger;
 import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory.SelectionType;
 import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
 import eu.etaxonomy.taxeditor.forms.TextWithLabelElement;
-import eu.etaxonomy.taxeditor.forms.CdmFormFactory.SelectionType;
-import eu.etaxonomy.taxeditor.forms.selection.TaxonBaseSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.TaxonSelectionElement;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -31,9 +30,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class TaxonInteractionDetailElement extends AbstractDetailedDescriptionDetailElement<TaxonInteraction>{
 
-       private static final Logger logger = Logger
-                       .getLogger(TaxonInteractionDetailElement.class);
-       private TaxonBaseSelectionElement taxonSelection;
+       private TaxonSelectionElement taxonSelection;
        private TextWithLabelElement interactionDescription;
 
        /**
@@ -53,7 +50,7 @@ public class TaxonInteractionDetailElement extends AbstractDetailedDescriptionDe
        @Override
        protected void createControls(ICdmFormElement formElement,
                        TaxonInteraction entity, int style) {
-               taxonSelection = (TaxonBaseSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON_BASE, getConversationHolder(), this, null, entity.getTaxon2(), SWT.WRAP);
+               taxonSelection = (TaxonSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON, getConversationHolder(), this, null, entity.getTaxon2(), SWT.WRAP);
                
                interactionDescription = formFactory.createMultilineTextWithLabel(this, "Description", 200, SWT.WRAP);
                interactionDescription.setText(entity.getDescription(CdmStore.getDefaultLanguage()));
index 4d827603ee26866a58c12f0e6ba91331de5a6906..b62432ddadf5cd4b1ba53f44a212a107bf00eefc 100644 (file)
@@ -14,6 +14,7 @@ import eu.etaxonomy.taxeditor.forms.selection.FeatureSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.PolytomousKeyNodeSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.PolytomousKeySelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.TaxonBaseSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.TaxonSelectionElement;
 import eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement;
 
 /**
@@ -26,7 +27,7 @@ public class PolytomousKeyNodeDetailElement extends AbstractCdmDetailElement<Pol
 
        private FeatureSelectionElement selection_feature;
        
-       private TaxonBaseSelectionElement selection_taxon;
+       private TaxonSelectionElement selection_taxon;
        
        private PolytomousKeySelectionElement selection_subkey;
        
@@ -53,7 +54,7 @@ public class PolytomousKeyNodeDetailElement extends AbstractCdmDetailElement<Pol
                selection_feature = (FeatureSelectionElement) formFactory.createSelectionElement(SelectionType.FEATURE, getConversationHolder(), formElement, "Feature", entity.getFeature(), style);
                
                if(entity.isLeaf()){
-                       selection_taxon = (TaxonBaseSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON_BASE, getConversationHolder(), formElement, "Taxon", entity.getTaxon(), style);
+                       selection_taxon = (TaxonSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON, getConversationHolder(), formElement, "Taxon", entity.getTaxon(), style);
                }
                
                selection_subkey = (PolytomousKeySelectionElement) formFactory.createSelectionElement(SelectionType.POLYTOMOUS_KEY, getConversationHolder(), formElement, "Subkey", entity.getSubkey(), style);
index ff2d242c39512de1661e0fe569aec2d285d288ae..2d315f7066b1c544118fc2c6f4e4727b6371d6e4 100644 (file)
@@ -57,11 +57,6 @@ public class SpecimenTypeDesignationElement extends
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
-               // TODO until we do not have a specimen editor we will provide a simple text interface to enter specimen 
-               // information
-               
-//             text_specimenTypeText = formFactory.createTextWithLabelElement(formElement, "Unit", null, style);
-               // TODO testing the specimen selection dialog
                selection_typeSpecimen = (DerivedUnitBaseSelectionElement) formFactory.createSelectionElement(SelectionType.DERIVED_UNIT, getConversationHolder(), formElement, "Unit", null, style);
                combo_typeStatus = (SpecimenTypeDesignationStatusComboElement) formFactory.createTermComboElement(TermComboType.SPECIMENTYPEDESIGNATIONSTATUS, formElement, "Designation Status", null, style);
                
@@ -72,10 +67,7 @@ public class SpecimenTypeDesignationElement extends
        @Override
        public void setEntity(SpecimenTypeDesignation entity) {
                super.setEntity(entity);
-               // TODO remove this once specimen are completely implemented
-               if(entity.getTypeSpecimen() != null && text_specimenTypeText != null){                  
-                       text_specimenTypeText.setText(entity.getTypeSpecimen().getTitleCache());
-               }
+               selection_typeSpecimen.setEntity(entity.getTypeSpecimen());
                
                SpecimenTypeDesignationStatus typeStatus = (SpecimenTypeDesignationStatus) HibernateProxyHelper.deproxy(entity.getTypeStatus());
                combo_typeStatus.setSelection(typeStatus);
index 4b877d1b688b951aa621fe3f30f6e84db6ac1bb2..87685764f78408a8db03d4c35ba1e14cbc83c405 100644 (file)
@@ -19,7 +19,7 @@ import eu.etaxonomy.taxeditor.forms.CdmFormFactory.SelectionType;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.TermComboType;
 import eu.etaxonomy.taxeditor.forms.CheckboxElement;
 import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
-import eu.etaxonomy.taxeditor.forms.selection.TaxonBaseSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.TaxonSelectionElement;
 import eu.etaxonomy.taxeditor.forms.term.DeterminationModifierComboElement;
 
 /**
@@ -34,7 +34,7 @@ public class DeterminationEventDetailElement extends
 
        private DeterminationModifierComboElement combo_determinationModifier;
        private CheckboxElement checkbox_preferredFlag;
-       private TaxonBaseSelectionElement selection_taxon;
+       private TaxonSelectionElement selection_taxon;
 //      private TODO a set of references
        
        /**
@@ -71,7 +71,7 @@ public class DeterminationEventDetailElement extends
 
                combo_determinationModifier = (DeterminationModifierComboElement) formFactory.createTermComboElement(TermComboType.DETERMINATION_MODIFIER, element, "Determination Modifier", null, style);
                checkbox_preferredFlag = formFactory.createCheckbox(element, "Preferred", false, style);
-               selection_taxon = (TaxonBaseSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON_BASE, getConversationHolder(), element, "Taxon", null, style);
+               selection_taxon = (TaxonSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON, getConversationHolder(), element, "Taxon", null, style);
                
                // TODO set of references
                
index 4507b9e5c9be57adab5b2eaf0bd970e0caeb2d01..93f50e376c2db14b77ea62b9bace53be9b01cd26 100644 (file)
@@ -17,6 +17,7 @@ import java.net.URISyntaxException;
 import org.apache.commons.io.FileUtils;
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.api.service.IMediaService;
 import eu.etaxonomy.cdm.common.mediaMetaData.ImageMetaData;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -93,7 +94,7 @@ public class ImageFileElement extends AbstractMediaRepresentationPartElement<Ima
                }
                try {
                        
-                       Integer size = CdmStore.getMediaService().getImageSize(uri, 10000);
+                       Integer size = CdmStore.getService(IMediaService.class).getImageSize(uri, 10000);
                        
                        if(size != null){
                                text_size.setText(FileUtils.byteCountToDisplaySize(size));
@@ -104,7 +105,7 @@ public class ImageFileElement extends AbstractMediaRepresentationPartElement<Ima
                        ImageMetaData imageInfo;
                        try {
                                
-                               imageInfo = CdmStore.getMediaService().getImageInfo(uri, 10000);
+                               imageInfo = CdmStore.getService(IMediaService.class).getImageInfo(uri, 10000);
                                        
                                text_height.setInteger(imageInfo.getHeight());
                                getEntity().setHeight(imageInfo.getHeight());
index 4e5d4931651e211bebcdf8251ac2714b028e403f..49dcdb6868267ff7e3051eca1dc349e40d408271 100644 (file)
       <menuContribution
             locationURI="menu:eu.etaxonomy.taxeditor.menu.showView">
          <command
-               commandId="eu.etaxonomy.taxeditor.navigation.command.showTaxonomicTreeView"
+               commandId="org.eclipse.ui.views.showView"
                label="Taxon Navigator"
                style="push">
+            <parameter
+                  name="org.eclipse.ui.views.showView.viewId"
+                  value="eu.etaxonomy.taxeditor.navigation.navigator">
+            </parameter>
          </command>
          <command
-               commandId="eu.etaxonomy.taxeditor.navigation.command.showPolytomousKeysView"
+               commandId="org.eclipse.ui.views.showView"
                label="Polytomous Keys"
                style="push">
+            <parameter
+                  name="org.eclipse.ui.views.showView.viewId"
+                  value="eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart">
+            </parameter>
          </command>
       </menuContribution>
       <menuContribution
          </activeWhen>
       </handler>
    </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.navigation.handler.ShowTaxonomicTreeViewHandler"
-            id="eu.etaxonomy.taxeditor.navigation.command.showTaxonomicTreeView"
-            name="Show Taxon Navigator View">
-      </command>
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.navigation.handler.ShowPolytomousKeysViewHandler"
-            id="eu.etaxonomy.taxeditor.navigation.command.showPolytomousKeysView"
-            name="Show Polytomous Keys">
-      </command>
-   </extension>
 
       
       <!--extension
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowPolytomousKeysViewHandler.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowPolytomousKeysViewHandler.java
deleted file mode 100644 (file)
index 0794e54..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.navigation.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
-import eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyViewPart;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
-/**
- * @author n.hoffmann
- *
- */
-public class ShowPolytomousKeysViewHandler extends AbstractHandler {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                                       .getActiveWorkbenchWindow().getActivePage().
-                                       showView(PolytomousKeyViewPart.ID,      null, IWorkbenchPage.VIEW_VISIBLE);                     
-               } catch (PartInitException e) {
-                       NavigationUtil.error(getClass(), e);
-               }
-               return null;
-       }
-
-}
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java
deleted file mode 100644 (file)
index a1a2e15..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.navigation.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
-import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
-/**
- * <p>ShowTaxonomicTreeViewHandler class.</p>
- *
- * @author n.hoffmann
- * @created 08.05.2009
- * @version 1.0
- */
-public class ShowTaxonomicTreeViewHandler extends AbstractHandler {
-
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                                       .getActiveWorkbenchWindow().getActivePage().
-                                       showView(TaxonNavigator.ID,     null, IWorkbenchPage.VIEW_VISIBLE);                     
-               } catch (PartInitException e) {
-                       NavigationUtil.error(getClass(), e);
-               }
-               return null;
-       }
-}
index 8e615e51dd6df53ce1bfe49b8aad4ab296072cb5..89f609b720a9a3efe0a4a5381cf6853fe3a8dfc4 100644 (file)
@@ -33,6 +33,7 @@ import org.eclipse.ui.part.ViewPart;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
@@ -176,7 +177,7 @@ public class PolytomousKeyViewPart extends ViewPart implements
 
        private void setInput() {
                conversation = CdmStore.createConversation();
-               List<PolytomousKey> input = CdmStore.getPolytomousKeyService().list(PolytomousKey.class, null, null, null, null);                       
+               List<PolytomousKey> input = CdmStore.getService(IPolytomousKeyService.class).list(PolytomousKey.class, null, null, null, null);                 
                viewer.setInput(input);
        }
 
index 8152602a5bd22f25fe444df4b98ca3f0ac635022..c3dbc56e869e593e650319ae5a283611769b0dea 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -50,7 +51,7 @@ public class DeleteOperation extends AbstractPersistentPostOperation {
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                bind();
-               CdmStore.getPolytomousKeyService().delete(key);
+               CdmStore.getService(IPolytomousKeyService.class).delete(key);
                return postExecute(null);
        }
 
index 2ee2b6a333196bb3a7fa7eb2406b4da612bcc16d..ef4e0317c1c1c878e12207b33c43417f5a6edd3e 100644 (file)
@@ -21,6 +21,7 @@ import org.eclipse.ui.IPersistableElement;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
@@ -56,14 +57,14 @@ public class Root extends PlatformObject implements IAdaptable, IPersistableElem
        public List<Classification> getParentBeans() {
                List<String> propertyPaths = Arrays.asList(new String[]{"name"});
                
-               List<Classification> classifications = CdmStore.getClassificationService().list(null, null, null, null, propertyPaths);
+               List<Classification> classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, propertyPaths);
                
                if(classifications.size() == 0){
                        Classification classification = Classification.NewInstance("My Classification");
                        AbstractPostOperation operation = new CreateClassification("Creating initial classification", NavigationUtil.getUndoContext(), classification, NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false));
                        NavigationUtil.executeOperation(operation);
                        
-                       classifications = CdmStore.getClassificationService().list(null, null, null, null, propertyPaths);
+                       classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, propertyPaths);
                }
                
                return classifications; 
index a66014f16a844d938278cafa3f3a6434b35ceeb0..6a118296ba23bf7397caa0d42fbede225a19a12f 100644 (file)
@@ -31,6 +31,7 @@ import org.eclipse.ui.navigator.CommonNavigator;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 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.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
@@ -179,10 +180,10 @@ public class TaxonNavigator extends CommonNavigator implements IPostOperationEna
                if(string.length() == 0) return null; 
                
                for (String uuid : string.split(" ")) {
-                       CdmBase cdmBaseObject = CdmStore.getClassificationService().getTaxonNodeByUuid(UUID.fromString(uuid));
+                       CdmBase cdmBaseObject = CdmStore.getService(IClassificationService.class).getTaxonNodeByUuid(UUID.fromString(uuid));
                        if (cdmBaseObject == null) {
                                // is this a tree uuid?
-                               cdmBaseObject = CdmStore.getClassificationService().getClassificationByUuid(UUID.fromString(uuid));
+                               cdmBaseObject = CdmStore.getService(IClassificationService.class).getClassificationByUuid(UUID.fromString(uuid));
                                
                                if(cdmBaseObject == null) return null;
                        }
index ca40a687eb3092e1ae76dafe538ab22a1fbe77a4..9ee8ef5425f8096451e1eddd56c2528fe40020ad 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -76,7 +77,7 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
                                        StoreUtil.warningDialog("Tree is not empty", this, "It is not possible to delete a Taxonomic Tree that " +
                                                        "is not empty. Please delete included taxa first");
                                }else{
-                                       CdmStore.getClassificationService().delete(taxonomicTree);
+                                       CdmStore.getService(IClassificationService.class).delete(taxonomicTree);
                                }
                        }
                }
index 3a81a4b37b7133126f1d0729584567a10dcadfe9..70e21b32b744d8421e3f5ceeeeb0c6d62827d281 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -58,7 +59,7 @@ public class EditClassificationOperation extends AbstractPersistentPostOperation
                        throws ExecutionException {
                bind();
                
-               CdmStore.getClassificationService().save(classification);
+               CdmStore.getService(IClassificationService.class).save(classification);
                
                monitor.worked(40);
 
index 9bebe148fdd863006674c011d207f4c8f4e4151c..15ef9b648504158b2683b5dfb746bf675b25477c 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
 import eu.etaxonomy.cdm.model.taxon.Classification;
@@ -69,7 +70,7 @@ public class CreateClassification extends AbstractPersistentPostOperation {
                        classification.setReference(reference);
                }
                
-               CdmStore.getClassificationService().saveOrUpdate(classification);
+               CdmStore.getService(IClassificationService.class).saveOrUpdate(classification);
                
                monitor.worked(40);
 
index 210f59d9fad1f5016664d0a8855a80125b1b5fd6..1c8719dc5d0f3325e911f7c12c9b4f8fcfdec2d3 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -54,7 +55,7 @@ public class CreatePolytomousKey extends AbstractPersistentPostOperation {
                        throws ExecutionException {
                bind();
                monitor.worked(20);
-               CdmStore.getPolytomousKeyService().saveOrUpdate(key);
+               CdmStore.getService(IPolytomousKeyService.class).saveOrUpdate(key);
                monitor.worked(40);
                
                return postExecute(key);
index 1ff9afee6a96a57080589672be4ed67a7fae33d2..c6084d696e81f515e31c3b77e64c8618f71e2bbc 100644 (file)
@@ -18,10 +18,12 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -93,11 +95,11 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
                
                        monitor.worked(40);
 
-                       CdmStore.getTaxonNodeService().saveOrUpdate(childTaxonNode);
+                       CdmStore.getService(ITaxonNodeService.class).saveOrUpdate(childTaxonNode);
                        
                        return postExecute(childTaxonNode);
                }catch(Exception e){
-                       StoreUtil.warningDialog("Could not create taxon node", this, e.getMessage());
+                       NavigationUtil.errorDialog("Could not create taxon node", getClass(), e.getLocalizedMessage(), e);
                        return Status.CANCEL_STATUS;
                }               
        }
index 786396f29273bc4e6e3d252e3cb579891aaa9dc8..22eab666f21513072bcfe4b500cd5b7163b007db 100644 (file)
@@ -18,6 +18,7 @@ import org.eclipse.ui.IWorkbench;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 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.persistence.hibernate.CdmDataChangeMap;
@@ -37,9 +38,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class ClassificationWizard extends Wizard implements INewWizard, IPostOperationEnabled, IConversationEnabled {
        
-       private static final Logger logger = Logger
-       .getLogger(ClassificationWizard.class);
-
        private ClassificationWizardPage page;
        
        private Classification classification;
@@ -62,7 +60,7 @@ public class ClassificationWizard extends Wizard implements INewWizard, IPostOpe
        public ClassificationWizard(Classification classification){
                this();
                setWindowTitle("Edit Entity");
-               this.classification = CdmStore.getClassificationService().load(classification.getUuid());
+               this.classification = CdmStore.getService(IClassificationService.class).load(classification.getUuid());
        }
        
        /* (non-Javadoc)
index 12373d9d86b410c45a77c9b74faf8030a13d77a0..c398d2bc8283623b5c69ad7665fd1685b77915c9 100644 (file)
@@ -11,6 +11,8 @@ import org.eclipse.ui.IWorkbench;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
@@ -74,10 +76,10 @@ public class NewTaxonNodeWizard extends Wizard implements INewWizard, IPostOpera
                                ITreeNode treeNode = (ITreeNode) selectedObject;
                                
                                if(treeNode instanceof Classification){
-                                       return CdmStore.getClassificationService().load(treeNode.getUuid());
+                                       return CdmStore.getService(IClassificationService.class).load(treeNode.getUuid());
                                }
                                else if(treeNode instanceof TaxonNode){
-                                       return CdmStore.getTaxonNodeService().load(treeNode.getUuid());
+                                       return CdmStore.getService(ITaxonNodeService.class).load(treeNode.getUuid());
                                }
                        }
                }
@@ -189,63 +191,4 @@ public class NewTaxonNodeWizard extends Wizard implements INewWizard, IPostOpera
        public ConversationHolder getConversationHolder() {
                return conversation;
        }
-       
-       
-//     private static final Logger logger = Logger.getLogger(NewTaxonNodeWizard.class);
-//     private TaxonNodeWizardPage page;
-//
-//     /**
-//      * @param configuration
-//      */
-//     public NewTaxonNodeWizard() {
-//     }
-//     
-//     /* (non-Javadoc)
-//      * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#performFinish()
-//      */
-//     @Override
-//     public boolean performFinish() {
-//             return super.performFinish();
-//     }
-//     
-//     /* (non-Javadoc)
-//      * @see org.eclipse.jface.wizard.Wizard#addPages()
-//      */
-//     @Override
-//     public void addPages() {
-//             page = new TaxonNodeWizardPage(formFactory, getConversationHolder(), (ITreeNode) selection.getFirstElement());
-//             addPage(page);
-//     }
-//     
-//     /* (non-Javadoc)
-//      * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#getEntity()
-//      */
-//     @Override
-//     public ITreeNode getEntity() {
-//             return getDetailElement().getParentTreeNode();
-//     }
-//     
-//     /* (non-Javadoc)
-//      * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#saveEntity()
-//      */
-//     @Override
-//     protected void saveEntity() {
-//             getEntity().addChildTaxon(getDetailElement().getTaxon(), getEntity().getReference(), getEntity().getMicroReference(), null);
-//     }
-//
-//     /* (non-Javadoc)
-//      * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
-//      */
-//     @Override
-//     protected TaxonNode createNewEntity() {
-//             return null;
-//     }
-//
-//     /**
-//      * @return
-//      */
-//     public TaxonNodeDetailElement getDetailElement() {
-//             return (TaxonNodeDetailElement) page.getDetailElement();
-//     }
-
 }
index 555b5b66a02d3d2eec37b4b15f5985b2b3a8d37a..07ae7af4bf58b3ca7dad4c50817b2ba2af3fcf14 100644 (file)
@@ -20,6 +20,7 @@ import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
@@ -36,8 +37,8 @@ import eu.etaxonomy.taxeditor.forms.RootElement;
 import eu.etaxonomy.taxeditor.forms.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.forms.selection.ClassificationSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.NameSelectionElement;
-import eu.etaxonomy.taxeditor.forms.selection.TaxonBaseSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.TaxonNodeSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.TaxonSelectionElement;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
 
@@ -51,7 +52,7 @@ import eu.etaxonomy.taxeditor.parser.ParseHandler;
 public class NewTaxonNodeWizardPage extends WizardPage implements IPropertyChangeListener, IConversationEnabled{       
        private ClassificationSelectionElement selection_classification;
        private TaxonNodeSelectionElement selection_parentTaxonNode;
-       private TaxonBaseSelectionElement selection_reuseExistingTaxon;
+       private TaxonSelectionElement selection_reuseExistingTaxon;
        private TextWithLabelElement text_newTaxonName;
        private CheckboxElement checkbox_openInEditor;
        private CdmFormFactory formFactory;
@@ -107,18 +108,24 @@ public class NewTaxonNodeWizardPage extends WizardPage implements IPropertyChang
                        setParentTreeNode(selection_parentTaxonNode.getEntity());
                }
                else if(eventSource == selection_reuseExistingTaxon){
-                       TaxonBase taxonBase = selection_reuseExistingTaxon.getEntity();
+                       boolean enabled = selection_reuseExistingTaxon.getEntity() == null;
+                       selection_reuseExistingName.setEnabled(enabled);
+                       text_newTaxonName.setEnabled(enabled);
                        
-                       if(taxonBase instanceof Synonym){
-                               NavigationUtil.warningDialog("Selected Taxon is a Synonym", this, "This case is not handled yet.");
-                       }
-                       
-                       setTaxon((Taxon) taxonBase);
+                       setTaxon(selection_reuseExistingTaxon.getEntity());
                }
                else if(eventSource == selection_reuseExistingName){
+                       boolean enabled = selection_reuseExistingName.getEntity() == null;
+                       selection_reuseExistingTaxon.setEnabled(enabled);
+                       text_newTaxonName.setEnabled(enabled);
+                       
                        setTaxon(selection_reuseExistingName.getEntity());
                }
                else if(eventSource == text_newTaxonName){
+                       boolean enabled = CdmUtils.isEmpty(text_newTaxonName.getText());
+                       selection_reuseExistingTaxon.setEnabled(enabled);
+                       selection_reuseExistingName.setEnabled(enabled);
+                       
                        setTaxon(text_newTaxonName.getText());
                }
                else if(eventSource == checkbox_openInEditor){
@@ -142,7 +149,8 @@ public class NewTaxonNodeWizardPage extends WizardPage implements IPropertyChang
                
                selection_classification = (ClassificationSelectionElement) formFactory.createSelectionElement(SelectionType.CLASSIFICATION, getConversationHolder(), rootElement, "Classification", null, SWT.NULL);
                selection_parentTaxonNode = (TaxonNodeSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON_NODE, getConversationHolder(), rootElement, "Parent", null, SWT.NULL);
-               selection_reuseExistingTaxon = (TaxonBaseSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON_BASE, getConversationHolder(), rootElement, "Reuse existing Taxon", null, SWT.NULL);
+               selection_reuseExistingTaxon = (TaxonSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON, getConversationHolder(), rootElement, "Reuse existing Taxon", null, SWT.NULL);
+               
                selection_reuseExistingName = (NameSelectionElement) formFactory.createSelectionElement(SelectionType.NAME, getConversationHolder(), rootElement, "Reuse existing name", null, SWT.NULL);
                
                text_newTaxonName = formFactory.createTextWithLabelElement(rootElement, "New Taxon", "", SWT.NULL);
index 64f3642665d653df1d1241259f823ceededce68f..bf16825d19253d1d5122604d095bdb163b3ca88f 100644 (file)
             name="Available Languages">
       </page>
       <page
-            category="eu.etaxonomy.taxeditor.preferences.taxonomic"
+            category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.menu.MarkerTypeMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.markerTypes"
             name="Marker Types">
       </page>
       <page
-            category="eu.etaxonomy.taxeditor.preferences.taxonomic"
+            category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.menu.ExtensionTypeMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.extensionTypes"
             name="Extension Types">
                        category="org.eclipse.ui"  
                        class="org.eclipse.ui.ExtensionFactory:logView"  
                        id="org.eclipse.ui.views.LogView">  
-               </view>  
+               </view>
+  <view
+        class="eu.etaxonomy.taxeditor.reporting.ReportingViewPart"
+        id="eu.etaxonomy.taxeditor.reporting.viewPart"
+        name="Reporting"
+        restorable="true">
+  </view>  
    </extension>
    <extension
          point="org.eclipse.ui.menus">
                   visible="true">
             </separator>
             <command
-                  commandId="eu.etaxonomy.taxeditor.store.operations.showDatasourceView"
+                  commandId="org.eclipse.ui.views.showView"
                   label="Datasource"
                   style="push">
+               <parameter
+                     name="org.eclipse.ui.views.showView.viewId"
+                     value="eu.etaxonomy.taxeditor.store.datasource.datasourceView">
+               </parameter>
             </command>
             <command
-                  commandId="eu.etaxonomy.taxeditor.store.operations.showUserManagerView"
+                  commandId="org.eclipse.ui.views.showView"
                   label="User Manager"
                   style="push">
+               <parameter
+                     name="org.eclipse.ui.views.showView.viewId"
+                     value="eu.etaxonomy.taxeditor.store.userManagerView">
+               </parameter>
             </command>
             <command
-                  commandId="eu.etaxonomy.taxeditor.store.operations.showErrorView"
+                  commandId="org.eclipse.ui.views.showView"
                   label="Messages"
                   style="push">
+               <parameter
+                     name="org.eclipse.ui.views.showView.viewId"
+                     value="org.eclipse.pde.runtime.LogView">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.views.showView"
+                  label="Reporting"
+                  style="push">
+               <parameter
+                     name="org.eclipse.ui.views.showView.viewId"
+                     value="eu.etaxonomy.taxeditor.reporting.viewPart">
+               </parameter>
             </command>
          </menu>
       </menuContribution>
    <extension
          name="Window Menu Commands"
          point="org.eclipse.ui.commands">
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.handler.ShowDataSourceViewHandler"
-            id="eu.etaxonomy.taxeditor.store.operations.showDatasourceView"
-            name="Show Datasource View">
-      </command>
-      <command
-            defaultHandler="eu.etaxonomy.taxeditor.handler.ShowUserManagerViewHandler"
-            id="eu.etaxonomy.taxeditor.store.operations.showUserManagerView"
-            name="Show User Manager View">
-      </command>
-      <command
-               defaultHandler="eu.etaxonomy.taxeditor.handler.ShowErrorViewHandler"
-            id="eu.etaxonomy.taxeditor.store.operations.showErrorView"
-            name="Show Error View">
-      </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.handler.ShowLoginWindowHandler"
             id="eu.etaxonomy.taxeditor.store.operations.showLoginWindow"
index 56a474d193e61f64983900643e897065d88d45f1..65385dedf7bfb913d6c141d332f650b33aa378d1 100644 (file)
@@ -18,6 +18,7 @@ import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.datasource.view.CdmMetaDataAwareDataSourceContainer;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
@@ -39,6 +40,11 @@ public class ChangeConnectionHandler extends AbstractHandler {
                if(selection != null && selection instanceof IStructuredSelection){
                        CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) ((IStructuredSelection) selection).getFirstElement();
                        
+                       if(CdmStore.isConnecting()){
+                               StoreUtil.warningDialog("Already connecting", this, "You are currently connecting to a different datasource already.");
+                               return null;
+                       }
+                       
                        if(!container.isRunning()){
                                StoreUtil.warningDialog("Chosen datasource is not available", this, "This could mean that either the database server is " +
                                                "not running or the machine is not reachable.\n\n" +
index 137d0193cd2f6594055bf118c535f3ad76e2412b..adac91b5195aa0396018173e6c4a776eac2e1b16 100644 (file)
@@ -11,6 +11,7 @@
 package eu.etaxonomy.taxeditor.featuretree;
 
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import org.eclipse.jface.viewers.CheckboxTableViewer;
@@ -22,7 +23,6 @@ import org.eclipse.swt.widgets.Composite;
 
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.menu.DefinedTermBaseContentProvider;
 import eu.etaxonomy.taxeditor.preference.menu.DefinedTermBaseLabelProvider;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -37,6 +37,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class AvailableFeaturesWizardPage extends WizardPage {
 
        private CheckboxTableViewer viewer;
+       private FeatureTree featureTree;
 
        /**
         * <p>Constructor for AvailableFeaturesWizardPage.</p>
@@ -44,7 +45,10 @@ public class AvailableFeaturesWizardPage extends WizardPage {
         * @param featureTree a {@link eu.etaxonomy.cdm.model.description.FeatureTree} object.
         */
        protected AvailableFeaturesWizardPage(FeatureTree featureTree) {
-               super("AvailableFeaturesWizardPage");
+               super("AvailableFeaturesWizardPage");           
+               this.featureTree = featureTree;
+               setTitle("Available Features");
+               setDescription("Please select features you want to add to the tree. Features already in the tree do not show.");
        }
        
        /* (non-Javadoc)
@@ -63,7 +67,7 @@ public class AvailableFeaturesWizardPage extends WizardPage {
                viewer.setContentProvider(new DefinedTermBaseContentProvider());                
                viewer.setLabelProvider(new DefinedTermBaseLabelProvider());
                
-               viewer.setInput(CdmStore.getTermManager().getPreferredFeatures());
+               viewer.setInput(getAvailableFeatures());
                
                setControl(composite);
        }
@@ -85,4 +89,21 @@ public class AvailableFeaturesWizardPage extends WizardPage {
                
                return features;
        }
+       
+       /**
+        * We want to show only features that are not already in the featureTree
+        * 
+        * @return
+        */
+       private List<Feature> getAvailableFeatures(){
+               
+               List<Feature> preferredFeatures = CdmStore.getTermManager().getPreferredFeatures();
+               
+               for(Feature featureAlreadyInTree : featureTree.getDistinctFeatures()){
+                       preferredFeatures.remove(featureAlreadyInTree);
+               }
+               
+               return preferredFeatures;
+               
+       }
 }
index cd5f2de441946fd8f6d5962e19cae65024d4b722..98386cae2d6c485f67b1b9df3f9c5ba4a99383ab 100644 (file)
@@ -38,6 +38,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureNode;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
@@ -184,7 +185,7 @@ public class EditFeatureTreeWizardPage extends WizardPage implements ModifyListe
                                Collection<Feature> additionalFeatures = wizard.getAdditionalFeatures();
                                for(Feature feature : additionalFeatures){
                                        FeatureNode child = FeatureNode.NewInstance(feature);
-                                       CdmStore.getFeatureNodeService().saveOrUpdate(child);
+                                       CdmStore.getService(IFeatureNodeService.class).saveOrUpdate(child);
                                        parent.addChild(child);
                                }
                                viewer.refresh();
@@ -203,6 +204,7 @@ public class EditFeatureTreeWizardPage extends WizardPage implements ModifyListe
                                FeatureNode parent = featureNode.getParent();
                                parent.removeChild(featureNode);
                        }
+                       viewer.refresh();
                }
        }
        
index c9ef786326fdcc27c74177e94240ac6338d9e22e..44a5c8e22c9a6907c92c7652dcc731a92ee44a8a 100644 (file)
@@ -23,6 +23,7 @@ import java.util.UUID;
 import org.eclipse.swt.dnd.ByteArrayTransfer;
 import org.eclipse.swt.dnd.TransferData;
 
+import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
 import eu.etaxonomy.cdm.model.description.FeatureNode;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -145,7 +146,7 @@ public class FeatureNodeTransfer extends ByteArrayTransfer {
                
                UUID uuid = UUID.fromString(dataIn.readUTF());
                
-               FeatureNode featureNode = CdmStore.getFeatureNodeService().load(uuid);
+               FeatureNode featureNode = CdmStore.getService(IFeatureNodeService.class).load(uuid);
                
                return featureNode;
        }
index b9447aa47073eb27e97d630794f5839819c4af6e..49a606c4445f8d9c85a25fab1c7420349779540a 100644 (file)
@@ -13,6 +13,7 @@ package eu.etaxonomy.taxeditor.featuretree;
 import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -57,7 +58,7 @@ public class FeatureTreeEditorWizard extends Wizard {
        @Override
        public boolean performFinish() {
                try{
-                       CdmStore.getFeatureTreeService().saveOrUpdate(selectedFeatureTree);
+                       CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(selectedFeatureTree);
                        conversation.commit();
                }finally{
                        conversation.close();
index 4ecf0ff7db90d5cc6eaedd9f8a0ded3cfe2dd4c8..de1a6b42a257cc4d651907d4d0477c363c38d6f8 100644 (file)
@@ -30,6 +30,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -104,7 +105,7 @@ public class SelectFeatureTreeWizardPage extends WizardPage implements ISelectio
                button_add.addSelectionListener(new AddButtonSelectionListener());
                button_remove.addSelectionListener(new RemoveButtonSelectionListener());
                
-               List<FeatureTree> input = CdmStore.getFeatureTreeService().list(FeatureTree.class, null, null, null, null);
+               List<FeatureTree> input = CdmStore.getService(IFeatureTreeService.class).list(FeatureTree.class, null, null, null, null);
                
                viewer.setInput(input);
                modifyText(null);
@@ -145,7 +146,7 @@ public class SelectFeatureTreeWizardPage extends WizardPage implements ISelectio
                        featureTree.setTitleCache(text_title.getText(), true);
                        
                        viewer.add(featureTree);
-                       CdmStore.getFeatureTreeService().saveOrUpdate(featureTree);
+                       CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(featureTree);
                        text_title.setText("");
                        viewer.setSelection(new StructuredSelection(featureTree));
                        
@@ -157,7 +158,7 @@ public class SelectFeatureTreeWizardPage extends WizardPage implements ISelectio
                        IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                        for(Object element : selection.toArray()){
                                viewer.remove(element);
-                               CdmStore.getFeatureTreeService().delete((FeatureTree) element);
+                               CdmStore.getService(IFeatureTreeService.class).delete((FeatureTree) element);
                                viewer.setSelection(new StructuredSelection(new Object[0]));
                        }
                }
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewHandler.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewHandler.java
deleted file mode 100644 (file)
index 47af329..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.datasource.view.CdmDataSourceViewPart;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
-/**
- * <p>ShowDataSourceViewHandler class.</p>
- *
- * @author n.hoffmann
- * @created 14.04.2009
- * @version 1.0
- */
-public class ShowDataSourceViewHandler extends AbstractHandler implements IHandler {
-       
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                               .getActiveWorkbenchWindow().getActivePage().showView(CdmDataSourceViewPart.ID, 
-                                       null, IWorkbenchPage.VIEW_VISIBLE);
-               } catch (PartInitException e) {
-                       StoreUtil.error(this.getClass(), "Error opening data source view.", e);
-               }
-               return null;
-       }
-
-}
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowErrorViewHandler.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowErrorViewHandler.java
deleted file mode 100644 (file)
index 6fb9091..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
-/**
- * <p>ShowErrorViewHandler class.</p>
- *
- * @author n.hoffmann
- * @created Oct 13, 2010
- * @version 1.0
- */
-public class ShowErrorViewHandler extends AbstractHandler {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public Object execute(ExecutionEvent arg0) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                               .getActiveWorkbenchWindow().getActivePage().showView("org.eclipse.pde.runtime.LogView", 
-                                       null, IWorkbenchPage.VIEW_VISIBLE);
-               } catch (PartInitException e) {
-                       StoreUtil.error(this.getClass(), e);
-               }
-               return null;
-       }
-}
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowUserManagerViewHandler.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowUserManagerViewHandler.java
deleted file mode 100644 (file)
index 44f3108..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-import eu.etaxonomy.taxeditor.user.view.UserManagerView;
-
-/**
- * <p>ShowUserManagerViewHandler class.</p>
- *
- * @author n.hoffmann
- * @created 01.07.2009
- * @version 1.0
- */
-public class ShowUserManagerViewHandler  extends AbstractHandler implements IHandler{
-       
-       /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       TaxeditorStorePlugin.getDefault().getWorkbench()
-                               .getActiveWorkbenchWindow().getActivePage().showView(UserManagerView.ID, 
-                                       null, IWorkbenchPage.VIEW_VISIBLE);
-               } catch (PartInitException e) {
-                       StoreUtil.error(this.getClass(), e);
-               }
-               return null;
-       }
-}
similarity index 92%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOHandler.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java
index 6010a90156afcb6496afc5e9d5435703f68bb48f..660366a0e5a8f818a88e228d02ce2b8076cdda08 100644 (file)
@@ -23,7 +23,7 @@ import eu.etaxonomy.cdm.io.common.IIoConfigurator;
  * @created Sep 11, 2009
  * @version 1.0
  */
-public abstract class AbstractIOHandler<CONFIGURATOR extends IIoConfigurator> {
+public abstract class AbstractIOManager<CONFIGURATOR extends IIoConfigurator> {
 
        protected CdmApplicationController applicationController;
        
@@ -37,7 +37,7 @@ public abstract class AbstractIOHandler<CONFIGURATOR extends IIoConfigurator> {
         * @param applicationController a {@link eu.etaxonomy.cdm.api.application.CdmApplicationController} object.
         * @param <CONFIGURATOR> a CONFIGURATOR object.
         */
-       protected AbstractIOHandler(CdmApplicationController applicationController){
+       protected AbstractIOManager(CdmApplicationController applicationController){
                this.applicationController = applicationController;
        }
        
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ExportHandler.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ExportManager.java
index df9826b634a21e72feb71b3bbbdc1f6819a8d33c..d8697df40ac10aa5cc7a3ae5f091117a684b0972 100644 (file)
@@ -34,13 +34,13 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @created Sep 11, 2009
  * @version 1.0
  */
-public class ExportHandler extends AbstractIOHandler<IExportConfigurator>{
+public class ExportManager extends AbstractIOManager<IExportConfigurator>{
        
        /**
         * 
         * @param applicationController
         */
-       private ExportHandler(CdmApplicationController applicationController){
+       private ExportManager(CdmApplicationController applicationController){
                super(applicationController);
        }
        
@@ -48,10 +48,10 @@ public class ExportHandler extends AbstractIOHandler<IExportConfigurator>{
         * <p>NewInstance</p>
         *
         * @param applicationController a {@link eu.etaxonomy.cdm.api.application.CdmApplicationController} object.
-        * @return a {@link eu.etaxonomy.taxeditor.io.ExportHandler} object.
+        * @return a {@link eu.etaxonomy.taxeditor.io.ExportManager} object.
         */
-       public static ExportHandler NewInstance(CdmApplicationController applicationController){
-               return new ExportHandler(applicationController);
+       public static ExportManager NewInstance(CdmApplicationController applicationController){
+               return new ExportManager(applicationController);
        }
        
        /**
similarity index 96%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ImportHandler.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
index ab6abcb5ac9403606afbb50e73187c7c325596f4..a483a10b663cdad8872d0078c5ca075b882da775 100644 (file)
@@ -39,12 +39,12 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @created Sep 11, 2009
  * @version 1.0
  */
-public class ImportHandler extends AbstractIOHandler<IImportConfigurator> {
+public class ImportManager extends AbstractIOManager<IImportConfigurator> {
 
        /**
         * @param applicationController
         */
-       private ImportHandler(
+       private ImportManager(
                        CdmApplicationController applicationController) {
                super(applicationController);
        }
@@ -53,10 +53,10 @@ public class ImportHandler extends AbstractIOHandler<IImportConfigurator> {
         * <p>NewInstance</p>
         *
         * @param applicationController a {@link eu.etaxonomy.cdm.api.application.CdmApplicationController} object.
-        * @return a {@link eu.etaxonomy.taxeditor.io.ImportHandler} object.
+        * @return a {@link eu.etaxonomy.taxeditor.io.ImportManager} object.
         */
-       public static ImportHandler NewInstance(CdmApplicationController applicationController){
-               return new ImportHandler(applicationController);
+       public static ImportManager NewInstance(CdmApplicationController applicationController){
+               return new ImportManager(applicationController);
        }
        
        /**
index d661a19dd4ef338c3a6e0240464442563093d5c5..cffeb064eca678434362acee2c912137a1d0dd0a 100644 (file)
@@ -50,7 +50,7 @@ public class AbcdImportWizard extends AbstractImportWizard<Abcd206ImportConfigur
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
                
-               CdmStore.getImportHandler().run(configurator);
+               CdmStore.getImportManager().run(configurator);
                return true;
                
        }
@@ -60,7 +60,7 @@ public class AbcdImportWizard extends AbstractImportWizard<Abcd206ImportConfigur
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator =  CdmStore.getImportHandler().AbcdConfigurator();
+               configurator =  CdmStore.getImportManager().AbcdConfigurator();
        }
        
        /* (non-Javadoc)
index 86eadf8c21bb84d3ec9821a026aeab3a6132481e..c54ac4ba4f44df7f73353d1e27f4363b0ba51e78 100644 (file)
@@ -75,7 +75,7 @@ public class BerlinModelExportWizard extends AbstractExportWizard<BerlinModelExp
                
                configurator.setDestination(destination);               
                
-               CdmStore.getExportHandler().run(configurator);
+               CdmStore.getExportManager().run(configurator);
                
                return true;
        }
index f9d19be9929e97eddb884df7b8e4833e935fa7f3..19d931866126f25838dafec0b6e47ef1650150fe 100644 (file)
@@ -37,7 +37,7 @@ public class BerlinModelImportWizard extends AbstractImportWizard<BerlinModelImp
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator =  CdmStore.getImportHandler().BerlinModelConfigurator();
+               configurator =  CdmStore.getImportManager().BerlinModelConfigurator();
        }
 
        /* (non-Javadoc)
@@ -62,7 +62,7 @@ public class BerlinModelImportWizard extends AbstractImportWizard<BerlinModelImp
                
                configurator.setSource(source);
                
-               CdmStore.getImportHandler().run(configurator);
+               CdmStore.getImportManager().run(configurator);
                
                return true;
        }
index 227286bb97f8020c77064eb8a588e8be10e51488..9f3d6b7673690102623f42c4bbc2f3efd25f202a 100644 (file)
@@ -42,7 +42,7 @@ public class EndnoteImportWizard extends AbstractImportWizard<EndnoteImportConfi
                File file = dataSourcePage.getFile();
                configurator.setSource(file.toURI());
                
-               CdmStore.getImportHandler().run(configurator);
+               CdmStore.getImportManager().run(configurator);
                
                return true;
        }
@@ -64,7 +64,7 @@ public class EndnoteImportWizard extends AbstractImportWizard<EndnoteImportConfi
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator =  CdmStore.getImportHandler().EndnoteConfigurator();
+               configurator =  CdmStore.getImportManager().EndnoteConfigurator();
        }
 
        /* (non-Javadoc)
index d0f8d9f90c42587bda5cd0c55f53849bc288d121..8ad197c19ec22492f44d08814427e2b48817745c 100644 (file)
@@ -52,7 +52,7 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
                
-               CdmStore.getImportHandler().run(configurator);
+               CdmStore.getImportManager().run(configurator);
                
                return true;
        }
@@ -62,7 +62,7 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator =  CdmStore.getImportHandler().NormalExplicitConfigurator();
+               configurator =  CdmStore.getImportManager().NormalExplicitConfigurator();
        }
 
        /* (non-Javadoc)
index 86a67ed6c4701ffd58fed7995f39c31d9d87ff05..d9812712ca23fc5541d9a590c0998dc132d500d0 100644 (file)
@@ -37,7 +37,7 @@ public class JaxbExportWizard extends AbstractExportWizard<JaxbExportConfigurato
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
                this.setWindowTitle("JAXB Export");
-               this.configurator = CdmStore.getExportHandler().JaxbConfigurator();
+               this.configurator = CdmStore.getExportManager().JaxbConfigurator();
        }
        
        /* (non-Javadoc)
@@ -51,7 +51,7 @@ public class JaxbExportWizard extends AbstractExportWizard<JaxbExportConfigurato
                
                configurator.setDestination(urlString);
                
-               CdmStore.getExportHandler().run(configurator);
+               CdmStore.getExportManager().run(configurator);
                
                return true;
        }
index 6388db728c806c91592cefa92a5131aa958048f2..d11c33b22becd586b92e8ad5ce5568992183ffe0 100644 (file)
@@ -51,7 +51,7 @@ public class JaxbImportWizard extends AbstractImportWizard<JaxbImportConfigurato
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
                
-               CdmStore.getImportHandler().run(configurator);
+               CdmStore.getImportManager().run(configurator);
                
                return true;
        }
@@ -61,7 +61,7 @@ public class JaxbImportWizard extends AbstractImportWizard<JaxbImportConfigurato
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator =  CdmStore.getImportHandler().JaxbConfigurator();
+               configurator =  CdmStore.getImportManager().JaxbConfigurator();
        }
 
        /* (non-Javadoc)
index 15af00348c6c13103edef1b4e1ec7c48d7f0d7e8..c6eb0787ba710544d51b349a2461fead6ecb7e9b 100644 (file)
@@ -50,7 +50,7 @@ public class SddExportWizard extends AbstractExportWizard<SDDExportConfigurator>
                
                configurator.setDestination(file);
                
-               CdmStore.getExportHandler().run(configurator);
+               CdmStore.getExportManager().run(configurator);
                
                return true;
        }
@@ -74,6 +74,6 @@ public class SddExportWizard extends AbstractExportWizard<SDDExportConfigurator>
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {                
                this.setWindowTitle("SDD Export");
-               this.configurator = CdmStore.getExportHandler().SddConfigurator();
+               this.configurator = CdmStore.getExportManager().SddConfigurator();
        }
 }
index 801e74de8bc87965ac6ba0fb2a6408ac8a107f0b..7363276bdb64fd9b7d3cd2d288726ab57ee70fbe 100644 (file)
@@ -65,7 +65,7 @@ public class SddImportWizard extends AbstractImportWizard<SDDImportConfigurator>
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
                
-               CdmStore.getImportHandler().run(configurator);
+               CdmStore.getImportManager().run(configurator);
                
                return true;
        }
@@ -75,6 +75,6 @@ public class SddImportWizard extends AbstractImportWizard<SDDImportConfigurator>
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator =  CdmStore.getImportHandler().SddConfigurator();
+               configurator =  CdmStore.getImportManager().SddConfigurator();
        }
 }
index e76541721879e8105e609a86164c4c4dd70e6338..cf98bce39b572b2e32e93953b8f4212344cec145 100644 (file)
@@ -40,7 +40,7 @@ public class TcsExportWizard extends AbstractExportWizard<TcsXmlExportConfigurat
                
                configurator.setDestination(new File(urlString));
                
-               CdmStore.getExportHandler().run(configurator);
+               CdmStore.getExportManager().run(configurator);
                
                return true;
        }
index c869444838404d2449409a1f48008a0ee66c2ccf..efbf92c2e277627921d6919ef75bb444d4ee7cda 100644 (file)
@@ -42,7 +42,7 @@ public class TcsImportWizard extends AbstractImportWizard<TcsXmlImportConfigurat
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
                
-               CdmStore.getImportHandler().run(configurator);
+               CdmStore.getImportManager().run(configurator);
                
                return true;
        }
@@ -52,7 +52,7 @@ public class TcsImportWizard extends AbstractImportWizard<TcsXmlImportConfigurat
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator = CdmStore.getImportHandler().TcsConfigurator();
+               configurator = CdmStore.getImportManager().TcsConfigurator();
        }
 
        /* (non-Javadoc)
index adb9f3a5ada1efe6edae997e1ba667b1cad7d171..dddcba75dde6ef77efd5ebdca653c85ee3633e02 100644 (file)
@@ -9,6 +9,7 @@ import java.util.List;
 
 import org.eclipse.swt.widgets.Control;
 
+import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.name.NonViralName;
@@ -319,7 +320,7 @@ public class ParseHandler{
        private List<INomenclaturalReference> findMatchingNomenclaturalReference(INomenclaturalReference nomenclaturalReference) {
                if(nomenclaturalReference == null) return new ArrayList<INomenclaturalReference>();
                try{
-                       return CdmStore.getCommonService().findMatching(nomenclaturalReference, MatchStrategyConfigurator.ReferenceMatchStrategy());
+                       return CdmStore.getService(ICommonService.class).findMatching(nomenclaturalReference, MatchStrategyConfigurator.ReferenceMatchStrategy());
                }catch (MatchException e) {
                        StoreUtil.error(this.getClass(), "Error finding matching references", e);
                }
@@ -337,7 +338,7 @@ public class ParseHandler{
                }
                
                try{
-                       return CdmStore.getCommonService().findMatching(authorTeam, MatchStrategyConfigurator.TeamOrPersonMatchStrategy());
+                       return CdmStore.getService(ICommonService.class).findMatching(authorTeam, MatchStrategyConfigurator.TeamOrPersonMatchStrategy());
                }catch (MatchException e) {
                        StoreUtil.error(this.getClass(), "Error finding matching authors", e);
                }
@@ -351,7 +352,7 @@ public class ParseHandler{
        private List<TaxonNameBase> findMatchingLatinNames(TaxonNameBase taxonNameBase) {
 
                try {
-                       return CdmStore.getCommonService().findMatching(taxonNameBase, MatchStrategyConfigurator.NonViralNameMatchStrategy());
+                       return CdmStore.getService(ICommonService.class).findMatching(taxonNameBase, MatchStrategyConfigurator.NonViralNameMatchStrategy());
                        
                } catch (MatchException e) {
                        StoreUtil.error(this.getClass(), "Error finding matching names", e);
index 5f05299e3d016dc70a7cf5b2fbeca7dea70c60ef..a85d94b6c6d5f39793a07522f9730c64ff145195 100644 (file)
@@ -27,6 +27,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
+import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
 import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
@@ -82,7 +83,7 @@ public class DefaultFeatureTreePreferenecs extends PreferencePage implements IWo
                        }
                });
                
-               List<FeatureTree> input = CdmStore.getFeatureTreeService().list(FeatureTree.class, null, null, null, null);
+               List<FeatureTree> input = CdmStore.getService(IFeatureTreeService.class).list(FeatureTree.class, null, null, null, null);
                                
                viewer.setInput(input);
                
@@ -112,7 +113,7 @@ public class DefaultFeatureTreePreferenecs extends PreferencePage implements IWo
                        }
                });
                
-               List<FeatureTree> input = CdmStore.getFeatureTreeService().list(FeatureTree.class, null, null, null, null);
+               List<FeatureTree> input = CdmStore.getService(IFeatureTreeService.class).list(FeatureTree.class, null, null, null, null);
                                
                viewer.setInput(input);
                
index ee3fa7da39308103a41bbd5ebf772a04c26f9ed7..87655a2dcbe8f056c43bbbeb6188def9e3cfd02f 100644 (file)
@@ -10,6 +10,9 @@
 package eu.etaxonomy.taxeditor.preference;
 
 import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
@@ -17,8 +20,9 @@ import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
 
+import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
+import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.impl.TaxonServiceConfiguratorImpl;
 import eu.etaxonomy.cdm.common.CdmUtils;
@@ -90,33 +94,6 @@ public class PreferencesUtil implements IPreferenceKeys{
                return null;
        }
        
-       /**
-        * The ability to edit marker types in the BulkEditor is associated with an input type, e.g. references.
-        *
-        * @param input a {@link org.eclipse.ui.IEditorInput} object.
-        * @param markerType a {@link eu.etaxonomy.cdm.model.common.MarkerType} object.
-        * @return a boolean.
-        */
-       public static boolean getEditMarkerTypePreference(IEditorInput input, MarkerType markerType) {
-               return getPreferenceStore().getBoolean(getEditMarkerTypePrefKey(input, markerType)); 
-       }
-
-       /**
-        * <p>setEditMarkerTypePreference</p>
-        *
-        * @param input a {@link org.eclipse.ui.IEditorInput} object.
-        * @param markerType a {@link eu.etaxonomy.cdm.model.common.MarkerType} object.
-        * @param edit a boolean.
-        */
-       public static void setEditMarkerTypePreference(IEditorInput input, MarkerType markerType, boolean edit) {
-               getPreferenceStore().setValue(getEditMarkerTypePrefKey(input, markerType), edit); 
-       }
-       
-       private static String getEditMarkerTypePrefKey(IEditorInput input, MarkerType markerType) {
-               markerType = (MarkerType) HibernateProxyHelper.deproxy(markerType);
-               return EDIT_MARKER_TYPE_PREFIX + "." + input.getClass().getName() + "." + markerType.getUuid().toString();
-       }
-       
        /**
         * Get the match strategy for the given class that was stored in preferences
         * or the default strategy if it was not stored in preferences
@@ -370,7 +347,7 @@ public class PreferencesUtil implements IPreferenceKeys{
         */
        public static FeatureTree getDefaultFeatureTreeForTextualDescription() {
                String uuidString = getPreferenceStore().getString(FEATURE_TREE_DEFAULT_TEXT);
-               return CdmUtils.isEmpty(uuidString) ? null : CdmStore.getFeatureTreeService().load(UUID.fromString(uuidString));
+               return CdmUtils.isEmpty(uuidString) ? null : CdmStore.getService(IFeatureTreeService.class).load(UUID.fromString(uuidString));
        }
 
        /**
@@ -380,7 +357,7 @@ public class PreferencesUtil implements IPreferenceKeys{
         */
        public static FeatureTree getDefaultFeatureTreeForStructuredDescription() {
                String uuidString = getPreferenceStore().getString(FEATURE_TREE_DEFAULT_STRUCTURE);
-               return CdmUtils.isEmpty(uuidString) ? null : CdmStore.getFeatureTreeService().load(UUID.fromString(uuidString));
+               return CdmUtils.isEmpty(uuidString) ? null : CdmStore.getService(IFeatureTreeService.class).load(UUID.fromString(uuidString));
        }
 
        /**
@@ -413,11 +390,58 @@ public class PreferencesUtil implements IPreferenceKeys{
                }
                
                UUID languageUuid = UUID.fromString(languageUuidString);
-               return (Language) CdmStore.getTermService().load(languageUuid);
+               return (Language) CdmStore.getService(ITermService.class).load(languageUuid);
        }
        
        public static void setGlobalLanguage(Language language){
                getPreferenceStore().setValue(GLOBAL_LANGUAGE_UUID, language.getUuid().toString());
                CdmStore.setDefaultLanguage(language);
        }
+
+       /**
+        * @return
+        */
+       public static Map<MarkerType, Boolean> getEditMarkerTypePreferences() {
+               List<MarkerType> markerTypes = CdmStore.getTermManager().getPreferredMarkerTypes();
+               
+               Map<MarkerType, Boolean> result = new HashMap<MarkerType, Boolean>();
+               
+               for(MarkerType markerType : markerTypes){
+                       String name = getMarkerTypeEditingPreferenceKey(markerType);
+                       Boolean value = getPreferenceStore().getBoolean(name);
+                       
+                       result.put(markerType, value);
+               }
+               
+               return result;
+       }
+
+       /**
+        * @param markerTypeEditingMap
+        */
+       public static void setEditMarkerTypePreferences(
+                       Map<MarkerType, Boolean> markerTypeEditingMap) {
+               for(MarkerType markerType : markerTypeEditingMap.keySet()){
+                       String name = getMarkerTypeEditingPreferenceKey(markerType);
+                       getPreferenceStore().setValue(name, markerTypeEditingMap.get(markerType));
+               }
+               
+       }
+       
+       private static String getMarkerTypeEditingPreferenceKey(MarkerType markerType){
+               markerType = (MarkerType) HibernateProxyHelper.deproxy(markerType);
+               return markerType.getClass().getName() + EDIT_MARKER_TYPE_PREFIX;
+       }
+       
+       /**
+        * <p>setEditMarkerTypePreference</p>
+        *
+        * @param input a {@link org.eclipse.ui.IEditorInput} object.
+        * @param markerType a {@link eu.etaxonomy.cdm.model.common.MarkerType} object.
+        * @param edit a boolean.
+        */
+       public static void setEditMarkerTypePreference(MarkerType markerType, boolean edit) {
+               getPreferenceStore().setValue(getMarkerTypeEditingPreferenceKey(markerType), edit); 
+       }
+
 }
index 2c1d59a45f03457b00ac035354cf93967116f7a4..d14dc02cd92ae3e21ffd44145d32b71b43c67913 100644 (file)
@@ -34,6 +34,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
+import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.wizard.VocabularyTermWizard;
@@ -261,7 +262,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
                                        Iterator<T> selectionIterator = selection.iterator();
                                        
                                        while(selectionIterator.hasNext()){
-                                               CdmStore.getTermService().delete(selectionIterator.next());
+                                               CdmStore.getService(ITermService.class).delete(selectionIterator.next());
                                        }
                                }
                        }
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/reporting/ReportingViewPart.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/reporting/ReportingViewPart.java
new file mode 100644 (file)
index 0000000..379969d
--- /dev/null
@@ -0,0 +1,48 @@
+// $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.reporting;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.part.ViewPart;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 14, 2010
+ * @version 1.0
+ */
+public class ReportingViewPart extends ViewPart {
+
+       public static final String ID = "eu.etaxonomy.taxeditor.reporting.viewPart";
+       
+       private Text text; 
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+        */
+       @Override
+       public void createPartControl(Composite parent) {
+               text = new Text(parent, SWT.MULTI);
+               text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+        */
+       @Override
+       public void setFocus() {
+               // TODO Auto-generated method stub
+
+       }
+
+}
index a43c33f13a6b79e1f8a4e26aab35f9cde3bfda9f..488c8f4976926522a5d715a929783b14699f48b4 100644 (file)
@@ -9,6 +9,10 @@
 
 package eu.etaxonomy.taxeditor.store;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
@@ -17,32 +21,17 @@ import org.springframework.core.io.Resource;
 import org.springframework.security.authentication.ProviderManager;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.service.IAgentService;
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.api.service.ICollectionService;
-import eu.etaxonomy.cdm.api.service.ICommonService;
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
-import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
-import eu.etaxonomy.cdm.api.service.ILocationService;
-import eu.etaxonomy.cdm.api.service.IMediaService;
-import eu.etaxonomy.cdm.api.service.INameService;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
-import eu.etaxonomy.cdm.api.service.IReferenceService;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.api.service.IUserService;
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.ext.geo.IEditGeoService;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.datasource.view.CdmDataSourceViewPart;
-import eu.etaxonomy.taxeditor.io.ExportHandler;
-import eu.etaxonomy.taxeditor.io.ImportHandler;
+import eu.etaxonomy.taxeditor.io.ExportManager;
+import eu.etaxonomy.taxeditor.io.ImportManager;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
@@ -68,9 +57,9 @@ public class CdmStore{
 
        private static LoginManager loginManager;
        
-       private static ImportHandler importHandler;
+       private static ImportManager importManager;
        
-       private static ExportHandler exportHandler;
+       private static ExportManager exportManager;
        
        private static ContextManager contextManager;
        
@@ -78,6 +67,8 @@ public class CdmStore{
        
        private static SearchManager searchManager;
        
+       private static CdmStoreConnector job;
+       
        private Language language;
        
        private ICdmDataSource cdmDatasource;
@@ -133,14 +124,16 @@ public class CdmStore{
        private static void connect(final ICdmDataSource datasource, final DbSchemaValidation dbSchemaValidation, final Resource applicationContextBean){       
                StoreUtil.info("Connecting to datasource: " + datasource);
                        
-               CdmStoreConnector job = new CdmStoreConnector(Display.getDefault(), datasource, dbSchemaValidation, applicationContextBean);
+               job = new CdmStoreConnector(Display.getDefault(), datasource, dbSchemaValidation, applicationContextBean);
                job.setUser(true);
                job.setPriority(Job.BUILD);
                job.schedule();
                        
        }
 
-
+       public static boolean isConnecting(){
+               return job != null && job.getState() == Job.RUNNING;
+       }
 
        /**
         * Closes the current application context
@@ -224,135 +217,47 @@ public class CdmStore{
                return conversation;
        }
        
-       /*
-        * EXPOSING SERVICES
-        */
-       
-       /**
-        * <p>getTaxonService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.ITaxonService} object.
-        */
-       public static ITaxonService getTaxonService(){ return getCurrentApplicationController().getTaxonService();}
-       
-       /**
-        * <p>getTaxonTreeService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.ITaxonTreeService} object.
-        */
-       public static IClassificationService getClassificationService() { return getCurrentApplicationController().getClassificationService();}
-       
-       /**
-        * <p>getTaxonNodeService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.ITaxonNodeService} object.
-        */
-       public static ITaxonNodeService getTaxonNodeService() { return getCurrentApplicationController().getTaxonNodeService();}
-       
-       /**
-        * <p>getNameService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.INameService} object.
-        */
-       public static INameService getNameService(){ return getCurrentApplicationController().getNameService();}
-       
        /**
-        * <p>getReferenceService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.IReferenceService} object.
+        * Generic method that will return an implementation of the given service interface
+        * or <code>null</code> if the 
+        * 
+        * @param <T>
+        * @param serviceClass
+        * @return
         */
-       public static IReferenceService getReferenceService(){ return getCurrentApplicationController().getReferenceService();}
+       public static <T extends IService> T getService(Class<T> serviceClass){
+               ICdmApplicationConfiguration controller = getCurrentApplicationController();
+               
+               Method[] methods = ICdmApplicationConfiguration.class.getDeclaredMethods();
+               
+               T service = null;
+               
+               for(Method method : methods){
+                       Type type = method.getGenericReturnType();
+                       
+                       if(type.equals(serviceClass)){
+                               try {
+                                       service =  (T) method.invoke(controller, null);
+                                       break;
+                               } catch (IllegalArgumentException e) {
+                                       StoreUtil.error(CdmStore.class, e);
+                               } catch (IllegalAccessException e) {
+                                       StoreUtil.error(CdmStore.class, e);
+                               } catch (InvocationTargetException e) {
+                                       StoreUtil.error(CdmStore.class, e);
+                               }
+                       }
+               }
+               
+               return service;
+       }
        
-       /**
-        * <p>getLocationService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.ILocationService} object.
-        */
-       public static ILocationService getLocationService(){ return getCurrentApplicationController().getLocationService();}
-
        /**
         * <p>getAuthenticationManager</p>
         *
         * @return a {@link org.springframework.security.authentication.ProviderManager} object.
         */
        public static ProviderManager getAuthenticationManager() { return getCurrentApplicationController().getAuthenticationManager();}
-
-       /**
-        * <p>getUserService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.IUserService} object.
-        */
-       public static IUserService getUserService() { return getCurrentApplicationController().getUserService(); }
-       
-       /**
-        * <p>getCommonService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.ICommonService} object.
-        */
-       public static ICommonService getCommonService() { return getCurrentApplicationController().getCommonService(); }
-       
-       /**
-        * <p>getAgentService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.IAgentService} object.
-        */
-       public static IAgentService getAgentService() { return getCurrentApplicationController().getAgentService(); }
-       
-       /**
-        * <p>getTermService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.ITermService} object.
-        */
-       public static ITermService getTermService() { return getCurrentApplicationController() != null ? getCurrentApplicationController().getTermService() : null; }
-       
-       /**
-        * <p>getVocabularyService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.IVocabularyService} object.
-        */
-       public static IVocabularyService getVocabularyService() { return getCurrentApplicationController().getVocabularyService(); }
-       
-       /**
-        * <p>getMediaService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.IMediaService} object.
-        */
-       public static IMediaService getMediaService() { return getCurrentApplicationController().getMediaService(); }
-       
-       /**
-        * <p>getOccurrenceService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.IOccurrenceService} object.
-        */
-       public static IOccurrenceService getOccurrenceService() { return getCurrentApplicationController().getOccurrenceService(); }
-       
-       /**
-        * <p>getFeatureTreeService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.IFeatureTreeService} object.
-        */
-       public static IFeatureTreeService getFeatureTreeService() { return getCurrentApplicationController().getFeatureTreeService(); }
-       
-       /**
-        * <p>getFeatureNodeService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.IFeatureNodeService} object.
-        */
-       public static IFeatureNodeService getFeatureNodeService() { return getCurrentApplicationController().getFeatureNodeService(); }
-
-       /**
-        * <p>getCollectionService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.ICollectionService} object.
-        */
-       public static ICollectionService getCollectionService() { return getCurrentApplicationController().getCollectionService(); }
-       
-       /**
-        * <p>getPolytomousKeyService</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.service.ICollectionService} object.
-        */
-       public static IPolytomousKeyService getPolytomousKeyService() { return getCurrentApplicationController().getPolytomousKeyService(); }
        
        /**
         * <p>getGeoService</p>
@@ -448,25 +353,25 @@ public class CdmStore{
        /**
         * <p>Getter for the field <code>importHandler</code>.</p>
         *
-        * @return a {@link eu.etaxonomy.taxeditor.io.ImportHandler} object.
+        * @return a {@link eu.etaxonomy.taxeditor.io.ImportManager} object.
         */
-       public static ImportHandler getImportHandler(){
-               if(importHandler == null){
-                       importHandler = ImportHandler.NewInstance(getCurrentApplicationController());
+       public static ImportManager getImportManager(){
+               if(importManager == null){
+                       importManager = ImportManager.NewInstance(getCurrentApplicationController());
                }
-               return importHandler;
+               return importManager;
        }
        
        /**
         * <p>Getter for the field <code>exportHandler</code>.</p>
         *
-        * @return a {@link eu.etaxonomy.taxeditor.io.ExportHandler} object.
+        * @return a {@link eu.etaxonomy.taxeditor.io.ExportManager} object.
         */
-       public static ExportHandler getExportHandler(){
-               if(exportHandler == null){
-                       exportHandler = ExportHandler.NewInstance(getCurrentApplicationController());
+       public static ExportManager getExportManager(){
+               if(exportManager == null){
+                       exportManager = ExportManager.NewInstance(getCurrentApplicationController());
                }
-               return exportHandler;
+               return exportManager;
        }
        
        /**
index e7a265bcdc48349bcbb39be1de5639051e6e87ca..484a2aae82a630d675b7ca48724bf71fbefa6790 100644 (file)
@@ -13,10 +13,14 @@ package eu.etaxonomy.taxeditor.store;
 import java.util.ArrayList;
 import java.util.List;
 
+import eu.etaxonomy.cdm.api.service.IAgentService;
+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.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
-import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
@@ -40,7 +44,7 @@ public class SearchManager {
                // FIXME use proper method once it is implemented in the library
                String titleSearchString = configurator.getTitleSearchString().replace("*", "%");
                
-               return CdmStore.getNameService().getNamesByName(titleSearchString);
+               return CdmStore.getService(INameService.class).getNamesByName(titleSearchString);
        }
 
        /**
@@ -50,7 +54,8 @@ public class SearchManager {
         * @return a {@link java.util.List} object.
         */
        public static List<IdentifiableEntity> findTaxaAndNames(ITaxonServiceConfigurator configurator){
-               return CdmStore.getTaxonService().findTaxaAndNames(configurator).getRecords();
+               
+               return CdmStore.getService(ITaxonService.class).findTaxaAndNames(configurator).getRecords();
        }
        
        /**
@@ -65,7 +70,7 @@ public class SearchManager {
                // FIXME use proper method once it is implemented in the library
                String titleSearchString = configurator.getTitleSearchString().replace("*", "%");
                
-               return CdmStore.getReferenceService().findByTitle(null, titleSearchString, null, null, null, null, null, null).getRecords();
+               return CdmStore.getService(IReferenceService.class).findByTitle(null, titleSearchString, null, null, null, null, null, null).getRecords();
        }
        
        /**
@@ -80,7 +85,7 @@ public class SearchManager {
                // FIXME use proper method once it is implemented in the library
                String titleSearchString = configurator.getTitleSearchString().replace("*", "%");
                
-               return CdmStore.getAgentService().findByTitle(null, titleSearchString, null, null, null, null, null, null).getRecords();
+               return CdmStore.getService(IAgentService.class).findByTitle(null, titleSearchString, null, null, null, null, null, null).getRecords();
        }
 
        /**
@@ -89,13 +94,11 @@ public class SearchManager {
         * @param configurator a {@link eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator} object.
         * @return a {@link java.util.List} object.
         */
-       public static List<TeamOrPersonBase> findTeamOrPersons(IIdentifiableEntityServiceConfigurator configurator){
+       public static List<AgentBase> findTeamOrPersons(IIdentifiableEntityServiceConfigurator configurator){
                // TODO move this to cdmlib
-               List<TeamOrPersonBase> result = new ArrayList<TeamOrPersonBase>();
+               List<AgentBase> result = new ArrayList<AgentBase>();
                for (AgentBase agent : findAgents(configurator)) {
-                       if (agent instanceof TeamOrPersonBase) {
-                               result.add((TeamOrPersonBase) agent);
-                       }
+                       result.add((AgentBase) agent);
                }
                return result;
        }
@@ -112,6 +115,6 @@ public class SearchManager {
                // FIXME use proper method once it is implemented in the library
                String titleSearchString = configurator.getTitleSearchString().replace("*", "%");
                
-               return CdmStore.getOccurrenceService().findByTitle(SpecimenOrObservationBase.class, titleSearchString, null, null, null, null, null, null).getRecords();
+               return CdmStore.getService(IOccurrenceService.class).findByTitle(SpecimenOrObservationBase.class, titleSearchString, null, null, null, null, null, null).getRecords();
        }
 }
index 0f5f2543d05162ae51c0fa7e11fdfd7f9e4d701c..d462cc8ca5a464566e01b5adcb7179efd271d53d 100644 (file)
@@ -16,6 +16,7 @@ import java.util.Comparator;
 import java.util.List;
 
 import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.AnnotationType;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
@@ -351,7 +352,7 @@ public class TermStore {
         */
        public static TermVocabulary<DefinedTermBase> getTermVocabulary(VocabularyEnum vocabularyType){
                
-               return CdmStore.getVocabularyService().getVocabulary(vocabularyType);
+               return CdmStore.getService(IVocabularyService.class).getVocabulary(vocabularyType);
        }
        
        private static <TERM extends DefinedTermBase> List<TERM> getTerms(Class<TERM> clazz){
@@ -383,6 +384,6 @@ public class TermStore {
        }
        
        private static ITermService getTermService(){
-               return CdmStore.getTermService();
+               return CdmStore.getService(ITermService.class);
        }
 }
index c51c1915923d07e9423df51c3c86d14c25fd7302..d8c619d7e11ee44ed022808a537a214008a37c58 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -58,7 +59,7 @@ public class CreateUserOperation extends AbstractPersistentPostOperation {
                        throws ExecutionException {
                bind();
                monitor.worked(20);
-               CdmStore.getUserService().createUser(user);
+               CdmStore.getService(IUserService.class).createUser(user);
                monitor.worked(40);
 
                return postExecute(null);
index f1e0ee4a443f2e658a342f5bba138864d27b962c..597a983c08edf2145de9db27a7035a1a1fa3c4a2 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -53,7 +54,7 @@ public class DeleteUserOperation extends AbstractPersistentPostOperation {
                        throws ExecutionException {
                bind();
                monitor.worked(20);
-               CdmStore.getUserService().delete(user);
+               CdmStore.getService(IUserService.class).delete(user);
                monitor.worked(40);
 
                return postExecute(null);
index 0fcfc6c35d7bca8a330048f4397adb03b074680e..e8f6cfee3ca04733cf447ab2cea9f0bca6798c88 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -59,7 +60,7 @@ public class EditUserOperation extends AbstractPersistentPostOperation {
                bind();
                monitor.worked(20);
 
-               CdmStore.getUserService().updateUser(user);
+               CdmStore.getService(IUserService.class).updateUser(user);
                monitor.worked(40);
 
                return postExecute(null);
index 09f3c74beeca833cf7dff42ad0e16beaf0dabfc0..ec32bf2fc84522799d05fc0df9c8e7fc618547e8 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -61,7 +62,7 @@ public class ToggleUserEnablementOperation extends AbstractPersistentPostOperati
                
                user.setEnabled(! user.isEnabled());
                
-               CdmStore.getUserService().saveOrUpdate(user);
+               CdmStore.getService(IUserService.class).saveOrUpdate(user);
                monitor.worked(40);
 
         return postExecute(null);
@@ -85,7 +86,7 @@ public class ToggleUserEnablementOperation extends AbstractPersistentPostOperati
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                bind();
-               CdmStore.getUserService().createUser(user);
+               CdmStore.getService(IUserService.class).createUser(user);
                return postExecute(null);
        }
 }
index c4e723d11658f92049eb62e3bb40dd20d158b1a8..51509e154418c2fe1995d9934f773d89c640b46f 100644 (file)
@@ -31,6 +31,7 @@ import org.eclipse.ui.part.ViewPart;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
@@ -181,7 +182,7 @@ public class UserManagerView extends ViewPart implements IConversationEnabled, I
         */
        private List<User> getAllUser(){
                conversation = CdmStore.createConversation();
-               return CdmStore.getUserService().list(null, null, null, null, null);
+               return CdmStore.getService(IUserService.class).list(null, null, null, null, null);
        }
 
        /* (non-Javadoc)
index 9d208e2e3dbbc4dae1cb5e3b2aac70b1cb064aab..6e938946c4bc72802a601702043ae57c2a6e2629 100644 (file)
@@ -22,6 +22,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.taxeditor.model.CommonHelper;
@@ -253,7 +254,7 @@ public class UserWizardPage extends WizardPage implements ModifyListener{
                                setPageComplete(false);
                                return NAME_TO_SHORT;
                        }
-                       if(CdmStore.getUserService().userExists(newText)){
+                       if(CdmStore.getService(IUserService.class).userExists(newText)){
                                setPageComplete(false);
                                return USER_EXISTS;
                        }