Fixed a problem in descriptive view; polytomous key editor nearly complete; refactori...
authorn.hoffmann <n.hoffmann@localhost>
Fri, 3 Dec 2010 17:51:38 +0000 (17:51 +0000)
committern.hoffmann <n.hoffmann@localhost>
Fri, 3 Dec 2010 17:51:38 +0000 (17:51 +0000)
204 files changed:
.gitattributes
taxeditor-application/plugin.xml
taxeditor-application/src/main/java/eu/etaxonomy/taxeditor/ApplicationWorkbenchWindowAdvisor.java
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineEditor.java
taxeditor-editor/META-INF/MANIFEST.MF
taxeditor-editor/plugin.xml
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/dialogs/filteredSelection/FilteredNamedAreaSelectionDialog.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/IDropTargetable.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractIdentificationEditorInput.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractKeyEditor.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractKeyGraphNode.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/handler/ApplyLayoutHandler.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditor.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/NewNodeHandler.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/Create.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/Delete.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/AbstractGroup.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/AbstractGroupedContainer.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/NameEditorDropTargetListener.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeAcceptedTaxonToSynonymHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeConceptRelationshipTypeHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToConceptRelationHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToMisapplicationHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToSynonymHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateConceptRelationHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateHeterotypicSynonymHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateHomotypicSynonymHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateMisapplicationHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateSynonymInHomotypicalGroupHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteTaxonBaseHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/RemoveBasionymHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SetBasionymHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeAcceptedTaxonToSynonymOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeAcceptedTaxonToSynonymOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptRelationshipTypeOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeConceptRelationshipTypeOperation.java with 94% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptToSynonymOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeConceptToSynonymOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeHomotypicGroupOperation.java with 94% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicalGroupBasionymOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeHomotypicalGroupBasionymOperation.java with 92% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToAcceptedTaxonOperation.java with 94% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToConceptOperation.java with 94% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToHomotypicalGroupBasionymOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToHomotypicalGroupBasionymOperation.java with 96% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToMisapplicationOperation.java with 92% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateConceptRelationOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateConceptRelationOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateNameRelationOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateNameRelationOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExistingHomotypicalGroupOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInExistingHomotypicalGroupOperation.java with 94% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInNewGroupOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteConceptRelationOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java with 95% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteMisapplicationOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMisapplicationOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteNameRelationOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteNameRelationOperation.java with 92% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteSynonymOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/RemoveHomotypicalGroupBasionymOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/RemoveHomotypicalGroupBasionymOperation.java with 92% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SwapSynonymAndAcceptedOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/AbstractNewEntityWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/ExternalReferenceServiceWizardPage.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewDerivedUnitBaseWizard.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/NewTeamWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/translation/TranslationMetaDataWizardPage.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/translation/TranslationWizard.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/translation/TranslationWizardPage.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/AbstractSplitableViewPart.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveContentProvider.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveLabelProvider.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewerSorter.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/CreateDescriptionElementHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/CreateDescriptionHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DeleteHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DescriptionsMenuPropertyTester.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/ChangeDescriptionElementType.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeDescriptionElementType.java with 95% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateDescriptionElementOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateDescriptionElementOperation.java with 95% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateTaxonDescriptionOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonDescriptionOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteDescriptionElementOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteDescriptionElementOperation.java with 92% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteTaxonDescriptionOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonDescriptionOperation.java with 91% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/CdmSectionPart.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewPart.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewer.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddImageGalleryHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/CreateMediaHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/DeleteMediaHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/MoveImageDownInListHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/MoveImageUpInListHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/AddMediaToImageGalleryOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AddMediaToImageGalleryOperation.java with 92% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/CreateImageOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateImageOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/DeleteMediaOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMediaOperation.java with 90% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/MoveMediaInListOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveMediaInListOperation.java with 94% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/RemoveImageFromDescriptionElementOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/RemoveImageFromDescriptionElementOperation.java with 93% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewPart.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewer.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractCdmEntityWizardPage.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractFormSection.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/BrowserElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CdmFormFactory.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ImageElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/KeyStatementElement.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/KeyValueViewerElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LabelElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/MultilanguageTextElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/PointElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/RootElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/SelectionArbitrator.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ToggleableTextElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/AbstractSelectionElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/FeatureSelectionElement.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/NamedAreaSelectionElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PolytomousKeyNodeSelectionElement.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PolytomousKeySelectionElement.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/AbstractCdmDetailElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/AbstractCdmDetailSection.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/description/DescriptionElementDetailSection.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/description/detail/TextDataDetailElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/GeographicalScopeDetailSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyDetailElement.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyDetailSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailElement.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/ScopeRestrictionSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/NonViralNameDetailSection.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/DerivedUnitBaseDetailElement.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/NamedAreaDetailElement.java [moved from taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/CollectingAreasDetailElement.java with 95% similarity]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/supplemental/CreditElement.java
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptRelationshipTypeOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeConceptRelationshipTypeOperationTest.java with 91% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptToSynonymOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeConceptToSynonymOperationTest.java with 77% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeHomotypicGroupOperationTest.java with 73% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicalGroupBasionymOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeHomotypicalGroupBasionymOperationTest.java with 72% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeSynonymToConceptOperationTest.java with 81% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToHomotypicalGroupBasionymOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeSynonymToHomotypicalGroupBasionymOperationTest.java with 91% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeSynonymToMisapplicationOperationTest.java with 78% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateConceptRelationOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/CreateConceptRelationOperationTest.java with 75% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateDescriptionElementOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/CreateDescriptionElementOperationTest.java with 88% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExisitingHomotypicalGroupOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/CreateSynonymInExisitingHomotypicalGroupOperationTest.java with 75% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/CreateSynonymInNewGroupOperationTest.java with 72% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteConceptRelationOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteConceptRelationOperationTest.java with 72% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteDescriptionElementOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteDescriptionElementOperationTest.java with 73% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteMisapplicationOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteMisapplicationOperationTest.java with 71% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteSynonymOperationTest.java with 73% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveTaxonOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/MoveTaxonOperationTest.java with 80% similarity]
taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperationTest.java [moved from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/SwapSynonymAndAcceptedOperationTest.java with 86% similarity]
taxeditor-feature-platform/feature.xml
taxeditor-feature-product/build.properties
taxeditor-feature-product/category.xml [new file with mode: 0644]
taxeditor-feature-product/feature.properties [deleted file]
taxeditor-feature-product/feature.xml
taxeditor-feature-product/p2.inf [new file with mode: 0644]
taxeditor-feature-product/taxeditor.product
taxeditor-navigation/plugin.xml
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowPolytomousKeysViewHandler.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyContentProvider.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyLabelProvider.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/Delete.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/Edit.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/Delete.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeDropAdapterAssistant.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/Delete.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/DeleteTreeNodeHandler.java with 87% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/Edit.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/EditHandler.java with 95% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxon.java [moved from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/MoveTaxonHandler.java with 88% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/Delete.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTreeNodeOperation.java with 90% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/EditClassification.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/EditClassificationOperation.java with 86% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxon.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java with 91% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateClassification.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SaveClassificationOperation.java with 88% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreatePolytomousKey.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonNodeOperation.java with 89% similarity]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/ClassificationWizard.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewPolytomousKeyWizard.java [new file with mode: 0644]
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewTaxonNodeWizard.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/PolytomousKeyWizardPage.java [new file with mode: 0644]
taxeditor-store/META-INF/MANIFEST.MF
taxeditor-store/plugin.xml
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractCdmViewPart.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainer.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainerTree.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPersistentPostOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPersistentPostOperation.java with 96% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPostOperation.java with 94% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/IPostOperationEnabled.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/IPostOperationEnabled.java with 96% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/ContextManager.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/handler/ToggleUserEnablementHandler.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/CreateUserOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateUserOperation.java with 92% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/DeleteUserOperation.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/EditUserOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/EditUserOperation.java with 92% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/ToggleUserEnablementOperation.java [moved from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ToggleUserEnablementOperation.java with 92% similarity]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/view/UserManagerView.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/wizard/UserWizard.java
taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/AbstractTaxeditorOperationTest.java

index fcc1c6b65f882efc00ed36fc0feaca2c37130566..51b84c06a3a16ca8f2223f976c3cd562e16a9593 100644 (file)
@@ -362,6 +362,15 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewR
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewSpecimenHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewTeamHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractIdentificationEditorInput.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractKeyEditor.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractKeyGraphNode.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/handler/ApplyLayoutHandler.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditor.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/NewNodeHandler.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/Create.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/Delete.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/AbstractGroup.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/AbstractGroupedContainer.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/AcceptedNameContainer.java -text
@@ -405,6 +414,25 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEd
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/RemoveBasionymHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SetBasionymHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeAcceptedTaxonToSynonymOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptRelationshipTypeOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptToSynonymOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicalGroupBasionymOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToHomotypicalGroupBasionymOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateConceptRelationOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateNameRelationOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExistingHomotypicalGroupOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteConceptRelationOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteMisapplicationOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteNameRelationOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/RemoveHomotypicalGroupBasionymOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/AbstractNewEntityWizard.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/ExternalReferenceServiceWizardPage.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/newWizard/NewCollectionWizard.java -text
@@ -426,11 +454,17 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/AbstractSplita
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveContentProvider.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveLabelProvider.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewerSorter.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/CreateDescriptionElementHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/CreateDescriptionHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DeleteHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DescriptionsMenuPropertyTester.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/ChangeDescriptionElementType.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateDescriptionElementOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateTaxonDescriptionOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteDescriptionElementOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteTaxonDescriptionOperation.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/CdmSectionPart.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewPart.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewer.java -text
@@ -442,6 +476,11 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/DeleteMediaHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/MoveImageDownInListHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/MoveImageUpInListHandler.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/AddMediaToImageGalleryOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/CreateImageOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/DeleteMediaOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/MoveMediaInListOperation.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/RemoveImageFromDescriptionElementOperation.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewPart.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewer.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractCdmEntityWizardPage.java -text
@@ -464,6 +503,7 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IRelevantFormElement
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ISelectable.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ISelectableElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ImageElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/KeyStatementElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/KeyValueViewerElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LabelElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LanguageStringWithLabelElement.java -text
@@ -483,6 +523,7 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/Classifica
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/CollectionSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/DerivedUnitBaseSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/EditFromSelectionWizard.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/FeatureSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/FeatureTreeSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/FieldObservationSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/InstitutionSelectionElement.java -text
@@ -490,6 +531,8 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/NameSelect
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/NamedAreaSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/NomenclaturalAuthorTeamSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PersonSelectionElement.java -text
+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/TaxonBaseSelectionElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/TaxonNodeSelectionElement.java -text
@@ -577,6 +620,12 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/description/detail
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/description/detail/TextDataDetailElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/feature/FeatureDistributionDetailElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/feature/FeatureDistributionDetailSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/GeographicalScopeDetailSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyDetailElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyDetailSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/ScopeRestrictionSection.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/AbstractTypeDesignationElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/AuthorshipDetailElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/AuthorshipDetailSection.java -text
@@ -597,7 +646,6 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/ProtologueSec
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/SpecimenTypeDesignationElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/TypeDesignationSection.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/AbstractEventDetailElement.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/CollectingAreasDetailElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/CollectingAreasDetailSection.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/CollectionDetailElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/CollectionWizardPage.java -text
@@ -613,6 +661,7 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/FieldOb
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/GatheringEventDetailElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/GatheringEventDetailSection.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/IFacadeHolder.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/NamedAreaDetailElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/SourceCollectionDetailSection.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/SpecimenCollectionDetailElement.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/SpecimenCollectionDetailSection.java -text
@@ -656,6 +705,23 @@ taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/ApplicationActionBa
 taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/ApplicationWorkbenchAdvisor.java -text
 taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/ApplicationWorkbenchWindowAdvisor.java -text
 taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/Perspective.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptRelationshipTypeOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptToSynonymOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicalGroupBasionymOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToHomotypicalGroupBasionymOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateConceptRelationOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateDescriptionElementOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExisitingHomotypicalGroupOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteConceptRelationOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteDescriptionElementOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteMisapplicationOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveTaxonOperationTest.java -text
+taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperationTest.java -text
 taxeditor-feature-platform/.project -text
 taxeditor-feature-platform/build.properties -text
 taxeditor-feature-platform/feature.xml -text
@@ -664,8 +730,9 @@ taxeditor-feature-product/buckminster.cspex -text
 taxeditor-feature-product/buckminster.properties -text
 taxeditor-feature-product/build.properties -text
 taxeditor-feature-product/build/product.ant -text
-taxeditor-feature-product/feature.properties -text
+taxeditor-feature-product/category.xml -text
 taxeditor-feature-product/feature.xml -text
+taxeditor-feature-product/p2.inf -text
 taxeditor-feature-product/taxeditor.product -text
 taxeditor-navigation/META-INF/MANIFEST.MF -text
 taxeditor-navigation/build.properties -text
@@ -681,14 +748,18 @@ taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationU
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigatorStateManager.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/RecentNamesContributionItem.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/WorkbenchUndoContextAdapterFactory.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/DeleteTreeNodeHandler.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/EditHandler.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/MoveTaxonHandler.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/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
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/Delete.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/Edit.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/Delete.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/ClassificationContentProvider.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/ClassificationLabelProvider.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/EmptyRoot.java -text
@@ -702,13 +773,24 @@ taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/T
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeDropAdapterAssistant.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/Delete.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/Edit.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxon.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/Delete.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/EditClassification.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxon.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateClassification.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreatePolytomousKey.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultView.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/ClassificationWizard.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/ClassificationWizardPage.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewPolytomousKeyWizard.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewTaxonNodeWizard.java -text
 taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewTaxonNodeWizardPage.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/PolytomousKeyWizardPage.java -text
 taxeditor-navigation/src/main/java/log4j.properties -text
 taxeditor-navigation/src/test/java/eu/etaxonomy/taxeditor/navigation/Application.java -text
 taxeditor-navigation/src/test/java/eu/etaxonomy/taxeditor/navigation/ApplicationActionBarAdvisor.java -text
@@ -915,6 +997,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewH
 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
@@ -953,6 +1036,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ContextListenerAdapte
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/DataChangeBridge.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainer.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainerTree.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/IContextListener.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/IDataChangeBehavior.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkableSelectionProvider.java -text
@@ -977,46 +1061,9 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewGenericRefere
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewNameWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewNameWizardPage.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewReferenceWizard.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPersistentPostOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPostOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AddMediaToImageGalleryOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeAcceptedTaxonToSynonymOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeConceptRelationshipTypeOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeConceptToSynonymOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeDescriptionElementType.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeHomotypicGroupOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeHomotypicalGroupBasionymOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToAcceptedTaxonOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToConceptOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToHomotypicalGroupBasionymOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToMisapplicationOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateConceptRelationOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateDescriptionElementOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateImageOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateNameRelationOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInExistingHomotypicalGroupOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInNewGroupOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonDescriptionOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonNodeOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateUserOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteDescriptionElementOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMediaOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMisapplicationOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteNameRelationOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteSynonymOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonDescriptionOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTreeNodeOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/EditClassificationOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/EditUserOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/IPostOperationEnabled.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveMediaInListOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/RemoveHomotypicalGroupBasionymOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/RemoveImageFromDescriptionElementOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SaveClassificationOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SwapSynonymAndAcceptedOperation.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ToggleUserEnablementOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPersistentPostOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/IPostOperationEnabled.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/parser/MatchStrategyConfigurator.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferences.java -text
@@ -1025,6 +1072,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPrefe
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureTreePreferences.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/MatchingPreferences.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java -text
@@ -1067,6 +1115,10 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/AuthenticatedUserBar.j
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/handler/CreateUserHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/handler/EditUserHandler.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/handler/ToggleUserEnablementHandler.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/CreateUserOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/DeleteUserOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/EditUserOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/ToggleUserEnablementOperation.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/view/UserManagerContentProvider.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/view/UserManagerLabelProvider.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/view/UserManagerView.java -text
@@ -1077,23 +1129,6 @@ taxeditor-store/src/main/resources/log4j.properties -text
 taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/CdmStoreTest.java -text
 taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/NameProtectTitleCacheTest.java -text
 taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/AbstractTaxeditorOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeConceptRelationshipTypeOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeConceptToSynonymOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeHomotypicGroupOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeHomotypicalGroupBasionymOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeSynonymToConceptOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeSynonymToHomotypicalGroupBasionymOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeSynonymToMisapplicationOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/CreateConceptRelationOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/CreateDescriptionElementOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/CreateSynonymInExisitingHomotypicalGroupOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/CreateSynonymInNewGroupOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteConceptRelationOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteDescriptionElementOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteMisapplicationOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteSynonymOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/MoveTaxonOperationTest.java -text
-taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/SwapSynonymAndAcceptedOperationTest.java -text
 taxeditor-store/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml -text
 taxeditor-store/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml -text
 taxeditor-store/src/test/resources/eu/etaxonomy/cdm/cdmfs.xml -text
index 3cace72d46a5ec85ba8072d39c8b31b2187c4190..7174514d694b6d6df678ca033f007801737428c0 100644 (file)
          point="org.eclipse.core.runtime.products">\r
       <product\r
             application="eu.etaxonomy.taxeditor.application.application"\r
-            name="%productName">\r
+            name="EDIT Taxonomic Editor">\r
          <property\r
                name="windowImages"\r
                value="icons/256color_16x16.gif,icons/256color_32x32.gif,icons/256color_48x48.gif">\r
          </property>\r
          <property\r
                name="appName"\r
-               value="%productName">\r
+               value="EDIT Taxonomic Editor">\r
          </property>\r
          <property\r
                name="preferenceCustomization"\r
index 3121a682d7f2310828e2ed9401d5f6c63c1aa99e..7b5ac6f5f47eea59d4df7b602d3f3a3fcc0294e1 100644 (file)
@@ -62,7 +62,7 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
                if(PreferencesUtil.shouldConnectAtStartUp())
                        CdmStore.connect();
 
-               automaticUpdate();
+//             automaticUpdate();
 
        }
 
index 13f6ead614a2da08fc069f5ba2e3766154a046a6..3d82c88d56c3bf23385e4cefdab2cd24314a77cf 100644 (file)
@@ -22,7 +22,7 @@ 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.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * A list-based editor, where each line in the editor's document is associated with a domain object.
index 30c787674ead1adea0aed9a861753ed48c15ae57..b50aa7fb7be62a9d6ff610e10ba1a1cb380f0048 100644 (file)
@@ -34,6 +34,7 @@ Export-Package: eu.etaxonomy.taxeditor.dialogs.filteredSelection,
  eu.etaxonomy.taxeditor.section.agent,
  eu.etaxonomy.taxeditor.section.classification,
  eu.etaxonomy.taxeditor.section.description,
+ eu.etaxonomy.taxeditor.section.key,
  eu.etaxonomy.taxeditor.section.name,
  eu.etaxonomy.taxeditor.section.reference,
  eu.etaxonomy.taxeditor.section.supplemental,
@@ -44,7 +45,9 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.ui.forms,
  eu.etaxonomy.taxeditor.cdmlib;bundle-version="3.0.0",
  eu.etaxonomy.taxeditor.store,
- eu.etaxonomy.taxeditor.bulkeditor
+ eu.etaxonomy.taxeditor.bulkeditor,
+ org.eclipse.zest.core,
+ org.eclipse.zest.layouts
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.databinding.beans,
@@ -59,4 +62,6 @@ Import-Package: org.eclipse.core.databinding.beans,
  org.eclipse.jface.text.source,
  org.eclipse.ui.forms.widgets,
  org.eclipse.ui.texteditor,
+ org.eclipse.zest.core.viewers,
+ org.eclipse.zest.layouts,
  org.osgi.framework
index 3ac02823385270216d71cbef3fe0b53089dcbc6c..77770e8479196de8c120d636ff039700cb6f88c5 100644 (file)
             id="eu.etaxonomy.taxeditor.descriptiontreeeditor"
             name="Taxon Description Editor">
       </editor>
+      <editor
+            class="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditor"
+            default="false"
+            id="eu.etaxonomy.taxeditor.editor.key.polytomous"
+            name="Polytomous Key Editor">
+      </editor>
    </extension>
       <extension
             point="org.eclipse.ui.views">
                id="eu.etaxonomy.taxeditor.new.specimen"
                name="Specimen">
          </wizard>
+         <wizard
+               category="eu.etaxonomy.taxeditor.new.category.cdm"
+               class="eu.etaxonomy.taxeditor.editor.newWizard.NewPolytomousKeyWizard"
+               hasPages="true"
+               id="eu.etaxonomy.taxeditor.new.key.polytomous"
+               name="Polytomous Key">
+         </wizard>
       </extension>
       <extension
             point="org.eclipse.ui.menus">
                name="New Specimen">
          </command>
       </extension>
+      <extension
+            point="org.eclipse.ui.menus">
+         <menuContribution
+               locationURI="popup:eu.etaxonomy.taxeditor.editor.key.polytomous">
+            <command
+                  commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new"
+                  label="New Node"
+                  style="push">
+            </command>
+            <command
+                  commandId="eu.etaxonomy.taxeditor.key.command.applyLayout"
+                  label="Apply Layout"
+                  style="push">
+            </command>
+            <separator
+                  name="taxeditor-editor.separator1"
+                  visible="true">
+            </separator>
+         </menuContribution>
+      </extension>
+      <extension
+            point="org.eclipse.ui.commands">
+         <command
+               defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.NewNodeHandler"
+               id="eu.etaxonomy.taxeditor.key.polytomous.command.new"
+               name="New Node">
+         </command>
+         <command
+               defaultHandler="eu.etaxonomy.taxeditor.editor.key.handler.ApplyLayoutHandler"
+               id="eu.etaxonomy.taxeditor.key.command.applyLayout"
+               name="Apply Layout">
+         </command>
+      </extension>
 </plugin>
index c5613b9b425bcd4fe2c5e761b63f0e1d10242be2..d105b37b2bb2e8c87d029bb851d29d74312ba8fc 100644 (file)
@@ -212,24 +212,7 @@ public class FilteredNamedAreaSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected String getTitle(NamedArea namedArea) {
-               NamedArea area = (NamedArea) HibernateProxyHelper.deproxy(namedArea);
-               
-               StringBuilder title = new StringBuilder();
-               Representation representation = area.getRepresentation(CdmStore.getDefaultLanguage());
-               
-               title.append(representation.getDescription());
-               title.append(" - ");
-               title.append(area.getClass().getSimpleName());
-               if(area.getLevel() != null){
-                       title.append(" - ");
-                       title.append(area.getLevel().getLabel(CdmStore.getDefaultLanguage()));
-               }
-               if(! CdmUtils.isEmpty(representation.getAbbreviatedLabel())){
-                       title.append(" - ");
-                       title.append(representation.getAbbreviatedLabel());
-               }
-               
-               return title.toString();
+               return NamedArea.labelWithLevel(namedArea, CdmStore.getDefaultLanguage());
        }
        
        /** {@inheritDoc} */
index 72ee4bf6280d1933a5a25945ac676e76b80f7a94..9186ef57d09b897cf1030d089a3b9ecd70e35ea9 100644 (file)
@@ -27,6 +27,8 @@ import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
 import eu.etaxonomy.taxeditor.editor.view.detail.DetailsViewPart;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 
@@ -87,6 +89,10 @@ public class EditorUtil extends AbstractUtility{
        public static void open(TaxonEditorInput input) throws PartInitException{
                IEditorPart editor = open(input, MultiPageTaxonEditor.ID);
        }
+       
+       public static void open(PolytomousKeyEditorInput input) throws PartInitException{
+               open(input, PolytomousKeyEditor.ID);
+       }
 
        /**
         * Taxon Editors may be opened by supplying a taxon node uuid.
@@ -312,4 +318,9 @@ public class EditorUtil extends AbstractUtility{
        protected static String getPluginId(){
                return TaxeditorEditorPlugin.PLUGIN_ID;
        }
+
+       public static void openPolytomousKey(UUID polytomousKeyUuid) throws Exception{
+               PolytomousKeyEditorInput input = PolytomousKeyEditorInput.NewInstance(polytomousKeyUuid);
+               open(input);
+       }
 }
index 553ea5db2ee37834780a7e885a951a6cc2e58ba5..cfb49a483905341c4ae0edc291c388ce0e2b1545 100644 (file)
@@ -6,7 +6,7 @@ package eu.etaxonomy.taxeditor.editor;
 import org.eclipse.swt.widgets.Composite;
 
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>IDropTargetable interface.</p>
index 1a2ef30d31f58515af0849d5866f39d4179cf555..148f0eef2a8b5f4320324d56fb8d6f4b5278239e 100644 (file)
@@ -9,12 +9,9 @@
 
 package eu.etaxonomy.taxeditor.editor;
 
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.UndoContext;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -35,7 +32,7 @@ import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  *
@@ -48,7 +45,6 @@ import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
  * @version 1.0
  */
 public class MultiPageTaxonEditor extends FormEditor implements IConversationEnabled, IPostOperationEnabled, IDirtyMarkableSelectionProvider, IPartContentHasDetails { 
-       private static final Logger logger = Logger.getLogger(MultiPageTaxonEditor.class);
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.multipage"{trunked}</code> */
        public static final String ID = "eu.etaxonomy.taxeditor.editor.multipagetaxonview";
@@ -72,9 +68,9 @@ public class MultiPageTaxonEditor extends FormEditor implements IConversationEna
        /** {@inheritDoc} */
        @Override
        public void dispose() {
+               conversation.unregisterForDataStoreChanges(this);
                conversation.close();
                super.dispose();                
-               conversation.close();
        }
 
        /* (non-Javadoc)
@@ -98,7 +94,7 @@ public class MultiPageTaxonEditor extends FormEditor implements IConversationEna
 //                     EditorUtil.showPropertySheet();
                                        
                } catch (PartInitException e) {
-                       logger.error("Could not create MultiPageTaxonEditor.", e);
+                       EditorUtil.error(getClass(), e);
                }
        }
        
@@ -202,21 +198,21 @@ public class MultiPageTaxonEditor extends FormEditor implements IConversationEna
                
                this.input = (TaxonEditorInput) input;
 
-               try {
-                       // Listen for name changes, 
-                       //  change tab for this taxon editor accordingly
-                       getTaxon().addPropertyChangeListener("name",
-                                       new PropertyChangeListener() {
-                                               public void propertyChange(PropertyChangeEvent e) {
-                                                       setPartName();
-                                               }
-                                       });
-               } catch (NullPointerException e) {
-                       logger.warn("Caught an NPE while initing an editor. This is most " +
-                                       "likely due to the unsuccesful attempt to restore the former " +
-                                       "state of the application. We ignore this because the workbench " +
-                                       "will simply be reset.");
-               }
+//             try {
+//                     // Listen for name changes, 
+//                     //  change tab for this taxon editor accordingly
+//                     getTaxon().addPropertyChangeListener("name",
+//                                     new PropertyChangeListener() {
+//                                             public void propertyChange(PropertyChangeEvent e) {
+//                                                     setPartName();
+//                                             }
+//                                     });
+//             } catch (NullPointerException e) {
+//                     EditorUtil.warn(getClass(), "Caught an NPE while initing an editor. This is most " +
+//                                     "likely due to the unsuccesful attempt to restore the former " +
+//                                     "state of the application. We ignore this because the workbench " +
+//                                     "will simply be reset.");
+//             }
                setPartName();
                
                super.init(site, input);
@@ -254,6 +250,8 @@ public class MultiPageTaxonEditor extends FormEditor implements IConversationEna
 //     setDirty(true);
                dirty = true;
                super.editorDirtyStateChanged();
+               TaxonNameEditor page = (TaxonNameEditor) getPage(Page.NAME);
+               page.getSelectedObject().refresh();
     }
     
     /**
@@ -342,10 +340,10 @@ public class MultiPageTaxonEditor extends FormEditor implements IConversationEna
                        if (editor instanceof IPostOperationEnabled) {
                                ((IPostOperationEnabled) editor).postOperation(objectAffectedByOperation);
                        } else {
-                               logger.warn("postOperation not enabled for editor " + editor);
+                               EditorUtil.warn(getClass(), "postOperation not enabled for editor " + editor);
                        }
                }
-               logger.warn("postOperation called on MultiPageTaxonEditor. Can you make it more specific?");
+               EditorUtil.warn(getClass(), "postOperation called on MultiPageTaxonEditor. Can you make it more specific?");
                
                return false;
        }
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractIdentificationEditorInput.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractIdentificationEditorInput.java
new file mode 100644 (file)
index 0000000..0baf5c7
--- /dev/null
@@ -0,0 +1,80 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.description.IIdentificationKey;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public abstract class AbstractIdentificationEditorInput<T extends IIdentificationKey> implements IEditorInput, IConversationEnabled {
+
+       private ConversationHolder conversation;
+
+       protected AbstractIdentificationEditorInput(ConversationHolder conversation){
+               this.conversation = conversation;
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+        */
+       @Override
+       public Object getAdapter(Class adapter) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IEditorInput#exists()
+        */
+       @Override
+       public boolean exists() {
+               return getKey() != null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+        */
+       @Override
+       public ImageDescriptor getImageDescriptor() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IEditorInput#getPersistable()
+        */
+       @Override
+       public IPersistableElement getPersistable() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IEditorInput#getToolTipText()
+        */
+       @Override
+       public String getToolTipText() {
+               return getName();
+       }
+       
+       @Override
+       public ConversationHolder getConversationHolder() {
+               return conversation;
+       }
+
+       public abstract T getKey();
+       
+       @Override
+       public void update(CdmDataChangeMap changeEvents) {}
+       
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractKeyEditor.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractKeyEditor.java
new file mode 100644 (file)
index 0000000..7b075db
--- /dev/null
@@ -0,0 +1,263 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.ControlListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.zest.core.viewers.AbstractZoomableViewer;
+import org.eclipse.zest.core.viewers.GraphViewer;
+import org.eclipse.zest.core.viewers.IZoomableWorkbenchPart;
+import org.eclipse.zest.core.viewers.ZoomContributionViewItem;
+import org.eclipse.zest.core.widgets.ZestStyles;
+import org.eclipse.zest.layouts.LayoutAlgorithm;
+import org.eclipse.zest.layouts.LayoutStyles;
+import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.IIdentificationKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public abstract class AbstractKeyEditor<T extends IIdentificationKey> extends EditorPart implements 
+       IConversationEnabled, 
+       IZoomableWorkbenchPart, 
+       IPostOperationEnabled, 
+       IDirtyMarkableSelectionProvider{
+
+       private CdmFormFactory formFactory;
+       private Composite container;
+       private GraphViewer graphViewer;
+
+       private LayoutAlgorithm layoutAlgoritm;
+       private ZoomContributionViewItem zoomContributionViewItem;
+       
+       private boolean dirty = false;
+       private IToolBarManager toolBarManager;
+       
+       
+       public AbstractKeyEditor(){
+               formFactory = new CdmFormFactory(Display.getDefault());
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+        */
+       @Override
+       public void doSave(IProgressMonitor monitor) {
+               getConversationHolder().commit(true);
+               setDirty(false);
+               
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+        */
+       @Override
+       public void doSaveAs() {
+               doSave(null);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+        */
+       @Override
+       public void init(IEditorSite site, IEditorInput input)
+                       throws PartInitException {
+               setSite(site);
+               setInput(input);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.EditorPart#isDirty()
+        */
+       @Override
+       public boolean isDirty() {
+               return dirty ;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+        */
+       @Override
+       public boolean isSaveAsAllowed() {
+               return false;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+        */
+       @Override
+       public void createPartControl(Composite parent) {
+               container = formFactory.createComposite(parent);
+               
+               container.setLayout(new FillLayout());
+               graphViewer = new GraphViewer(container, SWT.NONE);
+               getSite().setSelectionProvider(graphViewer);
+               
+               graphViewer.setContentProvider(getContentProvider());
+               graphViewer.setLabelProvider(getLabelProvider());
+               
+               graphViewer.setConnectionStyle(ZestStyles.CONNECTIONS_DIRECTED);
+                       
+               graphViewer.setLayoutAlgorithm(getLayoutAlgoritm(), false);
+                               
+               createMenu();
+               
+               createToolbar();
+               
+               graphViewer.setInput(getKey());
+               
+               container.addControlListener(new ControlListener() {
+                       
+                       @Override
+                       public void controlResized(ControlEvent e) {
+                               applyLayout();
+                       }
+                       
+                       @Override
+                       public void controlMoved(ControlEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+               });
+       }
+
+       private void createToolbar() {
+               getToolBarManager().add(getZoomContributionViewItem());
+       }
+
+       private void createMenu(){
+               // Add context menu to tree
+               MenuManager menuMgr = new MenuManager();
+               menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));           
+               
+//             MenuManager zoomMenu = new MenuManager("Zoom");
+//             zoomMenu.add(getZoomContributionViewItem());
+               
+               ZoomContributionViewItem zoomItem = getZoomContributionViewItem();
+               menuMgr.add(zoomItem);
+               getSite().registerContextMenu(menuMgr, graphViewer);
+                               
+               Control control = graphViewer.getGraphControl();
+               Menu menu = menuMgr.createContextMenu(control);
+               
+               control.setMenu(menu);          
+                               
+       }
+       
+       protected abstract IBaseLabelProvider getLabelProvider();
+
+       protected abstract IContentProvider getContentProvider();
+
+       /**
+        * Return the key that this editor
+        * 
+        * @return
+        */
+       public abstract T getKey();
+       
+       @Override
+       public void setFocus() {
+               graphViewer.getControl().setFocus();
+       }
+       
+       public void refresh(){
+               graphViewer.refresh();
+               graphViewer.applyLayout();
+       }
+       
+       @Override
+       public void update(CdmDataChangeMap changeEvents) {
+       
+       }
+       
+       @Override
+       public AbstractZoomableViewer getZoomableViewer() {
+               return graphViewer;
+       }
+
+       private LayoutAlgorithm getLayoutAlgoritm() {
+               if (layoutAlgoritm == null){
+                       layoutAlgoritm = new TreeLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING);
+                       layoutAlgoritm.setEntityAspectRatio(2.5);
+               }
+               return layoutAlgoritm;
+       }
+       
+       private ZoomContributionViewItem getZoomContributionViewItem() {
+               if(zoomContributionViewItem == null){
+                       zoomContributionViewItem = new ZoomContributionViewItem(this);
+               }
+               return new ZoomContributionViewItem(this);
+       }
+       
+       @Override
+       public boolean postOperation(CdmBase objectAffectedByOperation) {
+               setDirty(true);
+               refresh();
+               
+               if(objectAffectedByOperation instanceof PolytomousKeyNode){
+                       graphViewer.setSelection(new StructuredSelection(objectAffectedByOperation), true);
+               }
+               
+               return true;
+       }
+       
+       private IToolBarManager getToolBarManager(){
+               if(toolBarManager == null){
+                       toolBarManager = getEditorSite().getActionBars().getToolBarManager();
+               }
+               return toolBarManager;
+       }
+       
+       public void applyLayout(){
+               graphViewer.applyLayout();
+       }
+       
+       @Override
+       public boolean onComplete() {
+               return true;
+       }
+       
+       public void setDirty(boolean dirty) {
+               this.dirty = dirty;
+               firePropertyChange(PROP_DIRTY);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#changed(java.lang.Object)
+        */
+       @Override
+       public void changed(Object element) {
+               setDirty(true);
+               graphViewer.update(element, null);
+       }
+               
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractKeyGraphNode.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractKeyGraphNode.java
new file mode 100644 (file)
index 0000000..7ffd3a6
--- /dev/null
@@ -0,0 +1,22 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key;
+
+import org.eclipse.zest.core.widgets.GraphNode;
+import org.eclipse.zest.core.widgets.IContainer;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public abstract class AbstractKeyGraphNode<T> extends GraphNode {
+
+       public AbstractKeyGraphNode(IContainer graphModel, T data, int style) {
+               super(graphModel, style, data);
+       }
+
+       public T getKeyNode(){
+               return (T) getData();
+       }
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/handler/ApplyLayoutHandler.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/handler/ApplyLayoutHandler.java
new file mode 100644 (file)
index 0000000..4fdfccc
--- /dev/null
@@ -0,0 +1,34 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.taxeditor.editor.key.AbstractKeyEditor;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class ApplyLayoutHandler extends AbstractHandler {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+        */
+       @Override
+       public Object execute(ExecutionEvent event) throws ExecutionException {
+               IEditorPart editor = HandlerUtil.getActiveEditor(event);
+               
+               if(editor instanceof AbstractKeyEditor){
+                       ((AbstractKeyEditor) editor).applyLayout();
+               }
+               
+               return null;
+       }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditor.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditor.java
new file mode 100644 (file)
index 0000000..129f424
--- /dev/null
@@ -0,0 +1,161 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key.polytomous;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.zest.core.viewers.IGraphContentProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.editor.key.AbstractKeyEditor;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyEditor extends AbstractKeyEditor<PolytomousKey> {
+       
+       private class PolytomousKeyRelationship {
+               private Object destination;
+               private Object source;
+
+               PolytomousKeyRelationship(Object source, Object destination){
+                       this.source = HibernateProxyHelper.deproxy(source);
+                       this.destination = HibernateProxyHelper.deproxy(destination);
+               }
+       }
+       
+       private class ContentProvider implements IGraphContentProvider{
+               
+               private List<PolytomousKeyRelationship> relations;
+               
+               @Override
+               public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+                       
+               }
+               
+               @Override
+               public void dispose() {
+                       
+               }
+               
+               @Override
+               public Object[] getElements(Object inputElement) {
+                       relations = new ArrayList<PolytomousKeyRelationship>();
+                       
+                       if(inputElement instanceof PolytomousKey){      
+                               getTreeRecursively(relations, inputElement);
+                       }
+                       return relations.toArray();
+               }
+               
+               private void getTreeRecursively(List<PolytomousKeyRelationship> relations, Object parent){
+                       List<PolytomousKeyNode> children;
+                       
+                       if(parent instanceof PolytomousKeyNode){
+                               children = ((PolytomousKeyNode) parent).getChildren();
+                       }else if(parent instanceof PolytomousKey){
+                               children = ((PolytomousKey) parent).getRoot().getChildren();
+                       }else{
+                               throw new RuntimeException("Parent element has to be PolytomousKeyNode or PolytomousKey, but was: " + parent.getClass());
+                       }
+                       
+                       for(PolytomousKeyNode childNode : children){
+                               relations.add(new PolytomousKeyRelationship(parent, childNode));
+                               getTreeRecursively(relations, childNode);
+                       }
+               }
+               
+
+               @Override
+               public Object getSource(Object rel) {
+                       return ((PolytomousKeyRelationship) rel).source;
+               }
+
+               @Override
+               public Object getDestination(Object rel) {
+                       return ((PolytomousKeyRelationship) rel).destination;
+               }
+               
+       };
+       
+       private class PolytomousKeyLabelProvider extends LabelProvider{
+               @Override
+               public String getText(Object element) {
+                       if(element instanceof PolytomousKey){
+                               return ((PolytomousKey) element).getTitleCache();
+                       }else if(element instanceof PolytomousKeyNode){
+                               PolytomousKeyNode keyNode = (PolytomousKeyNode) element;
+                               
+                               if(keyNode.isLeaf()){
+                                       if(keyNode.getTaxon() != null){
+                                               return keyNode.getTaxon().getName().getTitleCache();
+                                       }
+                                       return "leaf but no taxon";
+                               }
+                               
+                               if(keyNode.equals(getKey().getRoot())){
+                                       // TODO actually we do not want to show this node
+                                       return "/";
+                               }
+                               
+                               if(keyNode.getNodeNumber() != null){
+                                       return keyNode.getNodeNumber().toString();
+                               }else{
+                                       return "No node number set";
+                               }
+                       }else if(element instanceof PolytomousKeyRelationship){
+                               PolytomousKeyRelationship relationship = (PolytomousKeyRelationship) element;
+                               if(relationship.source instanceof PolytomousKeyNode){
+                                       PolytomousKeyNode sourceNode = (PolytomousKeyNode) relationship.source;
+                                       if(sourceNode.getQuestion() != null && sourceNode.getQuestion().getLabelText(CdmStore.getDefaultLanguage()) != null){
+                                               return sourceNode.getQuestion().getLabelText(CdmStore.getDefaultLanguage());
+                                       }
+                               }
+                       }
+                       return "";
+               }
+       };
+       
+       public static final String ID = "eu.etaxonomy.taxeditor.editor.key.polytomous";
+       
+       /**
+        * 
+        */
+       public PolytomousKeyEditor() {
+               super();
+       }
+       
+
+       @Override
+       public ConversationHolder getConversationHolder() {
+               return ((PolytomousKeyEditorInput) getEditorInput()).getConversationHolder();
+       }
+
+       @Override
+       public PolytomousKey getKey() {
+               return ((PolytomousKeyEditorInput) getEditorInput()).getKey();
+       }
+
+
+       @Override
+       protected IBaseLabelProvider getLabelProvider() {
+               return new PolytomousKeyLabelProvider();
+       }
+
+
+       @Override
+       protected IContentProvider getContentProvider() {
+               return new ContentProvider();
+       }       
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java
new file mode 100644 (file)
index 0000000..ad64fd2
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key.polytomous;
+
+import java.util.UUID;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.key.AbstractIdentificationEditorInput;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<PolytomousKey> {
+
+       private PolytomousKey key;
+
+       protected PolytomousKeyEditorInput(ConversationHolder conversation,
+                       PolytomousKey key) {
+               super(conversation);
+               this.key = key;
+       }
+       
+       
+
+       public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid) throws Exception{
+               try{
+                       ConversationHolder conversation = CdmStore.createConversation();
+                                               
+                       return NewInstance(polytomousKeyUuid, conversation);
+               }catch(Exception e){
+                       throw e;
+               }
+       }
+       
+       public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid, ConversationHolder conversation) throws Exception{
+               PolytomousKey polytomousKey = CdmStore.getPolytomousKeyService().load(polytomousKeyUuid, null);
+                       
+               return new PolytomousKeyEditorInput(conversation, polytomousKey);
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IEditorInput#getName()
+        */
+       @Override
+       public String getName() {
+               return key.getTitleCache();
+       }
+       
+       @Override
+       public PolytomousKey getKey() {
+               return key;
+       }
+       
+       /* (non-Javadoc)
+        * @see java.lang.Object#equals(java.lang.Object)
+        */
+       @Override
+       public boolean equals(Object object) {
+               if (object instanceof PolytomousKeyEditorInput
+                               && getKey() != null
+                               && getKey().equals(((PolytomousKeyEditorInput) object).getKey())
+               ){
+                       return true;
+               }
+               return super.equals(object);
+       }
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/NewNodeHandler.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/handler/NewNodeHandler.java
new file mode 100644 (file)
index 0000000..0d4548e
--- /dev/null
@@ -0,0 +1,59 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key.polytomous.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.Create;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class NewNodeHandler extends AbstractHandler {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+        */
+       @Override
+       public Object execute(ExecutionEvent event) throws ExecutionException {
+               
+               IEditorPart editor = HandlerUtil.getActiveEditor(event);
+               
+               if(editor instanceof PolytomousKeyEditor){
+                       PolytomousKeyEditor keyEditor = (PolytomousKeyEditor) editor;
+                       
+                       IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getActiveMenuSelection(event);
+                       
+                       if(selection.getFirstElement() instanceof PolytomousKeyNode){
+                               try {
+                                       String label = event.getCommand().getName();
+                                       IUndoContext undoContext = EditorUtil.getUndoContext();
+                                       
+                                       PolytomousKeyNode keyNode = (PolytomousKeyNode) selection.getFirstElement();
+                                       
+                                       AbstractPostOperation operation = new Create(label, undoContext, keyNode, keyEditor);
+                                       EditorUtil.executeOperation(operation);
+                               } catch (NotDefinedException e) {
+                                       EditorUtil.warn(getClass(), "Command name not set.");
+                               }
+                               
+                       }
+               }
+               
+               return null;
+       }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/Create.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/Create.java
new file mode 100644 (file)
index 0000000..e565693
--- /dev/null
@@ -0,0 +1,65 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key.polytomous.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class Create extends AbstractPostOperation {
+
+       PolytomousKeyNode parentNode;
+       private PolytomousKeyNode childNode;
+       
+       public Create(String label,
+                       IUndoContext undoContext, PolytomousKeyNode parentNode, IPostOperationEnabled postOperationEnabled) {
+               super(label, undoContext, postOperationEnabled);
+               this.parentNode = parentNode;
+       }
+
+       /* (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 {
+
+               childNode = PolytomousKeyNode.NewInstance();
+               
+               parentNode.addChild(childNode);
+
+               return postExecute(childNode);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/Delete.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/Delete.java
new file mode 100644 (file)
index 0000000..e00cc6e
--- /dev/null
@@ -0,0 +1,65 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.editor.key.polytomous.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class Delete extends AbstractPostOperation {
+
+       private PolytomousKeyNode node;
+       private PolytomousKey key;
+
+       public Delete(String label,
+                       IUndoContext undoContext, PolytomousKeyNode node, IPostOperationEnabled postOperationEnabled) {
+               super(label, undoContext, postOperationEnabled);
+               this.node = node;
+       }
+
+       /* (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 {
+               
+               key = node.getKey();
+               
+               
+               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 {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+}
index 6c3ed6176fb49ee167a91e6fae170ad9deae7bdd..d20f8e7a4eceeb529dd6ffca66a5c9eb758fd355 100644 (file)
@@ -40,7 +40,6 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @version 1.0
  */
 public abstract class AbstractGroup<T extends TaxonBase> implements IDropTargetable{
-       private static final Logger logger = Logger.getLogger(AbstractGroup.class);
        
        private Composite control;
        
index 1ce8e3e06e46debd19a87d10d5a16cc476a12d65..69995ff8a5d70a03a1c26d4b9ba2b57f4431c623 100644 (file)
@@ -12,11 +12,9 @@ package eu.etaxonomy.taxeditor.editor.name;
 import java.lang.reflect.Method;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.TextViewer;
 import org.eclipse.jface.window.DefaultToolTip;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.dnd.DND;
@@ -40,7 +38,6 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
@@ -53,12 +50,12 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation;
 import eu.etaxonomy.taxeditor.labels.ILabelImageStrategy;
 import eu.etaxonomy.taxeditor.labels.LabelImageProvider;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.NameHelper;
 import eu.etaxonomy.taxeditor.model.TextHelper;
-import eu.etaxonomy.taxeditor.operations.CreateSynonymInNewGroupOperation;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
 import eu.etaxonomy.taxeditor.preference.Resources;
 
@@ -86,7 +83,6 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @version 1.0
  */
 abstract public class AbstractGroupedContainer<T extends TaxonBase> {  
-       private static final Logger logger = Logger.getLogger(AbstractGroupedContainer.class);
        
        /**
         * 
@@ -233,8 +229,6 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
                createListener();
 
                isFreeTextEnabled();
-               
-               logger.trace(this.getClass().getSimpleName() + " created");
        }
 
        
@@ -317,22 +311,22 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
                if (nameRelations.size() == 0) {
                        return;
                }
-               for (NameRelationship nameRelation : nameRelations) {
-                       String typeLabel = null;
-                       TaxonNameBase<?, ?> relatedName = null; 
-
-                       if (name.equals(nameRelation.getFromName())) {
-                               typeLabel = labelProvider.getNameRelationTypeLabel( 
-                                                               nameRelation.getType());
-                               relatedName = nameRelation.getToName();
-                       } else {
-                               typeLabel = labelProvider.getNameRelationTypeInverseLabel( 
-                                                               nameRelation.getType());
-                               relatedName = nameRelation.getFromName();
-                       }
-                       
+//             for (NameRelationship nameRelation : nameRelations) {
+//                     String typeLabel = null;
+//                     TaxonNameBase<?, ?> relatedName = null; 
+//
+//                     if (name.equals(nameRelation.getFromName())) {
+//                             typeLabel = labelProvider.getNameRelationTypeLabel( 
+//                                                             nameRelation.getType());
+//                             relatedName = nameRelation.getToName();
+//                     } else {
+//                             typeLabel = labelProvider.getNameRelationTypeInverseLabel( 
+//                                                             nameRelation.getType());
+//                             relatedName = nameRelation.getFromName();
+//                     }
+//                     
 //                     setNonEditableInfo(typeLabel + " " + NameHelper.getDisplayName(relatedName));
-               }
+//             }
        }
                
        /**
@@ -340,7 +334,7 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
         */
        protected void initTextViewer() {
                
-               showNameRelations();
+//             showNameRelations();
                
                String text = NameHelper.getDisplayNameWithRef(getData());
                
@@ -372,7 +366,6 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
                
                EditorUtil.executeOperation(new CreateSynonymInNewGroupOperation
                                ("New Heterotypic Synonym", editor.getUndoContext(), editor.getTaxon(), synonymName, editor));
-               logger.debug("new heterotypic synonym created through entering of line break");
        }
 
        /**
@@ -381,7 +374,7 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
         * Note: Will not parse the text and not calculate errors!
         */
        public void refresh() {
-               showNameRelations();
+//             showNameRelations();
                
                String text = NameHelper.getDisplayNameWithRef(getTaxonBase());
                
@@ -467,7 +460,7 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
                                                                useReference = false;
                                                        }
                                                } catch (ClassNotFoundException e) {
-                                                       logger.error("Class " + method + " could not be found: ", e);
+                                                       EditorUtil.error(getClass(), e);
                                                        return false;
                                                }
                                        } else {
@@ -502,15 +495,15 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
                                                                }
                                                        }
                                                } catch (Exception e) {
-                                                       e.printStackTrace();
-                                                       logger.error("Method " + method + " could not be called: " + e.getMessage());
+                                                       EditorUtil.error(getClass(), e);
                                                        return false;
                                                }
                                        }
                                }
                        }
                } else {
-                       logger.warn("TaxonBase is null. This should not happen.");
+                       EditorUtil.error(getClass(), "TaxonBase is null. This should not happen.", null);
+                       return false;
                }
 
                return enableFreetext;
@@ -574,11 +567,8 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
         */
        public void persistName(){
                if(isDirty()){
-                       logger.warn("Found dirty composite: " + this + ". Name: " + getNameViewer().getTextWidget().getText());
                        getTaxonBase().setName(parseHandler.parseAndResolveDuplicates());
-                       
                        getTaxonBase().setTitleCache((getTaxonBase().generateTitle()));
-
                }
        }
        
@@ -685,7 +675,7 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> {
                        layout.rightMargin = ACCEPTED_INDENT;
                        control.setLayout(layout);
                } else {
-                       logger.warn("Couldn't indent - composite's layout must be TableWrapLayout.");
+                       new RuntimeException("Couldn't indent - composite's layout must be TableWrapLayout.");
                }
        }       
        
index 3afb1a25ef26b0a76193c2541f82b8b2e940ff7f..cc00c1711ae5e4dd5a5c7e3959d6cd4aef538fa3 100644 (file)
@@ -17,11 +17,11 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.IDropTargetable;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeConceptRelationshipTypeOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeConceptToSynonymOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeSynonymToMisapplicationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>NameEditorDropTargetListener class.</p>
index 72c6ed78284c9f4c89a7d960cecc70450efb0bd2..9af90533767485a2e3cacd2a7d9dfaca14ad957c 100644 (file)
@@ -62,7 +62,7 @@ import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.model.IPartChangeListener;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.TaxeditorPartService;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.preference.Resources;
 
 /**
@@ -685,7 +685,7 @@ public class TaxonNameEditor extends EditorPart implements IMultiPageTaxonEditor
                        TaxonBase initiallySelectedTaxonBase = input.getInitiallySelectedTaxonBase();
                        AbstractGroupedContainer container = getContainerForData(initiallySelectedTaxonBase);
                        if(container != null){
-                               input.setInitiallySelectedTaxonBase(null);
+//                             input.setInitiallySelectedTaxonBase(null);
                                return container;
                        }
                }else{
index 234955ef8c66ce7b25e1a1103a4759cbb40cb77a..571e06125adf2aa9ec5bc01e2b5e4b6ceb83982d 100644 (file)
@@ -25,8 +25,8 @@ import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.ChangeAcceptedTaxonToSynonymOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeAcceptedTaxonToSynonymOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>ChangeAcceptedTaxonToSynonymHandler class.</p>
index a2bd9cdf1afb3fead3cad0792105520caa1d365f..68119ba5fa10cebc73656ce65f63cf3ebe7095ac 100644 (file)
@@ -23,8 +23,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeConceptRelationshipTypeOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>ChangeConceptRelationshipTypeHandler class.</p>
index a0120e04f32c541902a5006ab7a5393db4bcb1d0..00c57ff9b3956add937bf030c3131d95b7b95924 100644 (file)
@@ -32,9 +32,9 @@ import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredTaxonNodeSelecti
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeSynonymToAcceptedTaxonOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToAcceptedTaxonOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>ChangeSynonymToAcceptedTaxonHandler class.</p>
index 2dda39e83195c70e21419ffdaba511748fbf82fb..daa140907b49d917045ac8c8183a4fc322d2c86d 100644 (file)
@@ -25,9 +25,9 @@ import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeConceptRelationshipTypeOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeSynonymToConceptOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>ChangeToConceptRelationHandler class.</p>
index 8b039a9578eb22a84e5ae6f2aaab7eead79a9593..02288fa44f83e4923e931268f000c26badfc9fa2 100644 (file)
@@ -23,9 +23,9 @@ import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeConceptRelationshipTypeOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeSynonymToMisapplicationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>ChangeToMisapplicationHandler class.</p>
index 2e0c31018fecf6f734be6287e0bd60843f882663..df41fcd39bc02b237adea47a747ee37236ab5ab6 100644 (file)
@@ -21,8 +21,8 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeConceptToSynonymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>ChangeToSynonymHandler class.</p>
index b33a8d9b4526daf990b62a55f52c81b4bf10cd0a..c28a6d1291575c99ee49c7ee4e840353025f2752 100644 (file)
@@ -23,8 +23,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateConceptRelationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateConceptRelationOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
 
 /**
index 3850600275a840575c331089d7f03b27c29b6994..992f83e1a50f22f338c448b523b46f49f6d8f0be 100644 (file)
@@ -20,8 +20,8 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateSynonymInNewGroupOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
 
 /**
index 241437aacd7489e17dfabb346db6f08204f92d72..a926d9a2ab1b0b166d04bd4ab35bfaac2ab26ae3 100644 (file)
@@ -22,8 +22,8 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
 
 /**
index 7a352675fc00da1a4b720775e0fd32263a456e9d..5768a9a935eba404db88714ce778538310196db6 100644 (file)
@@ -22,8 +22,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateConceptRelationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateConceptRelationOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
 
 /**
index 1af37cc4a9099f6bb6d82545321fef24769bd547..49048fe820a45f97fbb1e215fb803c150b2b5594 100644 (file)
@@ -26,8 +26,8 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
 
 /**
index aa1a7c596fce339e9902f0c02ece5545eefa3730..e7e4a71b7032727c19df873f8b8d27b9f966846d 100644 (file)
@@ -20,10 +20,10 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.DeleteConceptRelationOperation;
-import eu.etaxonomy.taxeditor.operations.DeleteMisapplicationOperation;
-import eu.etaxonomy.taxeditor.operations.DeleteSynonymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.DeleteConceptRelationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>DeleteTaxonBaseHandler class.</p>
index c1329e6b72b43bcc1e3f3c8020c42a76aa6e38e3..c5d5cf8e147508ff5bd347a2384f09f39e503a26 100644 (file)
@@ -23,8 +23,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.RemoveHomotypicalGroupBasionymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.RemoveHomotypicalGroupBasionymOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>RemoveBasionymHandler class.</p>
index 6ecd757a5216c00823eebd01b9ea93f9fe9c296e..20442c61bcc0918549a1492f6966e9dff3b4342e 100644 (file)
@@ -23,8 +23,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeHomotypicalGroupBasionymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>SetBasionymHandler class.</p>
index 8d374c6cca589b1ddabb68ff3e20961552a8c587..879ec5fa72bb9e65ed9cc83732f7b3b77bc6bdca 100644 (file)
@@ -22,7 +22,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operations.SwapSynonymAndAcceptedOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
 
 /**
  * <p>SwapSynonymAndAcceptedHandler class.</p>
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -40,7 +42,7 @@ public class ChangeAcceptedTaxonToSynonymOperation extends
         *
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param oldTaxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
         * @param newAcceptedTaxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import java.util.Set;
 
@@ -20,6 +20,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
@@ -47,7 +49,7 @@ public class ChangeConceptRelationshipTypeOperation extends AbstractPostOperatio
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param relatedTaxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param type a {@link eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public ChangeConceptRelationshipTypeOperation(String label,
                        IUndoContext undoContext, Taxon taxon, Taxon relatedTaxon, TaxonRelationshipType type, IPostOperationEnabled postOperationEnabled) {
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeConceptToSynonymOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptToSynonymOperation.java
index fae1d6f91229623e5bb29a60a3705954711aac93..97a5d667be1ed277965a6b2474b1f9bad998a70e 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import java.util.Set;
 
@@ -23,6 +23,8 @@ import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
@@ -53,7 +55,7 @@ public class ChangeConceptToSynonymOperation extends
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param concept a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param homotypicalGroup a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
-        * @param editor a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param editor a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public ChangeConceptToSynonymOperation(String label,
                        IUndoContext undoContext, Taxon taxon, Taxon concept, HomotypicalGroup homotypicalGroup,
similarity index 94%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeHomotypicGroupOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperation.java
index 1192f24e16da3c1b61373b9bb8b0597667044da1..d83992dd267c3e41fb49725ebceb42ce56a5d33a 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -20,6 +20,8 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * Change the homotypical group of a given synonym.
@@ -51,7 +53,7 @@ public class ChangeHomotypicGroupOperation extends AbstractPostOperation {
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
         * @param newHomotypicalGroup a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
-        * @param editor a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param editor a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public ChangeHomotypicGroupOperation(String label, IUndoContext undoContext, 
                        Taxon taxon, Synonym synonym, HomotypicalGroup newHomotypicalGroup, IPostOperationEnabled editor) {
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>ChangeHomotypicalGroupBasionymOperation class.</p>
@@ -37,7 +39,7 @@ public class ChangeHomotypicalGroupBasionymOperation extends
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param taxonBase a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public ChangeHomotypicalGroupBasionymOperation(String text,
                        IUndoContext undoContext, Taxon taxon, TaxonBase taxonBase, IPostOperationEnabled postOperationEnabled) {
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -20,6 +20,8 @@ import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
@@ -49,7 +51,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
         * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
         * @param synonymsInHomotypicalGroup an array of {@link eu.etaxonomy.cdm.model.taxon.Synonym} objects.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public ChangeSynonymToAcceptedTaxonOperation(String label, IUndoContext undoContext,
similarity index 94%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeSynonymToConceptOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperation.java
index 94f5c791f7fa80e7ab385577831a61b38b2b1522..8ead142b1279f02670e372612f2f750ff2061dea 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -40,7 +42,7 @@ public class ChangeSynonymToConceptOperation extends AbstractPostOperation {
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
         * @param taxonRelationshipType a {@link eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public ChangeSynonymToConceptOperation(String label,
                        IUndoContext undoContext, Taxon taxon, Synonym synonym, TaxonRelationshipType taxonRelationshipType, IPostOperationEnabled postOperationEnabled) {
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>ChangeSynonymToHomotypicalGroupBasionymOperation class.</p>
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import java.util.Set;
 
@@ -22,6 +22,8 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -45,7 +47,7 @@ public class ChangeSynonymToMisapplicationOperation extends AbstractPostOperatio
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
-        * @param editor a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param editor a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public ChangeSynonymToMisapplicationOperation(String label,
                        IUndoContext undoContext, Taxon taxon, Synonym synonym, IPostOperationEnabled editor) {
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateConceptRelationOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateConceptRelationOperation.java
index 9b44de6883426000e0faa46a41c70887acae8e15..77e27dc994ad80ad668f695d52ead45249d01165 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -17,6 +17,8 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>CreateConceptRelationOperation class.</p>
@@ -39,7 +41,7 @@ public class CreateConceptRelationOperation extends AbstractPostOperation {
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param concept a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param taxonRelationshipType a {@link eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public CreateConceptRelationOperation(String label,
                        IUndoContext undoContext, Taxon taxon, Taxon concept, TaxonRelationshipType taxonRelationshipType
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateNameRelationOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateNameRelationOperation.java
index 955754ad76de97f4b2aa920efd948925ed71406e..836d82a0c43e9ce5bdfca01da47af09b34f367aa 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>CreateNameRelationOperation class.</p>
@@ -41,7 +43,7 @@ public class CreateNameRelationOperation extends AbstractPostOperation {
         * @param taxonBase a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
         * @param relatedName a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
         * @param type a {@link eu.etaxonomy.cdm.model.name.NameRelationshipType} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public CreateNameRelationOperation(String label, IUndoContext undoContext, TaxonBase taxonBase, TaxonNameBase relatedName, NameRelationshipType type, IPostOperationEnabled postOperationEnabled) {
                super(label, undoContext, postOperationEnabled);
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>CreateSynonymInExistingHomotypicalGroupOperation class.</p>
@@ -43,7 +45,7 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param group a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
         * @param newSynonymName a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public CreateSynonymInExistingHomotypicalGroupOperation(String label,
                        IUndoContext undoContext, Taxon taxon, HomotypicalGroup group, TaxonNameBase newSynonymName, IPostOperationEnabled postOperationEnabled) {
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInNewGroupOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperation.java
index b89fc885042191cbe299dd11733176aa23b568ba..8accbbeac5a2b3e8f3701bf07eb2a5782c753cfb 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <ol>
@@ -45,7 +47,7 @@ public class CreateSynonymInNewGroupOperation extends AbstractPostOperation {
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param newSynonymName a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public CreateSynonymInNewGroupOperation(String label,
                        IUndoContext undoContext, Taxon taxon, TaxonNameBase newSynonymName, IPostOperationEnabled postOperationEnabled) {
similarity index 95%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteConceptRelationOperation.java
index a246b299b55b2fa29195b79b2a42358d2088da09..51ff8ca90269c09c7744c205119682bada564bf1 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import java.util.Set;
 
@@ -21,6 +21,8 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
@@ -49,7 +51,7 @@ public class DeleteConceptRelationOperation extends AbstractPostOperation {
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param relatedTaxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteConceptRelationOperation(String label,
                        IUndoContext undoContext, Taxon taxon, Taxon relatedTaxon,
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMisapplicationOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteMisapplicationOperation.java
index b3c9bc1c0cc566196f07b75411e56b225944dfbc..99aaf79c56b03f6cc75589ea823c931019b7d4a6 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>DeleteMisapplicationOperation class.</p>
@@ -42,7 +44,7 @@ public class DeleteMisapplicationOperation extends AbstractPostOperation {
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param misapplication a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteMisapplicationOperation(String label, IUndoContext undoContext,
                        Taxon taxon, Taxon misapplication, IPostOperationEnabled postOperationEnabled) {
similarity index 92%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteNameRelationOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteNameRelationOperation.java
index 1c509a6a90f36f088953b1f0fb41fcfa0eeac7f0..c4d4632ffd5f5dc3a7a32438adf83fb5480c0bcf 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>DeleteNameRelationOperation class.</p>
@@ -36,7 +38,7 @@ public class DeleteNameRelationOperation extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param nameRelationship a {@link eu.etaxonomy.cdm.model.name.NameRelationship} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteNameRelationOperation(String label, IUndoContext undoContext, NameRelationship nameRelationship,
                        IPostOperationEnabled postOperationEnabled) {
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteSynonymOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java
index 01ebb0617061a2a952b5e16be611c2a7461c0312..fc5dc5217977c1030863f3e459fc73e2aafdc4fe 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import java.util.Set;
 
@@ -20,6 +20,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>DeleteSynonymOperation class.</p>
@@ -40,7 +42,7 @@ public class DeleteSynonymOperation extends AbstractPostOperation {
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteSynonymOperation(String label, IUndoContext undoContext,
                        Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled) {
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>RemoveHomotypicalGroupBasionymOperation class.</p>
@@ -38,7 +40,7 @@ public class RemoveHomotypicalGroupBasionymOperation extends
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param taxonBase a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public RemoveHomotypicalGroupBasionymOperation(String text,
                        IUndoContext undoContext, Taxon taxon, TaxonBase taxonBase, IPostOperationEnabled postOperationEnabled) {
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SwapSynonymAndAcceptedOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java
index f7ad4ce3d6bc2285087df9a61a6e652da5427d7d..670b09af09bfb40b2de180b4d403f16669b0997a 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
@@ -41,7 +43,7 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
         */
        public SwapSynonymAndAcceptedOperation(String label, IUndoContext undoContext,
index 2b049135d1fc9c6a810a9b6155ef7719646b7ddb..491e8695152f7c592247766de8cbd43b661c617d 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.swt.widgets.Display;
@@ -33,8 +32,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public abstract class AbstractNewEntityWizard<T extends IAnnotatableEntity> extends Wizard implements
                INewWizard, IConversationEnabled {
-       private static final Logger logger = Logger
-                       .getLogger(AbstractNewEntityWizard.class);
 
        private ConversationHolder conversation;
        
@@ -42,8 +39,6 @@ public abstract class AbstractNewEntityWizard<T extends IAnnotatableEntity> exte
 
        protected T entity;
 
-       private IWorkbench workbench;
-
        protected IStructuredSelection selection;
        
        /**
@@ -97,7 +92,6 @@ public abstract class AbstractNewEntityWizard<T extends IAnnotatableEntity> exte
        /** {@inheritDoc} */
        @Override
        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               this.workbench = workbench;
                this.selection = selection;
                formFactory = new CdmFormFactory(Display.getCurrent(), null);
                entity = createNewEntity();
index 5abbf094f5edef70e7640e74ca3fbac3135a4429..152e6509d5cffed21d8c4e15cfe44bd35650dfe2 100644 (file)
@@ -12,7 +12,6 @@ package eu.etaxonomy.taxeditor.editor.newWizard;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -45,9 +44,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class ExternalReferenceServiceWizardPage extends WizardPage implements SelectionListener, ISelectionChangedListener {
 
-
-       private static final Logger logger = Logger
-                       .getLogger(ExternalReferenceServiceWizardPage.class);
        private ConversationHolder conversation;
        private CdmFormFactory formFactory;
        private Reference entity;
index d5c3a199ba935255a942b226d11266a6131fabec..490c50c325380fdeb9ae0b0882870693c34e4364 100644 (file)
@@ -10,8 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
-import org.apache.log4j.Logger;
-
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
 import eu.etaxonomy.cdm.model.occurrence.Specimen;
 import eu.etaxonomy.taxeditor.section.occurrence.DerivedUnitFacadeWizardPage;
@@ -25,8 +23,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUnitBase> {
-       private static final Logger logger = Logger
-                       .getLogger(NewDerivedUnitBaseWizard.class);
 
        /** {@inheritDoc} */
        @Override
index f637d6adc0da92cfc013b41e86b61532525211bd..c6115cff23d87001b226a89b775c89eed044ef89 100644 (file)
@@ -10,8 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
-import org.apache.log4j.Logger;
-
 import eu.etaxonomy.cdm.model.name.BotanicalName;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.NonViralName;
@@ -28,8 +26,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class NewNonViralNameWizard extends AbstractNewEntityWizard<NonViralName> {
-       private static final Logger logger = Logger
-                       .getLogger(NewNonViralNameWizard.class);
 
        /** {@inheritDoc} */
        @Override
index 7b8018709e59cbeb7338054cca0a85834b66112d..07ae59bf6b9b93cb07518b1f10afc29cb74c7f72 100644 (file)
@@ -10,8 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
-import org.apache.log4j.Logger;
-
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.taxeditor.section.agent.PersonWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -24,8 +22,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class NewPersonWizard extends AbstractNewEntityWizard<Person> {
-       private static final Logger logger = Logger
-                       .getLogger(NewPersonWizard.class);
 
        /** {@inheritDoc} */
        @Override
index db27a52fcde736652f19876bcf4d4a33beb1f70f..ca9dd0114e8ea6a88b2dafa1a867e8375b61aa44 100644 (file)
@@ -10,8 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.newWizard;
 
-import org.apache.log4j.Logger;
-
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.taxeditor.section.agent.TeamWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -24,7 +22,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
-       private static final Logger logger = Logger.getLogger(NewTeamWizard.class);
 
        /** {@inheritDoc} */
        @Override
index 3b98f36394ee5b2432281630c2dbab93ad0e3907..1d18402d39ff847ae43d99441aa8f59307ad7ab6 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.translation;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
@@ -28,9 +27,6 @@ import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
  */
 public class TranslationMetaDataWizardPage extends WizardPage {
 
-
-       private static final Logger logger = Logger
-                       .getLogger(TranslationMetaDataWizardPage.class);
        private CdmFormFactory formFactory;
 
        /**
index 8050fc127370afa242120ac44b83cf72f9935e74..4885f02d189f7b56f28c4c9f57167151210980dd 100644 (file)
@@ -16,7 +16,6 @@ import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * <p>TranslationWizard class.</p>
index 9b23df5cbab99645948a2c28afa33bae609f03fb..83655e07b521ccb8562904729b701b240a002435 100644 (file)
@@ -18,7 +18,6 @@ import java.util.Set;
 
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Button;
index 8f14e01935071ad77a5f9f6cffa0198e3d8aef24..0ea3ee84060d91f9580e4b8901d75c7afdb3c6c4 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.view;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.dialogs.IDialogSettings;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
@@ -36,8 +35,6 @@ import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
  * @version 1.0
  */
 public abstract class AbstractSplitableViewPart extends ViewPart implements ISelectionListener{
-       private static final Logger logger = Logger
-                       .getLogger(AbstractSplitableViewPart.class);
        
        static final int VIEW_ORIENTATION_VERTICAL = 0;
        static final int VIEW_ORIENTATION_HORIZONTAL = 1;
index 67a543b7121edd6878cc7b355f573fa45fccea90..568c914fd3587d8785ce6046b3267381afc9bde0 100644 (file)
@@ -7,7 +7,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
@@ -17,6 +16,7 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
+import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.TermStore;
 
@@ -28,18 +28,16 @@ import eu.etaxonomy.taxeditor.store.TermStore;
  * @version $Id: $
  */
 public class DescriptiveContentProvider implements ITreeContentProvider {
-       private static final Logger logger = Logger
-                       .getLogger(DescriptiveContentProvider.class);
-
+       
        private static final Object[] NO_CHILDREN = new Object[0];
-       private Map<TaxonDescription, FeatureNodeContainer> featureNodeContainerCache;
+       private Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache;
        
        /**
         * <p>Constructor for DescriptiveContentProvider.</p>
         *
         * @param featureNodeContainerCache a {@link java.util.Map} object.
         */
-       public DescriptiveContentProvider(Map<TaxonDescription, FeatureNodeContainer> featureNodeContainerCache) {
+       public DescriptiveContentProvider(Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache) {
                this.featureNodeContainerCache = featureNodeContainerCache;
        }
        
@@ -54,9 +52,10 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
                else if (parentElement instanceof TaxonDescription) {
                        if ( ! ((TaxonDescription) parentElement).isImageGallery()) {
                                TaxonDescription description = (TaxonDescription) parentElement;
-                               FeatureNodeContainer rootContainer = FeatureNodeContainer.CreateTree(getFeatureTree(description), description);
-                               featureNodeContainerCache.put(description, rootContainer);
-                               return rootContainer.getChildren().toArray();
+                               
+                               FeatureNodeContainerTree containerTree = getContainerTreeForDesription(description);
+                               
+                               return containerTree.getRoot().getChildren().toArray();
                        }
                }
                else if (parentElement instanceof FeatureNodeContainer){
@@ -70,10 +69,25 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
                
                return NO_CHILDREN;
        }
+       
+       private FeatureNodeContainerTree getContainerTreeForDesription(TaxonDescription description){
+               if(! featureNodeContainerCache.containsKey(description)){
+                       FeatureNodeContainerTree containerTree = new FeatureNodeContainerTree(description, getFeatureTree(description));
+                       featureNodeContainerCache.put(description, containerTree);
+               }
+               return featureNodeContainerCache.get(description);
+       }
 
        /** {@inheritDoc} */
        @Override
        public boolean hasChildren(Object element) {
+               if (element instanceof TaxonDescription){
+                       TaxonDescription description = (TaxonDescription) element;
+                       FeatureNodeContainerTree containerTree = featureNodeContainerCache.get(description);
+                       if(containerTree != null && containerTree.getRoot() != null){
+                               return containerTree.getRoot().getChildren().size() != 0;
+                       }
+               } 
                return getChildren(element).length != 0;
        }
        
@@ -143,7 +157,9 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
        /**
         * <p>dispose</p>
         */
-       public void dispose() {}
+       public void dispose() {
+               featureNodeContainerCache.clear();
+       }
 
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
index 61fe909134bc7417ab2e5e4561de3aee8e9c00b5..03b76f716d6847353b8316c76d6c7d58fc4eda91 100644 (file)
@@ -3,7 +3,6 @@
  */
 package eu.etaxonomy.taxeditor.editor.view.descriptive;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.jface.viewers.StyledString;
@@ -17,9 +16,6 @@ import eu.etaxonomy.taxeditor.model.DescriptionHelper;
  * @version $Id: $
  */
 public class DescriptiveLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider  {
-       private static final Logger logger = Logger
-                       .getLogger(DescriptiveLabelProvider.class);
-
        
        /** {@inheritDoc} */
        public String getText(Object element) {
index c5232c2afb836e55a4d9d9afc3dca53bf94b4068..6dc5ce77e84ab16c565f00208fa7eab1d486621d 100644 (file)
@@ -15,7 +15,6 @@ import java.util.Map;
 
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -35,6 +34,7 @@ import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPart;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
@@ -42,6 +42,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.AbstractCdmEditorViewPart;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
+import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.model.ImageResources;
@@ -60,7 +61,7 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
        
        private TreeViewer viewer;
        
-       private Map<TaxonDescription, FeatureNodeContainer> featureNodeContainerCache = new HashMap<TaxonDescription, FeatureNodeContainer>();
+       private Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache = new HashMap<TaxonDescription, FeatureNodeContainerTree>();
 
        private ToggleDescriptionAction showAllElementsAction;
 
@@ -75,23 +76,19 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
                viewer.setContentProvider(new DescriptiveContentProvider(featureNodeContainerCache));           
                viewer.setLabelProvider(new DescriptiveLabelProvider());
                
+               viewer.setSorter(new DescriptiveViewerSorter());
+               
                viewer.setAutoExpandLevel(2);
                                                
                // Propagate selection from viewer
                getSite().setSelectionProvider(viewer);
                
-               // Add context menu to tree
-               MenuManager menuMgr = new MenuManager();
-               menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-               getSite().registerContextMenu(menuMgr, viewer);
-               
-               Control control = viewer.getControl();
-               Menu menu = menuMgr.createContextMenu(control);
-               control.setMenu(menu);                  
-               
                showAllElementsAction = new ToggleDescriptionAction(false);             
                hideAllElementsAction = new ToggleDescriptionAction(true);
                
+               // Add context menu to tree
+               createMenu();
+               
                createToolbar();
                
                // set initial input
@@ -123,9 +120,19 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
         * TODO add to the views menu
         */
        private void createMenu(){
-               IMenuManager menuManager = getViewSite().getActionBars().getMenuManager();
+               MenuManager menuManager = new MenuManager();
+               menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+               
+               getSite().registerContextMenu(menuManager, viewer);
+
+               // FIXME for some reason this is not working
                menuManager.add(showAllElementsAction);
                menuManager.add(hideAllElementsAction);
+                               
+               Control control = viewer.getControl();
+               Menu menu = menuManager.createContextMenu(control);
+               
+               control.setMenu(menu);  
        }
 
        /** {@inheritDoc} */
@@ -169,6 +176,7 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
                        setImageDescriptor(new ImageDescriptor() {
                                @Override
                                public ImageData getImageData() {
+                                       setText(expanded ? "Collapse All" : "Expand All");
                                        String resource = expanded ? ImageResources.COLLAPSE_ALL : ImageResources.EXPAND_ALL;
                                        return ImageResources.getImage(resource).getImageData();
                                }
@@ -192,41 +200,27 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
        /** {@inheritDoc} */
        @Override
        public boolean postOperation(CdmBase objectAffectedByOperation) {
-               boolean result = super.postOperation(objectAffectedByOperation);
-               
-//             if(objectAffectedByOperation != null){
-//                     
-//                     if(objectAffectedByOperation instanceof DescriptionElementBase){
-//                             DescriptionElementBase descriptionElement = (DescriptionElementBase) objectAffectedByOperation;
-//                             FeatureNodeContainer featureNodeContainerBranch = featureNodeContainerCache.get(descriptionElement.getInDescription());
-//                             FeatureNodeContainer featureNodeContainer = featureNodeContainerBranch.processDescriptionElement(descriptionElement);
-////                           viewer.refresh(featureNodeContainer, true);
-//                             viewer.expandToLevel(featureNodeContainer, 1);
-//                     }
-//                     
-//                     StructuredSelection selection = new StructuredSelection(objectAffectedByOperation);
-//                     viewer.setSelection(selection, true);
-//             }else{
-////                   viewer.refresh();
-//             }
-
-               return result;
+               return super.postOperation(objectAffectedByOperation);
        }
 
        /** {@inheritDoc} */
        @Override
        public void changed(Object object) {
+               for(FeatureNodeContainerTree containerTree : featureNodeContainerCache.values()){
+                       containerTree.buildTree();
+               }
+               viewer.refresh();
+               
                if(object instanceof DescriptionElementBase){
                        DescriptionElementBase descriptionElement = (DescriptionElementBase) object;
-                       FeatureNodeContainer featureNodeContainerBranch = featureNodeContainerCache.get(descriptionElement.getInDescription());
-                       FeatureNodeContainer featureNodeContainer = featureNodeContainerBranch.processDescriptionElement(descriptionElement);
-                       viewer.refresh(featureNodeContainer, true);
+                       DescriptionBase description = descriptionElement.getInDescription();
+                       FeatureNodeContainerTree containerTree = featureNodeContainerCache.get(description);
+                       
+                       FeatureNodeContainer featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
                        viewer.expandToLevel(featureNodeContainer, 1);
                        
-               }else{
-                       viewer.refresh(true);
                }
-               
+
                if(object != null){
                        StructuredSelection selection = new StructuredSelection(object);
                        viewer.setSelection(selection, true);
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewerSorter.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewerSorter.java
new file mode 100644 (file)
index 0000000..9eeccbc
--- /dev/null
@@ -0,0 +1,37 @@
+// $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.view.descriptive;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.taxeditor.model.DescriptionHelper;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 2, 2010
+ * @version 1.0
+ */
+public class DescriptiveViewerSorter extends ViewerSorter {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+        */
+       @Override
+       public int compare(Viewer viewer, Object e1, Object e2) {
+               if((e1 instanceof DescriptionElementBase) && (e2 instanceof DescriptionElementBase)){
+                       return DescriptionHelper.getLabel((DescriptionElementBase)e1).compareTo(DescriptionHelper.getLabel((DescriptionElementBase)e2));
+               }
+               return super.compare(viewer, e1, e2);
+       }
+       
+}
index 28bb378580e6a7fc038d0a12332ae79fb8a4b3db..f388f018e6c7fd1a395ee1592af78092e7c75b9e 100644 (file)
@@ -30,9 +30,9 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateDescriptionElementOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>CreateDescriptionElementHandler class.</p>
@@ -66,7 +66,7 @@ public class CreateDescriptionElementHandler extends AbstractHandler {
 
                        TaxonDescription description = null;
 
-                       ISelection selection = HandlerUtil.getCurrentSelection(event);
+                       ISelection selection = HandlerUtil.getActiveMenuSelection(event);
                        if (selection instanceof ITreeSelection) {
                                TreePath[] paths = ((ITreeSelection) selection).getPaths();
                                Object firstSegment = paths[0].getFirstSegment();
index e810b5b5641c4a0f65b81473d1c29dc0ba4b0077..491057e1aff728706c024274a7335412fdc48efe 100644 (file)
@@ -8,7 +8,6 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -22,9 +21,9 @@ import org.eclipse.ui.handlers.HandlerUtil;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateTaxonDescriptionOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>AddDescriptionHandler class.</p>
@@ -34,8 +33,6 @@ import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
  * @version 1.0
  */
 public class CreateDescriptionHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(CreateDescriptionElementHandler.class);
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -60,7 +57,7 @@ public class CreateDescriptionHandler extends AbstractHandler {
                                                EditorUtil.getUndoContext(), taxon, postOperationEnabled);
                                EditorUtil.executeOperation(operation);
                        } catch (NotDefinedException e) {
-                               logger.warn("Command name not set");
+                               EditorUtil.warn(getClass(), "Command name not set.");
                        }
                } 
                return null;
index 04f26758b9dce5ae4a597312695fa49fe45069ee..0e8324c4ebe724b7a61cbcf75b6fa7c622a41988 100644 (file)
@@ -13,7 +13,6 @@ package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -29,12 +28,12 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteTaxonDescriptionOperation;
+import eu.etaxonomy.taxeditor.editor.view.media.operation.DeleteMediaOperation;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.DeleteDescriptionElementOperation;
-import eu.etaxonomy.taxeditor.operations.DeleteMediaOperation;
-import eu.etaxonomy.taxeditor.operations.DeleteTaxonDescriptionOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>DeleteDescriptionHandler class.</p>
@@ -44,9 +43,7 @@ import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
  * @version 1.0
  */
 public class DeleteHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(DeleteHandler.class);
-
+       
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
         */
@@ -94,7 +91,7 @@ public class DeleteHandler extends AbstractHandler {
                                        operations.add(new DeleteMediaOperation(label, undoContext, imageGallery, (Media) object, postOperationEnabled));
                                }
                                else{
-                                       logger.error("Selection os not valid for this delete handler");
+                                       EditorUtil.error(getClass(), "Selection is not valid for this delete handler", null);
                                }       
                        }
                        
@@ -104,7 +101,7 @@ public class DeleteHandler extends AbstractHandler {
                        }
                        
                } catch (NotDefinedException e) {
-                       logger.warn("Command name not set");
+                       EditorUtil.warn(getClass(), "Command name not set.");
                }
                
                
index da5f3156e35244370fd6e76c6e492d03437f2561..6899f3d9eee7940b79e0643a5edfd1a1f2e60c0a 100644 (file)
@@ -3,7 +3,6 @@
  */
 package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.expressions.PropertyTester;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
@@ -20,9 +19,6 @@ import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
  * @version $Id: $
  */
 public class DescriptionsMenuPropertyTester extends PropertyTester {
-
-       private static final Logger logger = Logger
-                       .getLogger(DescriptionsMenuPropertyTester.class);
        
        private static final String MEDIA = "isMedia";
        private static final String FEATURE_NODE_CONTAINER = "isFeatureNodeContainer";
@@ -67,7 +63,6 @@ public class DescriptionsMenuPropertyTester extends PropertyTester {
        private boolean isFeatureNodeContainer(Object[] selectedElements) {
                for (Object object : selectedElements){
                        if(!(object instanceof FeatureNodeContainer)){
-                               logger.trace("Is not a feature node container");
                                return false;
                        }
                }
@@ -85,7 +80,6 @@ public class DescriptionsMenuPropertyTester extends PropertyTester {
                                || (object instanceof FeatureNodeContainer)){
                                result = true;
                        }else{
-                               logger.trace("Is not deletable");
                                return false;
                        }
                        
@@ -96,7 +90,6 @@ public class DescriptionsMenuPropertyTester extends PropertyTester {
        private boolean isDescriptionElement(Object[] selectedElements) {
                for (Object object : selectedElements){
                        if(!(object instanceof DescriptionElementBase)){
-                               logger.trace("Is not a description element");
                                return false;
                        }
                }
@@ -106,7 +99,6 @@ public class DescriptionsMenuPropertyTester extends PropertyTester {
        private boolean isDescription(Object[] selectedElements) {
                for (Object object : selectedElements){
                        if(!(object instanceof DescriptionBase)){
-                               logger.trace("Is not a description");
                                return false;
                        }
                }
@@ -116,7 +108,6 @@ public class DescriptionsMenuPropertyTester extends PropertyTester {
        private boolean isMedia(Object[] selectedElements) {
                for (Object object : selectedElements){
                        if(!(object instanceof Media)){
-                               logger.trace("Is not media");
                                return false;
                        }
                }
index bd628916fe71b0ef58605761ca45aab920ca5285..ee150fe589398803a157e4b4e33616ff9ef00b56 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.action.ContributionItem;
 import org.eclipse.jface.action.IContributionItem;
 import org.eclipse.jface.viewers.ISelection;
@@ -33,8 +32,8 @@ import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
-import eu.etaxonomy.taxeditor.operations.CreateDescriptionElementOperation;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
@@ -45,8 +44,6 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @version 1.0
  */
 public class DynamicFeatureMenu extends CompoundContributionItem {
-       private static final Logger logger = Logger
-                       .getLogger(DynamicFeatureMenu.class);
        
        private ISelectionService selectionService = EditorUtil.getActivePart().getSite().getWorkbenchWindow().getSelectionService();
        private IHandlerService handlerService = (IHandlerService) EditorUtil.getService(IHandlerService.class);
@@ -110,7 +107,7 @@ public class DynamicFeatureMenu extends CompoundContributionItem {
                                try {
                                        handlerService.executeCommand(CreateDescriptionElementOperation.ID, event);
                                } catch (Exception e) {
-                                       logger.error("Error executing command", e);
+                                       EditorUtil.error(getClass(), e);
                                }
                        }                               
                });
similarity index 95%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ChangeDescriptionElementType.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/ChangeDescriptionElementType.java
index b5f6eb0fd670e66aa744aed495fd0eab86a171e2..7f5a3c86ae078c8a46c8653ddf7a24c3c4334b62 100644 (file)
@@ -7,7 +7,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -25,6 +25,8 @@ import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;
 import eu.etaxonomy.cdm.model.description.TextData;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>ChangeDescriptionElementType class.</p>
@@ -50,7 +52,7 @@ public class ChangeDescriptionElementType extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param sourceType a {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase} object.
-        * @param postOperation a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperation a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public ChangeDescriptionElementType(String label, DescriptionElementBase sourceType, IPostOperationEnabled postOperation, 
                        IUndoContext undoContext) {
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -26,6 +26,8 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>CreateDescriptionElementOperation class.</p>
@@ -52,7 +54,7 @@ public class CreateDescriptionElementOperation extends AbstractPostOperation {
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param description a {@link eu.etaxonomy.cdm.model.description.TaxonDescription} object.
         * @param feature a {@link eu.etaxonomy.cdm.model.description.Feature} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public CreateDescriptionElementOperation(String label, IUndoContext undoContext,
                        Taxon taxon, TaxonDescription description, Feature feature, IPostOperationEnabled postOperationEnabled) {
@@ -70,7 +72,7 @@ public class CreateDescriptionElementOperation extends AbstractPostOperation {
         * @param description a {@link eu.etaxonomy.cdm.model.description.TaxonDescription} object.
         * @param feature a {@link eu.etaxonomy.cdm.model.description.Feature} object.
         * @param element a {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param label a {@link java.lang.String} object.
         */
        public CreateDescriptionElementOperation(String label,
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -20,6 +20,8 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>CreateTaxonDescriptionOperation class.</p>
@@ -40,7 +42,7 @@ public class CreateTaxonDescriptionOperation extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext,
                        Taxon taxon, IPostOperationEnabled postOperationEnabled) {
@@ -53,7 +55,7 @@ public class CreateTaxonDescriptionOperation extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param isImageGallery a boolean.
         */
        public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext,
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -17,6 +17,8 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
@@ -37,7 +39,7 @@ public class DeleteDescriptionElementOperation extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param element a {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteDescriptionElementOperation(String label, IUndoContext undoContext,
                        DescriptionElementBase element, IPostOperationEnabled postOperationEnabled) {
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -16,6 +16,8 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>DeleteTaxonDescriptionOperation class.</p>
@@ -35,7 +37,7 @@ public class DeleteTaxonDescriptionOperation extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param description a {@link eu.etaxonomy.cdm.model.description.TaxonDescription} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteTaxonDescriptionOperation(String label, IUndoContext undoContext,
                        TaxonDescription description, IPostOperationEnabled postOperationEnabled) {
index d2b53821982b5cc018aefd16f444888e8b42175a..fe39f58e1676677ed1e3b1905c58f94dd6d360cd 100644 (file)
 
 package eu.etaxonomy.taxeditor.editor.view.detail;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.ui.forms.SectionPart;
 
 import eu.etaxonomy.cdm.model.common.IVersionableEntity;
-import eu.etaxonomy.cdm.model.common.VersionableEntity;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer;
 import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
@@ -32,9 +30,6 @@ import eu.etaxonomy.taxeditor.section.ITaxonDetailSection;
  */
 public class CdmSectionPart<T extends IVersionableEntity> extends SectionPart implements IPropertyChangeListener{
        
-       private static final Logger logger = Logger
-                               .getLogger(CdmSectionPart.class);
-
        private AbstractFormSection<T> formSection;
        
        /**
@@ -55,7 +50,6 @@ public class CdmSectionPart<T extends IVersionableEntity> extends SectionPart im
                        input = ((AbstractGroupedContainer) input).getData();
                }
                if(input instanceof IVersionableEntity){
-                       logger.trace("Setting input for section: " + formSection.getClass().getSimpleName());
                        if((input instanceof TaxonBase) && (formSection instanceof ITaxonDetailSection)){
                                ((ITaxonDetailSection) formSection).setTaxon((TaxonBase) input);
                        }else{
index 8c0cc0b3c3e25f53207eaaaab703ab1a4e961cd8..f97b0a3e0c4c087dfd64dbf0032ca72ad938e13b 100644 (file)
@@ -20,9 +20,6 @@ import org.eclipse.ui.IWorkbenchPart;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
 import eu.etaxonomy.taxeditor.editor.view.AbstractCdmEditorViewPart;
 import eu.etaxonomy.taxeditor.model.AbstractCdmViewPart;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -97,24 +94,10 @@ public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartC
                return (DetailsViewer) getViewer();
        }
        
-       /** {@inheritDoc} */
-       @Override
-       public void changed(Object object) {
-               super.changed(object);
-               if(part instanceof MultiPageTaxonEditor){
-                       MultiPageTaxonEditor editor = (MultiPageTaxonEditor) part;
-                       if(editor != null){
-                               TaxonNameEditor page = (TaxonNameEditor) editor.getPage(Page.NAME);
-                               page.getSelectedObject().refresh();
-                       }       
-               }
-       }
-       
        /** {@inheritDoc} */
        @Override
        public boolean postOperation(CdmBase objectAffectedByOperation) {
                
-               
                viewer.setInput(objectAffectedByOperation);
                
                return super.postOperation(objectAffectedByOperation);
index 4f902368be4cb86ddf410588f24af2d18dfb6b57..92163058328adff1b8eced198e7268edc17fa450 100644 (file)
@@ -21,23 +21,47 @@ import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
 import eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer;
-import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.EntityDetailType;
 import eu.etaxonomy.taxeditor.forms.RootElement;
 import eu.etaxonomy.taxeditor.model.AbstractCdmViewPart;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
+import eu.etaxonomy.taxeditor.section.agent.PersonDetailSection;
+import eu.etaxonomy.taxeditor.section.agent.TeamDetailSection;
+import eu.etaxonomy.taxeditor.section.agent.TeamOrPersonBaseDetailSection;
+import eu.etaxonomy.taxeditor.section.description.DescribedSpecimenSection;
+import eu.etaxonomy.taxeditor.section.description.DescriptionDetailSection;
+import eu.etaxonomy.taxeditor.section.description.DescriptionElementDetailSection;
+import eu.etaxonomy.taxeditor.section.description.DescriptionElementMediaSection;
+import eu.etaxonomy.taxeditor.section.description.DescriptionElementSourceSection;
+import eu.etaxonomy.taxeditor.section.description.DescriptionSourceSection;
+import eu.etaxonomy.taxeditor.section.description.MediaDetailsSection;
+import eu.etaxonomy.taxeditor.section.description.NaturalLanguageSection;
+import eu.etaxonomy.taxeditor.section.description.ScopeSection;
+import eu.etaxonomy.taxeditor.section.feature.FeatureDistributionDetailSection;
+import eu.etaxonomy.taxeditor.section.key.GeographicalScopeDetailSection;
+import eu.etaxonomy.taxeditor.section.key.PolytomousKeyDetailSection;
+import eu.etaxonomy.taxeditor.section.key.PolytomousKeyNodeDetailSection;
+import eu.etaxonomy.taxeditor.section.key.ScopeRestrictionSection;
+import eu.etaxonomy.taxeditor.section.name.NameRelationshipDetailSection;
+import eu.etaxonomy.taxeditor.section.name.NomenclaturalStatusSection;
+import eu.etaxonomy.taxeditor.section.name.NonViralNameDetailSection;
+import eu.etaxonomy.taxeditor.section.name.ProtologueSection;
+import eu.etaxonomy.taxeditor.section.name.TypeDesignationSection;
+import eu.etaxonomy.taxeditor.section.occurrence.DerivedUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.section.occurrence.FieldObservationDetailSection;
+import eu.etaxonomy.taxeditor.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.section.reference.ReferenceDetailSection;
+import eu.etaxonomy.taxeditor.section.taxon.ParsingMessagesSection;
+import eu.etaxonomy.taxeditor.section.taxon.TaxonBaseDetailSection;
 
 /**
  * <p>DetailsViewer class.</p>
@@ -61,14 +85,14 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                TEAM_OR_PERSON_BASE,
                DERIVED_UNIT_BASE,
                FIELD_OBSERVATION,
-               FEATURE_DISTRIBUTION
+               FEATURE_DISTRIBUTION,
+               POLYTOMOUS_KEY,
+               POLYTOMOUS_KEY_NODE
        }
        
        private VIEW_PART currentViewPart;
 
        private ISelection selection;
-
-       private AbstractGroupedContainer sourceContainer;
        
        /**
         * <p>Constructor for DetailsViewer.</p>
@@ -92,15 +116,15 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                                currentViewPart = VIEW_PART.TAXON;
                                
                                // preserve a pointer to the AbstractNameComposite
-                               MultiPageTaxonEditor editor = EditorUtil.getActiveMultiPageTaxonEditor();
-                               if(editor != null){
-                                       TaxonNameEditor page = (TaxonNameEditor) editor.getPage(Page.NAME);
-                                       for(AbstractGroupedContainer container : page.getGroupedContainers()){
-                                               if(container.getData() == getInput()){
-                                                       sourceContainer = container;
-                                               }
-                                       }
-                               }                               
+//                             MultiPageTaxonEditor editor = EditorUtil.getActiveMultiPageTaxonEditor();
+//                             if(editor != null){
+//                                     TaxonNameEditor page = (TaxonNameEditor) editor.getPage(Page.NAME);
+//                                     for(AbstractGroupedContainer container : page.getGroupedContainers()){
+//                                             if(container.getData() == getInput()){
+//                                                     sourceContainer = container;
+//                                             }
+//                                     }
+//                             }                               
                        }                       
                }else if(getInput() instanceof NonViralName){
                        if(currentViewPart != VIEW_PART.NAME){
@@ -158,6 +182,16 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                                createFeatureDistributionSection(rootElement);
                                currentViewPart = VIEW_PART.FEATURE_DISTRIBUTION;
                        }
+               }else if(getInput() instanceof PolytomousKey) {
+                       if(currentViewPart != VIEW_PART.POLYTOMOUS_KEY){
+                               createPolytomousKeySection(rootElement);
+                               currentViewPart = VIEW_PART.POLYTOMOUS_KEY;
+                       }
+               }else if(getInput() instanceof PolytomousKeyNode) {
+                       if(currentViewPart != VIEW_PART.POLYTOMOUS_KEY_NODE){
+                               createPolytomousKeyNodeSection(rootElement);
+                               currentViewPart = VIEW_PART.POLYTOMOUS_KEY_NODE;
+                       }
                }else{
                        destroySections();
                        currentViewPart = VIEW_PART.EMPTY;
@@ -166,7 +200,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                layout();
        }
 
-
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.Viewer#getSelection()
         */
@@ -191,43 +224,43 @@ public class DetailsViewer extends AbstractCdmDataViewer {
        private void createTaxonSections(RootElement parent) {
                destroySections();
                
-               AbstractFormSection taxonBaseDetailSection = 
+               TaxonBaseDetailSection taxonBaseDetailSection = (TaxonBaseDetailSection) 
                        formFactory.createCdmDetailSection(DetailType.TAXONBASE, getConversationHolder(), parent, this, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection nonViralNameSection = 
+               NonViralNameDetailSection nonViralNameSection = (NonViralNameDetailSection) 
                        formFactory.createCdmDetailSection(DetailType.NONVIRALNAME, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
                                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection referenceBaseDetailSection = 
-                        formFactory.createCdmDetailSection(DetailType.NOMENCLATURALREFERENCE, getConversationHolder(), parent, this, Section.TWISTIE);
+               NomenclaturalReferenceDetailSection referenceDetailSection = (NomenclaturalReferenceDetailSection) 
+                       formFactory.createCdmDetailSection(DetailType.NOMENCLATURALREFERENCE, getConversationHolder(), parent, this, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection nomenclaturalStatusSection = 
-                        formFactory.createEntityDetailSection(EntityDetailType.NOMENCLATURALSTATUS, getConversationHolder(), parent, Section.TWISTIE);
+               NomenclaturalStatusSection nomenclaturalStatusSection = (NomenclaturalStatusSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.NOMENCLATURALSTATUS, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection protologSection = 
-                        formFactory.createEntityDetailSection(EntityDetailType.PROTOLOG, getConversationHolder(), parent, Section.TWISTIE);
+               ProtologueSection protologSection = (ProtologueSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.PROTOLOG, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection typeDesignationSection = 
+               TypeDesignationSection typeDesignationSection = (TypeDesignationSection) 
                        formFactory.createEntityDetailSection(EntityDetailType.TYPEDESIGNATION, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection nameRelationshipSection = 
+               NameRelationshipDetailSection nameRelationshipSection = (NameRelationshipDetailSection) 
                        formFactory.createEntityDetailSection(EntityDetailType.NAME_RELATIONSHIP, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection parsingMessagesSection = 
-                        formFactory.createCdmDetailSection(DetailType.PARSINGMESSAGE, getConversationHolder(), parent, this, Section.EXPANDED);
+               ParsingMessagesSection parsingMessagesSection = (ParsingMessagesSection) 
+                       formFactory.createCdmDetailSection(DetailType.PARSINGMESSAGE, getConversationHolder(), parent, this, Section.EXPANDED);
                
                
                
@@ -235,7 +268,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                addPart(nonViralNameSection);           
                addPart(nomenclaturalStatusSection);
                addPart(protologSection);               
-               addPart(referenceBaseDetailSection);
+               addPart(referenceDetailSection);
                addPart(typeDesignationSection);
                addPart(parsingMessagesSection);
                addPart(nameRelationshipSection);
@@ -243,32 +276,32 @@ public class DetailsViewer extends AbstractCdmDataViewer {
        
        private void createNameSections(RootElement parent) {
                destroySections();
-               AbstractFormSection nonViralNameSection = 
-                       formFactory.createCdmDetailSection(DetailType.NONVIRALNAME, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
-               
+               NonViralNameDetailSection nonViralNameSection = (NonViralNameDetailSection) 
+               formFactory.createCdmDetailSection(DetailType.NONVIRALNAME, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+                       
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection referenceBaseDetailSection = 
-                        formFactory.createCdmDetailSection(DetailType.NOMENCLATURALREFERENCE, getConversationHolder(), parent, this, Section.TWISTIE);
+               ReferenceDetailSection referenceDetailSection = (ReferenceDetailSection) 
+                       formFactory.createCdmDetailSection(DetailType.NOMENCLATURALREFERENCE, getConversationHolder(), parent, this, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection nomenclaturalStatusSection = 
-                        formFactory.createEntityDetailSection(EntityDetailType.NOMENCLATURALSTATUS, getConversationHolder(), parent, Section.TWISTIE);
+               NomenclaturalStatusSection nomenclaturalStatusSection = (NomenclaturalStatusSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.NOMENCLATURALSTATUS, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection protologSection = 
-                        formFactory.createEntityDetailSection(EntityDetailType.PROTOLOG, getConversationHolder(), parent, Section.TWISTIE);
+               ProtologueSection protologSection = (ProtologueSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.PROTOLOG, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection typeDesignationSection = 
+               TypeDesignationSection typeDesignationSection = (TypeDesignationSection) 
                        formFactory.createEntityDetailSection(EntityDetailType.TYPEDESIGNATION, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection nameRelationshipSection = 
+               NameRelationshipDetailSection nameRelationshipSection = (NameRelationshipDetailSection) 
                        formFactory.createEntityDetailSection(EntityDetailType.NAME_RELATIONSHIP, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
@@ -276,21 +309,23 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                addPart(nonViralNameSection);           
                addPart(nomenclaturalStatusSection);
                addPart(protologSection);               
-               addPart(referenceBaseDetailSection);
+               addPart(referenceDetailSection);
                addPart(typeDesignationSection);
                addPart(nameRelationshipSection);
        }
        
        private void createReferenceSections(RootElement parent) {
                destroySections();
-               AbstractFormSection referenceBaseDetailSection = 
+               
+               ReferenceDetailSection referenceDetailSection = (ReferenceDetailSection)
                        formFactory.createCdmDetailSection(DetailType.REFERENCEBASE, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
-               addPart(referenceBaseDetailSection);
+               
+               addPart(referenceDetailSection);
        }
        
        private void createTeamOrPersonBaseDetailSection(RootElement parent) {
                destroySections();
-               AbstractFormSection teamOrPersonBaseDetailSection = 
+               TeamOrPersonBaseDetailSection teamOrPersonBaseDetailSection = (TeamOrPersonBaseDetailSection)
                        formFactory.createCdmDetailSection(DetailType.TEAMORPERSONBASE, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
                
                addPart(teamOrPersonBaseDetailSection);
@@ -298,7 +333,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
        
        private void createTeamDetailSection(RootElement parent){
                destroySections();
-               AbstractFormSection teamDetailSection = 
+               TeamDetailSection teamDetailSection = (TeamDetailSection)
                        formFactory.createCdmDetailSection(DetailType.TEAM, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
                        
                addPart(teamDetailSection);
@@ -307,7 +342,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
        private void createPersonDetailSection(RootElement parent) {
                destroySections();
-               AbstractFormSection personDetailSection = 
+               PersonDetailSection personDetailSection = (PersonDetailSection)
                        formFactory.createCdmDetailSection(DetailType.PERSON, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
                addPart(personDetailSection);
        }
@@ -315,17 +350,17 @@ public class DetailsViewer extends AbstractCdmDataViewer {
        private void createDescriptionElementSection(RootElement parent) {
                destroySections();
                
-               AbstractFormSection descriptionElementDetailSection =
+               DescriptionElementDetailSection descriptionElementDetailSection = (DescriptionElementDetailSection)
                        formFactory.createCdmDetailSection(DetailType.DESCRIPTIONELEMENT, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
 
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection descriptionElementSourceSection = 
+               DescriptionElementSourceSection descriptionElementSourceSection = (DescriptionElementSourceSection)
                        formFactory.createEntityDetailSection(EntityDetailType.DESCRIPTIONELEMENTSOURCE, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection descriptionElementMediaSection = 
+               DescriptionElementMediaSection descriptionElementMediaSection = (DescriptionElementMediaSection)
                        formFactory.createEntityDetailSection(EntityDetailType.DESCRIPTIONELEMENTMEDIA, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
@@ -337,27 +372,27 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
        private void createDescriptionSection(RootElement parent) {
                destroySections();
-               AbstractFormSection descriptionDetailSection = 
+               DescriptionDetailSection descriptionDetailSection = (DescriptionDetailSection)
                        formFactory.createCdmDetailSection(DetailType.DESCRIPTION, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection naturalLanguageSection =
+               NaturalLanguageSection naturalLanguageSection = (NaturalLanguageSection)
                        formFactory.createCdmDetailSection(DetailType.NATURAL_LANGUAGE, getConversationHolder(), parent, this,Section.TWISTIE | Section.EXPANDED);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection describedSpecimenSection =
+               DescribedSpecimenSection describedSpecimenSection = (DescribedSpecimenSection)
                        formFactory.createEntityDetailSection(EntityDetailType.DESCRIBED_SPECIMEN, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection descriptionSourceSection =
+               DescriptionSourceSection descriptionSourceSection = (DescriptionSourceSection)
                        formFactory.createEntityDetailSection(EntityDetailType.DESCRIPTIONSOURCE, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection scopeSection = 
+               ScopeSection scopeSection = (ScopeSection) 
                        formFactory.createEntityDetailSection(EntityDetailType.SCOPE, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
@@ -372,7 +407,8 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
        private void createMediaElementSection(RootElement parent) {
                destroySections();
-               AbstractFormSection mediaDetailSection = formFactory.createCdmDetailSection(DetailType.MEDIA, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED); 
+               MediaDetailsSection mediaDetailSection = (MediaDetailsSection) 
+                       formFactory.createCdmDetailSection(DetailType.MEDIA, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED); 
                
                addPart(mediaDetailSection);
        }
@@ -380,15 +416,17 @@ public class DetailsViewer extends AbstractCdmDataViewer {
        private void createDerivedUnitBaseElementSection(RootElement parent){
                destroySections();
                
-               AbstractFormSection derivedUnitBaseElementSection = formFactory.createCdmDetailSection(DetailType.DERIVED_UNIT_FACADE, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+               DerivedUnitFacadeDetailSection derivedUnitFacadeDetailSection = (DerivedUnitFacadeDetailSection) 
+                       formFactory.createCdmDetailSection(DetailType.DERIVED_UNIT_FACADE, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
                
-               addPart(derivedUnitBaseElementSection);
+               addPart(derivedUnitFacadeDetailSection);
        }
        
        private void createFieldObservationElementSection(RootElement parent){
                destroySections();
                
-               AbstractFormSection fieldObservationElementSection = formFactory.createCdmDetailSection(DetailType.FIELD_OBSERVATION, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+               FieldObservationDetailSection fieldObservationElementSection = (FieldObservationDetailSection) 
+                       formFactory.createCdmDetailSection(DetailType.FIELD_OBSERVATION, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
                
                addPart(fieldObservationElementSection);
        }
@@ -399,8 +437,41 @@ public class DetailsViewer extends AbstractCdmDataViewer {
        private void createFeatureDistributionSection(RootElement parent) {
                destroySections();
                
-               AbstractFormSection featureDistributionSection =formFactory.createCdmDetailSection(DetailType.FEATURE_DISTRIBUTION, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
-               
+               FeatureDistributionDetailSection featureDistributionSection = (FeatureDistributionDetailSection) 
+                       formFactory.createCdmDetailSection(DetailType.FEATURE_DISTRIBUTION, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+                               
                addPart(featureDistributionSection);
        }
+       
+
+
+       private void createPolytomousKeySection(RootElement parent) {
+               destroySections();
+               
+               PolytomousKeyDetailSection polytomousKeyDetailSection = (PolytomousKeyDetailSection)
+                       formFactory.createCdmDetailSection(DetailType.POLYTOMOUS_KEY, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               
+               GeographicalScopeDetailSection geographicalScopeDetailSection = (GeographicalScopeDetailSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.GEOGRAPHICAL_SCOPE, getConversationHolder(), parent, Section.TWISTIE);
+               
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               
+               ScopeRestrictionSection scopeRestrictionSection = (ScopeRestrictionSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.SCOPE_RESTRICTION, getConversationHolder(), parent, Section.TWISTIE);
+               
+               addPart(polytomousKeyDetailSection);
+               addPart(geographicalScopeDetailSection);
+               addPart(scopeRestrictionSection);
+       }
+
+       private void createPolytomousKeyNodeSection(RootElement parent) {
+               destroySections();
+               
+               PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection = (PolytomousKeyNodeDetailSection)
+               formFactory.createCdmDetailSection(DetailType.POLYTOMOUS_KEY_NODE, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+       
+               addPart(polytomousKeyNodeDetailSection);
+       }
 }
index 41908eabbda2d9c048b11f886c94058922b45dce..ba294b8ae55cac3adb2528f14588aa302348b33d 100644 (file)
@@ -3,7 +3,6 @@
  */
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -17,9 +16,9 @@ import org.eclipse.ui.handlers.HandlerUtil;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateTaxonDescriptionOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>AddImageGalleryHandler class.</p>
@@ -28,7 +27,6 @@ import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
  * @version $Id: $
  */
 public class AddImageGalleryHandler extends AbstractHandler {
-       private static final Logger logger = Logger.getLogger(AddImageGalleryHandler.class);
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -53,7 +51,7 @@ public class AddImageGalleryHandler extends AbstractHandler {
                                                EditorUtil.getUndoContext(), taxon, postOperationEnabled, true);
                                EditorUtil.executeOperation(operation);
                        } catch (NotDefinedException e) {
-                               logger.warn("Command name not set");
+                               EditorUtil.warn(getClass(), "Command name not set.");
                        }
                } 
                return null;
index 6297f4821bf8a97fe810aecd9c6a375e5897b274..269b475f048778ac54628dc0a0e3e5e33686de66 100644 (file)
@@ -3,7 +3,6 @@
  */
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -21,9 +20,9 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.AddMediaToImageGalleryOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.editor.view.media.operation.AddMediaToImageGalleryOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>CreateMediaHandler class.</p>
@@ -32,8 +31,6 @@ import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
  * @version $Id: $
  */
 public class CreateMediaHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(CreateMediaHandler.class);
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -72,7 +69,7 @@ public class CreateMediaHandler extends AbstractHandler {
                                                        EditorUtil.getUndoContext(), taxon, description, postOperationEnabled);
                                        EditorUtil.executeOperation(operation);
                                } catch (NotDefinedException e) {
-                                       logger.warn("Command name not set");
+                                       EditorUtil.warn(getClass(), "Command name not set.");
                                }
                        }
                }
index cd6ce3f4fb9a259a6c3ff19930227413f177a223..7a183518dcdd4e0361b5385a7093bebe6a37ae8b 100644 (file)
@@ -3,7 +3,6 @@
  */
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -22,9 +21,9 @@ import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operations.RemoveImageFromDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.editor.view.media.operation.RemoveImageFromDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>DeleteMediaHandler class.</p>
@@ -33,8 +32,6 @@ import eu.etaxonomy.taxeditor.operations.RemoveImageFromDescriptionElementOperat
  * @version $Id: $
  */
 public class DeleteMediaHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(DeleteMediaHandler.class);
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -73,7 +70,7 @@ public class DeleteMediaHandler extends AbstractHandler {
                                                        EditorUtil.getUndoContext(), taxon, image, element, postOperationEnabled);
                                        EditorUtil.executeOperation(operation);
                                } catch (NotDefinedException e) {
-                                       logger.warn("Command name not set");
+                                       EditorUtil.warn(getClass(), "Command name not set.");
                                }
                        }
                }
index 072bc739927fb2988c6a88179cdebfa4b9662df8..67726fdf57e0767bd040d42f60451b848b61d4ef 100644 (file)
@@ -8,7 +8,6 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -27,10 +26,9 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.handler.CreateDescriptionElementHandler;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operations.MoveMediaInListOperation;
+import eu.etaxonomy.taxeditor.editor.view.media.operation.MoveMediaInListOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>MoveImageDownInListHandler class.</p>
@@ -40,8 +38,6 @@ import eu.etaxonomy.taxeditor.operations.MoveMediaInListOperation;
  * @version 1.0
  */
 public class MoveImageDownInListHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(CreateDescriptionElementHandler.class);
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -79,7 +75,7 @@ public class MoveImageDownInListHandler extends AbstractHandler {
                                                        EditorUtil.getUndoContext(), taxon, description, media, MoveMediaInListOperation.DOWN, postOperationEnabled);
                                        EditorUtil.executeOperation(operation);
                                } catch (NotDefinedException e) {
-                                       logger.warn("Command name not set");
+                                       EditorUtil.warn(getClass(), "Command name not set.");
                                }
                        }
                } 
index b808ffe0a33316641f6410893eb01abf6910236f..2550661c5feee6f1e9b5ced0a0a4bc06d1d69fde 100644 (file)
@@ -8,12 +8,10 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 package eu.etaxonomy.taxeditor.editor.view.media.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.common.NotDefinedException;
-import org.eclipse.core.commands.operations.IUndoableOperation;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.TreePath;
 import org.eclipse.jface.viewers.TreeSelection;
@@ -28,10 +26,9 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.handler.CreateDescriptionElementHandler;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operations.MoveMediaInListOperation;
+import eu.etaxonomy.taxeditor.editor.view.media.operation.MoveMediaInListOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>MoveImageUpInListHandler class.</p>
@@ -41,8 +38,6 @@ import eu.etaxonomy.taxeditor.operations.MoveMediaInListOperation;
  * @version 1.0
  */
 public class MoveImageUpInListHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(CreateDescriptionElementHandler.class);
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -79,7 +74,7 @@ public class MoveImageUpInListHandler extends AbstractHandler {
                                                        EditorUtil.getUndoContext(), taxon, element, media, MoveMediaInListOperation.UP, postOperationEnabled);
                                        EditorUtil.executeOperation(operation);
                                } catch (NotDefinedException e) {
-                                       logger.warn("Command name not set");
+                                       EditorUtil.warn(getClass(), "Command name not set.");
                                }
                        }
                } 
similarity index 92%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AddMediaToImageGalleryOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/AddMediaToImageGalleryOperation.java
index e3811399b3828016a562b27d07a055b737dbae4d..8c11b58396b93029b8cdd31907fb55c7b04c8cb9 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.media.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import eu.etaxonomy.cdm.api.utility.ImagesUtility;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 /**
  * <p>AddMediaToImageGalleryOperation class.</p>
  *
@@ -37,7 +39,7 @@ public class AddMediaToImageGalleryOperation extends AbstractPostOperation {
         *
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param label a {@link java.lang.String} object.
         * @param description a {@link eu.etaxonomy.cdm.model.description.DescriptionBase} object.
         */
similarity index 93%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateImageOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/CreateImageOperation.java
index b6be214ac482cf4dd444d187bd379412b74a0bff..e9a15814b4602e368040639ed5b732f36c52d936 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.media.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -20,6 +20,8 @@ import eu.etaxonomy.cdm.api.utility.ImagesUtility;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>CreateImageOperation class.</p>
@@ -42,7 +44,7 @@ public class CreateImageOperation extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param description a {@link eu.etaxonomy.cdm.model.description.DescriptionBase} object.
         * @param imageFile a {@link eu.etaxonomy.cdm.model.media.ImageFile} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public CreateImageOperation(String label, IUndoContext undoContext,
                        Taxon taxon, DescriptionBase<?> description, ImageFile imageFile, IPostOperationEnabled postOperationEnabled) {
@@ -58,7 +60,7 @@ public class CreateImageOperation extends AbstractPostOperation {
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param description a {@link eu.etaxonomy.cdm.model.description.DescriptionBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public CreateImageOperation(String label, IUndoContext undoContext,
                        Taxon taxon, DescriptionBase<?> description, IPostOperationEnabled postOperationEnabled) {
similarity index 90%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMediaOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/DeleteMediaOperation.java
index 21eb8b98d984a159fee9f42616913a56f8f3cab9..6e67c52c70612c9b6a00812e1a4243881edf0665 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.media.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.api.utility.ImagesUtility;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>DeleteMediaOperation class.</p>
@@ -27,6 +29,7 @@ import eu.etaxonomy.cdm.model.media.Media;
  * @created 31.03.2009
  * @version 1.0
  */
+@Deprecated // I don't think this is really used anymore
 public class DeleteMediaOperation extends AbstractPostOperation {
        
        private Media media;
@@ -40,7 +43,7 @@ public class DeleteMediaOperation extends AbstractPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param description a {@link eu.etaxonomy.cdm.model.description.DescriptionBase} object.
         * @param media a {@link eu.etaxonomy.cdm.model.media.Media} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteMediaOperation(String label, IUndoContext undoContext,
                        DescriptionBase<?> description, Media media, IPostOperationEnabled postOperationEnabled) {
similarity index 94%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveMediaInListOperation.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/MoveMediaInListOperation.java
index 9b77bdd3f3c11603558237fb389edda7d5eb4a9f..8d98f3b5e5a80887e1f7588dfec386d6ebdfb1a7 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.media.operation;
 
 import java.util.Collections;
 import java.util.List;
@@ -23,6 +23,8 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
@@ -52,7 +54,7 @@ public class MoveMediaInListOperation extends AbstractPostOperation {
         * @param description a {@link eu.etaxonomy.cdm.model.description.DescriptionBase} object.
         * @param media a {@link eu.etaxonomy.cdm.model.media.Media} object.
         * @param direction a int.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public MoveMediaInListOperation(String label, IUndoContext undoContext,
                        Taxon taxon, DescriptionBase description, Media media,
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.editor.view.media.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -19,6 +19,8 @@ import eu.etaxonomy.cdm.api.utility.ImagesUtility;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>RemoveImageFromDescriptionElementOperation class.</p>
@@ -39,7 +41,7 @@ public class RemoveImageFromDescriptionElementOperation extends AbstractPostOper
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param element a {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param label a {@link java.lang.String} object.
         * @param image a {@link eu.etaxonomy.cdm.model.media.ImageFile} object.
         */
index aef59c1185fbe0a48bb7097ac2a393565384f299..f7caf30d8f25e5c5d25163cfb45415c2966b4c66 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.view.supplementaldata;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.Viewer;
@@ -32,8 +31,6 @@ import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
  * @version 1.0
  */
 public class SupplementalDataViewPart extends AbstractCdmEditorViewPart {
-       private static final Logger logger = Logger
-                       .getLogger(SupplementalDataViewPart.class);
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.supp"{trunked}</code> */
        public static final String ID = "eu.etaxonomy.taxeditor.editor.view.supplementalData";
@@ -57,7 +54,7 @@ public class SupplementalDataViewPart extends AbstractCdmEditorViewPart {
                        return;
                }
                
-               if((part instanceof EditorPart) || (part instanceof AbstractCdmViewPart)) {
+               if(((part instanceof EditorPart) || (part instanceof AbstractCdmViewPart)) && selection instanceof IStructuredSelection) {
                        if(((IStructuredSelection) selection).size() != 1){
                                showEmptyPage();
                                return;
index 779043b56ea0025288aa4b6076dffc618c21745c..3e0d10d8be2674cf18c35fe6a880366606b8bcd6 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.view.supplementaldata;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -26,12 +25,18 @@ import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
 import eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer;
 import eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer;
 import eu.etaxonomy.taxeditor.editor.view.detail.DetailsViewer;
-import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
-import eu.etaxonomy.taxeditor.forms.RootElement;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.EntityDetailType;
+import eu.etaxonomy.taxeditor.forms.RootElement;
 import eu.etaxonomy.taxeditor.model.AbstractCdmViewPart;
+import eu.etaxonomy.taxeditor.section.supplemental.AnnotationSection;
+import eu.etaxonomy.taxeditor.section.supplemental.CreditSection;
+import eu.etaxonomy.taxeditor.section.supplemental.ExtensionSection;
 import eu.etaxonomy.taxeditor.section.supplemental.HeadlineSection;
+import eu.etaxonomy.taxeditor.section.supplemental.MarkerSection;
+import eu.etaxonomy.taxeditor.section.supplemental.MediaSection;
+import eu.etaxonomy.taxeditor.section.supplemental.RightsSection;
+import eu.etaxonomy.taxeditor.section.supplemental.SourceSection;
 import eu.etaxonomy.taxeditor.section.supplemental.VersionSection;
 
 /**
@@ -42,8 +47,6 @@ import eu.etaxonomy.taxeditor.section.supplemental.VersionSection;
  * @version 1.0
  */
 public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISelectionChangedListener {
-       private static final Logger logger = Logger
-                       .getLogger(SupplementalDataViewer.class);
 
        private enum VIEW_PART{
                VersionableEntity, 
@@ -54,8 +57,6 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe
        }
        
        private VIEW_PART currentViewPart;
-       
-       private DetailsViewer detailsViewer;
 
        
        /**
@@ -98,7 +99,7 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe
                Object input;
                
                if(getInput() instanceof AbstractGroupedContainer){
-                       input = ((AbstractGroupedContainer) getInput()).getData();
+                       input = ((AbstractGroupedContainer<?>) getInput()).getData();
                }else{
                        input = getInput();
                }
@@ -142,12 +143,12 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe
        
        private void createAnnotationSections(RootElement parent){
                createHeadlineSection(parent);
-               AbstractFormSection annotationSection = 
+               AnnotationSection annotationSection = (AnnotationSection) 
                        formFactory.createEntityDetailSection(EntityDetailType.ANNOTATION, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection markerSection = 
+               MarkerSection markerSection = (MarkerSection)
                        formFactory.createEntityDetailSection(EntityDetailType.MARKER, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
@@ -162,19 +163,23 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe
 
        private void createIdentifiableSections(RootElement parent){
                createAnnotationSections(parent);               
-               AbstractFormSection creditSection = formFactory.createEntityDetailSection(EntityDetailType.CREDIT, getConversationHolder(), parent, Section.TWISTIE);
+               CreditSection creditSection = (CreditSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.CREDIT, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection extensionSection = formFactory.createEntityDetailSection(EntityDetailType.EXTENSION, getConversationHolder(), parent, Section.TWISTIE);
+               ExtensionSection extensionSection = (ExtensionSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.EXTENSION, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection rightsSection = formFactory.createEntityDetailSection(EntityDetailType.RIGHTS, getConversationHolder(), parent, Section.TWISTIE);
+               RightsSection rightsSection = (RightsSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.RIGHTS, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
-               AbstractFormSection sourceSection = formFactory.createEntityDetailSection(EntityDetailType.SOURCE, getConversationHolder(), parent, Section.TWISTIE);
+               SourceSection sourceSection = (SourceSection)
+                       formFactory.createEntityDetailSection(EntityDetailType.SOURCE, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
@@ -190,7 +195,8 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe
        
        private void createIdentifiableMediaSections(RootElement parent){
                createIdentifiableSections(parent);
-               AbstractFormSection mediaSection = formFactory.createEntityDetailSection(EntityDetailType.MEDIA, getConversationHolder(), parent, Section.TWISTIE);
+               MediaSection mediaSection = (MediaSection) 
+                       formFactory.createEntityDetailSection(EntityDetailType.MEDIA, getConversationHolder(), parent, Section.TWISTIE);
                
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                
@@ -213,8 +219,6 @@ public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISe
        /** {@inheritDoc} */
        public void selectionChanged(SelectionChangedEvent event) {
                if(event.getSource() instanceof DetailsViewer){
-                       detailsViewer = (DetailsViewer) event.getSource();
-                       
                        if(event.getSelection() == CdmFormFactory.EMPTY_SELECTION){
                                setInput(null);
                                currentViewPart = VIEW_PART.EMPTY;
index b237e25e52f9a4b8af8e5760a8a9fdfe76d9d92e..9a179b07256b47f87e461631ce33f7240ae87cdd 100644 (file)
 package eu.etaxonomy.taxeditor.forms;
 
 import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
index c9886afaf96df96af59a520b7e35a5c115ff8fd0..b5fce9ccafeabe660cfd139ac4144278e35190e1 100644 (file)
@@ -7,7 +7,6 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -153,7 +152,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
         *
         * @return a {@link eu.etaxonomy.taxeditor.forms.AbstractFormSection} object.
         */
-       public AbstractFormSection getSection(){
+       public AbstractFormSection<ENTITY> getSection(){
                return this;
        }       
        
@@ -244,7 +243,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
 
        /** {@inheritDoc} */
        public void selectionChanged(SelectionChangedEvent event) {
-               if(event.getSelection() == formFactory.EMPTY_SELECTION){
+               if(event.getSelection() == CdmFormFactory.EMPTY_SELECTION){
                        return;
                }
                
index 09c2ee3e60ddcc5ea24186827ac4d11582cff28c..322133b0a02341d20f294009ce0ea59f25d2021e 100644 (file)
@@ -5,13 +5,11 @@ package eu.etaxonomy.taxeditor.forms;
 
 import java.net.URI;
 
-import org.apache.log4j.Logger;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.events.ControlEvent;
 import org.eclipse.swt.events.ControlListener;
 import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
 /**
@@ -22,8 +20,6 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
  */
 public class BrowserElement extends AbstractCdmFormElement implements ControlListener{
 
-       private static final Logger logger = Logger.getLogger(BrowserElement.class);
-       
        private Browser browser;
        
        private String imageUriString;
index 4b392c5d1448c117cdf931f10750e0687de5d1aa..1ac46d65fc2096d96febca5ae8de1930c4755bd0 100644 (file)
@@ -52,6 +52,7 @@ import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.common.Extension;
 import eu.etaxonomy.cdm.model.common.ExtensionType;
 import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IVersionableEntity;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.Language;
@@ -67,8 +68,11 @@ import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
+import eu.etaxonomy.cdm.model.description.KeyStatement;
 import eu.etaxonomy.cdm.model.description.MeasurementUnit;
 import eu.etaxonomy.cdm.model.description.Modifier;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
 import eu.etaxonomy.cdm.model.description.Scope;
@@ -118,6 +122,7 @@ import eu.etaxonomy.taxeditor.forms.selection.AgentSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.ClassificationSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.CollectionSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.DerivedUnitBaseSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.FeatureSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.FeatureTreeSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.FieldObservationSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.InstitutionSelectionElement;
@@ -125,6 +130,8 @@ import eu.etaxonomy.taxeditor.forms.selection.NameSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.NamedAreaSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.NomenclaturalAuthorTeamSelectionElement;
 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.TaxonBaseSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.TaxonNodeSelectionElement;
@@ -201,6 +208,12 @@ import eu.etaxonomy.taxeditor.section.description.detail.TaxonInteractionDetailE
 import eu.etaxonomy.taxeditor.section.description.detail.TextDataDetailElement;
 import eu.etaxonomy.taxeditor.section.feature.FeatureDistributionDetailElement;
 import eu.etaxonomy.taxeditor.section.feature.FeatureDistributionDetailSection;
+import eu.etaxonomy.taxeditor.section.key.GeographicalScopeDetailSection;
+import eu.etaxonomy.taxeditor.section.key.PolytomousKeyDetailElement;
+import eu.etaxonomy.taxeditor.section.key.PolytomousKeyDetailSection;
+import eu.etaxonomy.taxeditor.section.key.PolytomousKeyNodeDetailElement;
+import eu.etaxonomy.taxeditor.section.key.PolytomousKeyNodeDetailSection;
+import eu.etaxonomy.taxeditor.section.key.ScopeRestrictionSection;
 import eu.etaxonomy.taxeditor.section.name.AuthorshipDetailElement;
 import eu.etaxonomy.taxeditor.section.name.AuthorshipDetailSection;
 import eu.etaxonomy.taxeditor.section.name.NameDetailElement;
@@ -216,7 +229,6 @@ import eu.etaxonomy.taxeditor.section.name.ProtologueElement;
 import eu.etaxonomy.taxeditor.section.name.ProtologueSection;
 import eu.etaxonomy.taxeditor.section.name.SpecimenTypeDesignationElement;
 import eu.etaxonomy.taxeditor.section.name.TypeDesignationSection;
-import eu.etaxonomy.taxeditor.section.occurrence.CollectingAreasDetailElement;
 import eu.etaxonomy.taxeditor.section.occurrence.CollectingAreasDetailSection;
 import eu.etaxonomy.taxeditor.section.occurrence.CollectionDetailElement;
 import eu.etaxonomy.taxeditor.section.occurrence.DerivedUnitBaseDetailElement;
@@ -229,6 +241,7 @@ import eu.etaxonomy.taxeditor.section.occurrence.FieldObservationDetailElement;
 import eu.etaxonomy.taxeditor.section.occurrence.FieldObservationDetailSection;
 import eu.etaxonomy.taxeditor.section.occurrence.GatheringEventDetailElement;
 import eu.etaxonomy.taxeditor.section.occurrence.GatheringEventDetailSection;
+import eu.etaxonomy.taxeditor.section.occurrence.NamedAreaDetailElement;
 import eu.etaxonomy.taxeditor.section.occurrence.SourceCollectionDetailSection;
 import eu.etaxonomy.taxeditor.section.occurrence.SpecimenCollectionDetailElement;
 import eu.etaxonomy.taxeditor.section.occurrence.SpecimenCollectionDetailSection;
@@ -576,6 +589,14 @@ public class CdmFormFactory extends FormToolkit{
                return element;
        }
        
+       public KeyStatementElement createKeyStatementElement(ICdmFormElement parentElement, String labelString,
+                       KeyStatement keyStatement, int textHeight, int style){
+               KeyStatementElement element = new KeyStatementElement(this, parentElement, labelString, keyStatement, textHeight, style);
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+       
        
        /**
         * <p>createTextWithLabelElement</p>
@@ -905,7 +926,10 @@ public class CdmFormFactory extends FormToolkit{
                FEATURE_TREE,
                CLASSIFICATION,
                TAXON_NODE,
-               COLLECTION
+               COLLECTION, 
+               FEATURE, 
+               POLYTOMOUS_KEY, 
+               POLYTOMOUS_KEY_NODE
        }       
                
        /**
@@ -1233,7 +1257,8 @@ public class CdmFormFactory extends FormToolkit{
                FEATURE_DISTRIBUTION,
                CLASSIFICATION,
                TAXON_NODE, 
-               COLLECTION
+               COLLECTION, 
+               POLYTOMOUS_KEY, POLYTOMOUS_KEY_NODE
        }
        
        /**
@@ -1313,7 +1338,18 @@ public class CdmFormFactory extends FormToolkit{
                case TAXON_NODE:
                        section = new TaxonNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
                        break;
+               case POLYTOMOUS_KEY:
+                       section = new PolytomousKeyDetailSection(this, conversation, parentElement, selectionProvider, style);
+                       break;
+               case POLYTOMOUS_KEY_NODE:
+                       section = new PolytomousKeyNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+                       break;
+               }
+               
+               if(section == null){
+                       throw new RuntimeException("You tried to create a cdm detail section that is not implemented yet.");
                }
+               
                parentElement.addElement(section);
                adapt(section);
                return section;
@@ -1388,6 +1424,12 @@ public class CdmFormFactory extends FormToolkit{
                case COLLECTION:
                        element = new CollectionDetailElement(this, parentElement);
                        break;
+               case POLYTOMOUS_KEY:
+                       element = new PolytomousKeyDetailElement(this, parentElement);
+                       break;
+               case POLYTOMOUS_KEY_NODE:
+                       element = new PolytomousKeyNodeDetailElement(this, parentElement);
+                       break;
                }
                
                if(element == null){
@@ -1432,7 +1474,9 @@ public class CdmFormFactory extends FormToolkit{
                COLLECTING_AREA, 
                DETERMINATION_EVENT, 
                SPECIMEN_COLLECTION, 
-               IDENTIFIABLE_SOURCE_COLLECTION
+               IDENTIFIABLE_SOURCE_COLLECTION, 
+               GEOGRAPHICAL_SCOPE, 
+               SCOPE_RESTRICTION
        }
        
        /**
@@ -1529,7 +1573,12 @@ public class CdmFormFactory extends FormToolkit{
                case IDENTIFIABLE_SOURCE_COLLECTION:
                        section = new SourceCollectionDetailSection(this, conversation, parentElement, style);
                        break;
-                       
+               case GEOGRAPHICAL_SCOPE:
+                       section = new GeographicalScopeDetailSection(this, conversation, parentElement, style);
+                       break;
+               case SCOPE_RESTRICTION:
+                       section = new ScopeRestrictionSection(this, conversation, parentElement, style);
+                       break;
                }
                parentElement.addElement(section);
                adapt(section);
@@ -1615,7 +1664,7 @@ public class CdmFormFactory extends FormToolkit{
                        element = new DerivedUnitElement(this, parentElement, (DerivedUnit) entity, removeListener,  style);
                }
                else if(entity instanceof NamedArea){
-                       element = new CollectingAreasDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
+                       element = new NamedAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
                }
                else if(entity instanceof DeterminationEvent){
                        element = new DeterminationEventDetailElement(this, parentElement, (DeterminationEvent) entity, removeListener, style);
@@ -1658,7 +1707,7 @@ public class CdmFormFactory extends FormToolkit{
         * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @return a {@link eu.etaxonomy.taxeditor.forms.selection.AbstractSelectionElement} object.
         */
-       public AbstractSelectionElement createSelectionElement(SelectionType selectionType,  ConversationHolder conversation, ICdmFormElement parentElement, String labelString, IAnnotatableEntity selection, int style){
+       public AbstractSelectionElement createSelectionElement(SelectionType selectionType,  ConversationHolder conversation, ICdmFormElement parentElement, String labelString, ICdmBase selection, int style){
                AbstractSelectionElement element = null;
                
                IAnnotatableEntity entity = (IAnnotatableEntity) HibernateProxyHelper.deproxy(selection);
@@ -1706,6 +1755,15 @@ public class CdmFormFactory extends FormToolkit{
                case COLLECTION:
                        element = new CollectionSelectionElement(this, conversation, parentElement, labelString, (Collection) entity, style);
                        break;
+               case FEATURE:
+                       element = new FeatureSelectionElement(this, conversation, parentElement, labelString, (Feature) entity, style);
+                       break;
+               case POLYTOMOUS_KEY:
+                       element = new PolytomousKeySelectionElement(this, conversation, parentElement, labelString, (PolytomousKey) entity, style);
+                       break;
+               case POLYTOMOUS_KEY_NODE:
+                       element = new PolytomousKeyNodeSelectionElement(this, conversation, parentElement, labelString, (PolytomousKeyNode) entity, style);
+                       break;
                default:
                        new RuntimeException("There is no selection composite for the desired selection type.");
                        break;
index d947b97aabb04bdcf95b87491588354cb3bae709..5806912a2d20f6c5d5687d81a98ab423479851e1 100644 (file)
 
 package eu.etaxonomy.taxeditor.forms;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
 
-import org.apache.http.HttpException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.SWTException;
 import org.eclipse.swt.events.ControlEvent;
 import org.eclipse.swt.events.ControlListener;
 import org.eclipse.swt.events.PaintEvent;
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/KeyStatementElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/KeyStatementElement.java
new file mode 100644 (file)
index 0000000..ecab42f
--- /dev/null
@@ -0,0 +1,52 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms;
+
+import eu.etaxonomy.cdm.model.description.KeyStatement;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 3, 2010
+ * @version 1.0
+ */
+public class KeyStatementElement extends MultilanguageTextElement {
+
+       private KeyStatement keyStatement;
+
+       /**
+        * @param formFactory
+        * @param formElement
+        */
+       public KeyStatementElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement, String labelString, KeyStatement keyStatement, int textHeight, int style) {
+               super(formFactory, formElement, labelString, null, textHeight, style);
+               this.keyStatement = keyStatement;
+               
+               if(keyStatement != null){
+                       setMultilanguageText(keyStatement.getLabel());
+               }
+       }
+
+       /**
+        * @param keyStatement the keyStatement to set
+        */
+       public void setKeyStatement(KeyStatement keyStatement) {
+               this.keyStatement = keyStatement;
+       }
+
+       /**
+        * @return the keyStatement
+        */
+       public KeyStatement getKeyStatement() {
+               return keyStatement;
+       }
+
+}
index 6c29bf34704e577b0cc7b18d809d4bba54478e85..fbf5be397e426d8a41b871f09bb845569d76e0f0 100644 (file)
@@ -4,7 +4,6 @@ package eu.etaxonomy.taxeditor.forms;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
@@ -13,9 +12,7 @@ import org.eclipse.jface.viewers.TableViewerColumn;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
@@ -27,11 +24,6 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
  */
 public class KeyValueViewerElement extends AbstractCdmFormElement {
 
-       private static final Logger logger = Logger
-                       .getLogger(KeyValueViewerElement.class);
-       
-       private Map<? extends Object, ? extends Object> map;
-
        private TableViewer tableViewer;
 
        private Label label;
@@ -104,7 +96,6 @@ public class KeyValueViewerElement extends AbstractCdmFormElement {
         * @param map a {@link java.util.Map} object.
         */
        public void setInput(Map<? extends Object, ? extends Object> map) {
-               this.map = map;
                tableViewer.setInput(map);
                tableViewer.refresh();
        }
index 18bb4b673a0af71a221a18256d11f5105249d9ce..97947bb1be8da1ccd45806c77296c84e1a2aa039 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.forms;
 
-import org.apache.log4j.Logger;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Label;
 
@@ -23,7 +22,6 @@ import org.eclipse.swt.widgets.Label;
  */
 public class LabelElement extends AbstractCdmFormElement {
 
-       private static final Logger logger = Logger.getLogger(LabelElement.class);
        private Label label;
 
        /**
index 2dba4a9dd80fea1003b96d7db7fd1d4d927fc5e1..6b4a24a1285b7bcab02841a795137498117c8808 100644 (file)
@@ -31,6 +31,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.translation.TranslationWizard;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.TermComboType;
 import eu.etaxonomy.taxeditor.forms.term.EmptyComboElement;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -93,20 +94,21 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                                
                formFactory.addPropertyChangeListener(this);
                
-               element_languageString = formFactory.createLanguageStringWithLabelElement(formElement, "", null, textHeight, style);
-                               
-               combo_language = (EmptyComboElement<Language>) formFactory.createTermComboElement(TermComboType.EMPTY, formElement, "", null, style);
-               combo_language.addSelectionListener(this);
-               combo_language.setEnabled(true);
-               
-               addControl(formFactory.createLabel(getLayoutComposite(), ""));
-               
-               button = formFactory.createButton(getLayoutComposite(), "Open In Translation Editor", SWT.PUSH);
-               addControl(button);
-               button.setLayoutData(CdmFormFactory.RIGHT());
-               button.addSelectionListener(new OpenTranslationWizard(multilanguageText));
-               button.setEnabled(true);
-               
+               element_languageString = formFactory.createLanguageStringWithLabelElement(formElement, labelString, null, textHeight, style);
+                                               
+               if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+                       combo_language = (EmptyComboElement<Language>) formFactory
+                                       .createTermComboElement(TermComboType.EMPTY, formElement,
+                                                       "", null, style);
+                       combo_language.addSelectionListener(this);
+                       addControl(formFactory.createLabel(getLayoutComposite(), ""));
+                       button = formFactory.createButton(getLayoutComposite(),
+                                       "Open In Translation Editor", SWT.PUSH);
+                       addControl(button);
+                       button.setLayoutData(CdmFormFactory.RIGHT());
+                       button.addSelectionListener(new OpenTranslationWizard(
+                                       multilanguageText));
+               }
                setMultilanguageText(multilanguageText);
        }
        
@@ -157,12 +159,15 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
        public void setMultilanguageText(Map<Language, LanguageString> multilanguageText) {
                this.multilanguageText = multilanguageText;
                
-               if(multilanguageText.isEmpty()){
-                       multilanguageText.put(CdmStore.getDefaultLanguage(), LanguageString.NewInstance("", CdmStore.getDefaultLanguage()));
-               }
-               combo_language.setTerms(getLanguages());
-               
-               updateControls();
+               if(multilanguageText != null){
+                       if(multilanguageText.isEmpty()){
+                               multilanguageText.put(CdmStore.getDefaultLanguage(), LanguageString.NewInstance("", CdmStore.getDefaultLanguage()));
+                       }
+                       if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+                               combo_language.setTerms(getLanguages());
+                       }
+                       updateControls();
+               }               
        }
 
        /**
@@ -172,7 +177,9 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(getMultilanguageText(), Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()}));
                        
                element_languageString.setLanguageString(preferredLanguageString);
-               combo_language.setSelection(preferredLanguageString.getLanguage());
+               if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+                       combo_language.setSelection(preferredLanguageString.getLanguage());
+               }
        }
 
        /**
index b372fefef0303153bc15189549a546bc0d45fed1..00efff8380a38e93e69f2e8f042bc0acff06de4a 100644 (file)
@@ -13,7 +13,6 @@ package eu.etaxonomy.taxeditor.forms;
 import java.text.ParseException;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.model.location.Point;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -79,11 +78,8 @@ public class PointElement extends AbstractCdmFormElement implements IEntityEleme
                Object eventSource = event.getSource();
                if(eventSource == text_latitude){
                        try {
-                               Text textField = (Text) text_latitude.getMainControl();
-                               int caretPosition = textField.getCaretPosition(); 
                                point.setLatitudeByParsing(text_latitude.getText());
                                text_latitude.setText(point.getLatitudeSexagesimal().toString(false));
-//                             textField.set
                        } catch (ParseException e) {
                                EditorUtil.error(getClass(), e);
                        }
index f74622dbffbb6d17ca56558e2f98968e8ab9f66b..2d0cafefed2bd4c8597c24957f6afc4bb7d9a4cd 100644 (file)
@@ -10,7 +10,6 @@
 
 package eu.etaxonomy.taxeditor.forms;
 
-import org.apache.log4j.Logger;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
 
@@ -23,9 +22,6 @@ import org.eclipse.swt.widgets.Composite;
  */
 public class RootElement extends AbstractCdmFormElement {
 
-
-       private static final Logger logger = Logger.getLogger(RootElement.class);
-
        /**
         * <p>Constructor for RootElement.</p>
         *
index 89b6f4d5829c870f8e3c67f8327c46869bd88e86..e282db9bc6f374c2f11ae2402d04ae302f7b70b7 100644 (file)
@@ -13,7 +13,6 @@ package eu.etaxonomy.taxeditor.forms;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.ISelectionProvider;
@@ -26,6 +25,8 @@ import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Widget;
 
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+
 
 /**
  * <p>SelectionArbitrator class.</p>
@@ -35,8 +36,6 @@ import org.eclipse.swt.widgets.Widget;
  * @version 1.0
  */
 public class SelectionArbitrator implements SelectionListener, ISelectionChangedListener{
-       private static final Logger logger = Logger
-                       .getLogger(SelectionArbitrator.class);
        private IEntityElement entityElement;
 
        private Set<ISelectionProvider> selectionProviders = new HashSet<ISelectionProvider>();
@@ -143,8 +142,7 @@ public class SelectionArbitrator implements SelectionListener, ISelectionChanged
                try{
                entityElement.setSelected(false);
                }catch(SWTException e){
-                       logger.error("Widgets of element are disposed: " + entityElement);
-//                     throw new RuntimeException("Widgets of element are disposed: " + entityElement);
+                       EditorUtil.error(getClass(), "Widgets of element are disposed", e);
                }
                ISelection selection = event.getSelection();            
                if(selection != null && selection instanceof StructuredSelection){
index caecb6a442c6155304baebf842169825d4ce6b1a..bb27ee3bafcb6be19ff969d0dd03f9b4331be25b 100644 (file)
@@ -13,7 +13,6 @@ package eu.etaxonomy.taxeditor.forms;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
@@ -39,9 +38,6 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  */
 public class ToggleableTextElement extends AbstractCdmFormElement implements SelectionListener, ModifyListener, IEnableableFormElement {
 
-
-       private static final Logger logger = Logger
-                       .getLogger(ToggleableTextElement.class);
        private Text text_cache;
        private Button button_toggle;
        
index b5312011adf649c97331d0945b79e3e1cecb02bb..04b80b34e66269af0ad270ec0b399b60e798a8f8 100644 (file)
@@ -16,7 +16,6 @@ import org.eclipse.swt.widgets.Shell;
 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.common.IAnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -40,7 +39,7 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @version 1.0
  * @param <T>
  */
-public abstract class AbstractSelectionElement<T extends IAnnotatableEntity> extends AbstractCdmFormElement implements SelectionListener, IEnableableFormElement, ISelectableElement, IEntityElement<T>, ILabeledElement, IConversationEnabled{
+public abstract class AbstractSelectionElement<T> extends AbstractCdmFormElement implements SelectionListener, IEnableableFormElement, ISelectableElement, IEntityElement<T>, ILabeledElement, IConversationEnabled{
 
        protected T entity;
        
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/FeatureSelectionElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/FeatureSelectionElement.java
new file mode 100644 (file)
index 0000000..83fa0ab
--- /dev/null
@@ -0,0 +1,52 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.selection;
+
+import org.eclipse.swt.events.SelectionEvent;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 3, 2010
+ * @version 1.0
+ */
+public class FeatureSelectionElement extends AbstractSelectionElement<Feature> {
+
+       /**
+        * 
+        * @param formFactory
+        * @param conversation
+        * @param parentElement
+        * @param labelString
+        * @param entity
+        * @param style
+        */
+       public FeatureSelectionElement(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       String labelString, Feature entity, int style) {
+               super(formFactory, conversation, parentElement, labelString, entity,
+                               true, false, true, style);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+        */
+       @Override
+       public void widgetSelected(SelectionEvent e) {
+               // TODO Auto-generated method stub
+               
+       }
+
+}
index a4a948727c274b7242b1759388751d2bbeec7f0d..4454206f539979c55227846a53094bf074c0ea55 100644 (file)
@@ -60,6 +60,6 @@ public class NamedAreaSelectionElement extends AbstractSelectionElement<NamedAre
        /** {@inheritDoc} */
        @Override
        protected String getTitle() {
-               return (entity != null) ? entity.getRepresentation(CdmStore.getDefaultLanguage()).getLabel() : "";
+               return (entity != null) ? NamedArea.labelWithLevel(entity, CdmStore.getDefaultLanguage()) : "";
        }
 }
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PolytomousKeyNodeSelectionElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PolytomousKeyNodeSelectionElement.java
new file mode 100644 (file)
index 0000000..9e7fdcf
--- /dev/null
@@ -0,0 +1,52 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.selection;
+
+import org.eclipse.swt.events.SelectionEvent;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 3, 2010
+ * @version 1.0
+ */
+public class PolytomousKeyNodeSelectionElement extends AbstractSelectionElement<PolytomousKeyNode> {
+
+       /**
+        * 
+        * @param formFactory
+        * @param conversation
+        * @param parentElement
+        * @param labelString
+        * @param entity
+        * @param style
+        */
+       public PolytomousKeyNodeSelectionElement(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       String labelString, PolytomousKeyNode entity, int style) {
+               super(formFactory, conversation, parentElement, labelString, entity,
+                               false, false, true, style);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+        */
+       @Override
+       public void widgetSelected(SelectionEvent e) {
+               // TODO Auto-generated method stub
+               
+       }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PolytomousKeySelectionElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/PolytomousKeySelectionElement.java
new file mode 100644 (file)
index 0000000..935c74d
--- /dev/null
@@ -0,0 +1,54 @@
+// $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.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 3, 2010
+ * @version 1.0
+ */
+public class PolytomousKeySelectionElement extends AbstractSelectionElement<PolytomousKey> {
+
+       /**
+        * @param formFactory
+        * @param conversation
+        * @param parentElement
+        * @param labelString
+        * @param entity
+        * @param isEditable
+        * @param isSelectable
+        * @param isDeletable
+        * @param style
+        */
+       public PolytomousKeySelectionElement(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       String labelString, PolytomousKey entity, int style) {
+               super(formFactory, conversation, parentElement, labelString, entity,
+                               true, false, true, style);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+        */
+       @Override
+       public void widgetSelected(SelectionEvent e) {
+               // TODO Auto-generated method stub
+               
+       }
+
+}
index f94ba54bd8cabdfba095e213951643ff3c4c7580..039a9ef76dd07bf0e651623677d55b54e63e3c4f 100644 (file)
@@ -18,7 +18,6 @@ import org.eclipse.swt.widgets.Composite;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement;
@@ -36,7 +35,7 @@ import eu.etaxonomy.taxeditor.forms.ISelectable;
  * @created Feb 26, 2010
  * @version 1.0
  */
-public abstract class AbstractCdmDetailElement<T extends IAnnotatableEntity> extends
+public abstract class AbstractCdmDetailElement<T> extends
                AbstractCdmFormElement implements IEntityElement<T>, ISelectable, IEnableableFormElement, IConversationEnabled{
        
        private T entity;
index 72964c0acdf5b43ab09f1eb5e98c321a2f3583ce..4f9e342c1d14080e305f6ba697d188fb1e010ed3 100644 (file)
@@ -36,7 +36,7 @@ import eu.etaxonomy.taxeditor.forms.SelectionArbitrator;
  * @created Feb 26, 2010
  * @version 1.0
  */
-public abstract class AbstractCdmDetailSection<ENTITY extends IAnnotatableEntity> extends AbstractFormSection<ENTITY> implements IEnableableFormElement, IExpansionListener{
+public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSection<ENTITY> implements IEnableableFormElement, IExpansionListener{
        
        protected AbstractCdmDetailElement<ENTITY> detailElement;
        
index 7d3bb631e46e18fa74b37cf6f06f0f974c779547..ae32e447512c2e2669032c2f9f69a6fb7d21cb15 100644 (file)
@@ -21,10 +21,10 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.ChangeDescriptionElementType;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
 import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
-import eu.etaxonomy.taxeditor.operations.ChangeDescriptionElementType;
 import eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
index a5b793585dc8de38ad31e467aac61a2ac5fbb707..06ac9203be9deb8800197c8e222c6cde203c371f 100644 (file)
@@ -52,7 +52,7 @@ public class TextDataDetailElement extends AbstractDetailedDescriptionDetailElem
        @Override
        public void handleEvent(Object eventSource) {
                if(eventSource == multilanguageTextElement){
-                       getEntity().setMultilanguageText(multilanguageTextElement.getMultilanguageText());
+//                     getEntity().setMultiLanguageText(multilanguageTextElement.getMultilanguageText());
                }
        }
 }
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/GeographicalScopeDetailSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/GeographicalScopeDetailSection.java
new file mode 100644 (file)
index 0000000..dbc6a3e
--- /dev/null
@@ -0,0 +1,57 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.section.key;
+
+import java.util.Collection;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.description.IIdentificationKey;
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class GeographicalScopeDetailSection extends
+       AbstractEntityCollectionSection<IIdentificationKey, NamedArea> {
+
+       public GeographicalScopeDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
+               super(formFactory, conversation, parentElement, "Geographical Scope", style);
+       }
+
+       @Override
+       public Collection<NamedArea> getCollection(IIdentificationKey entity) {
+               return entity.getGeographicalScope();
+       }
+
+       @Override
+       public NamedArea createNewElement() {
+               return NamedArea.NewInstance();
+       }
+
+       @Override
+       public void addElement(NamedArea element) {
+               getEntity().addGeographicalScope(element);
+       }
+
+       @Override
+       public void removeElement(NamedArea element) {
+               getEntity().removeGeographicalScope(element);
+       }
+
+       @Override
+       public String getEmptyString() {
+               return "No geographical scopes yet.";
+       }
+
+       @Override
+       protected String getTooltipString() {
+               return "Add a geographical scope";
+       }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyDetailElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyDetailElement.java
new file mode 100644 (file)
index 0000000..63acdc3
--- /dev/null
@@ -0,0 +1,46 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.section.key;
+
+import org.eclipse.swt.SWT;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.forms.ToggleableTextElement;
+import eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyDetailElement extends AbstractCdmDetailElement<PolytomousKey> {
+
+       public PolytomousKeyDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement) {
+               super(formFactory, formElement);
+       }
+
+       private ToggleableTextElement text_title;
+       // TODO
+//     private section_taxonomicScope;
+       
+       
+
+       @Override
+       protected void createControls(ICdmFormElement formElement,
+                       PolytomousKey entity, int style) {
+               text_title = formFactory.createToggleableTextField(formElement, "Title Cache", entity.getTitleCache(), entity.isProtectedTitleCache(), SWT.NULL);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
+        */
+       @Override
+       public void handleEvent(Object eventSource) {
+               if(eventSource == text_title){
+                       getEntity().setTitleCache(text_title.getText());
+               }
+       }
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyDetailSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyDetailSection.java
new file mode 100644 (file)
index 0000000..ea51c3e
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.section.key;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyDetailSection extends AbstractCdmDetailSection<PolytomousKey> {
+
+       public PolytomousKeyDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ISelectionProvider selectionProvider, int style) {
+               super(formFactory, conversation, parentElement, selectionProvider, style);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getDetailType()
+        */
+       @Override
+       protected DetailType getDetailType() {
+               return DetailType.POLYTOMOUS_KEY;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
+        */
+       @Override
+       public String getHeading() {
+               return "Polytomous Key";
+       }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailElement.java
new file mode 100644 (file)
index 0000000..4d82760
--- /dev/null
@@ -0,0 +1,92 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.section.key;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+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.KeyStatementElement;
+import eu.etaxonomy.taxeditor.forms.NumberWithLabelElement;
+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.section.AbstractCdmDetailElement;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyNodeDetailElement extends AbstractCdmDetailElement<PolytomousKeyNode> {
+
+       private KeyStatementElement element_statement;
+
+       private FeatureSelectionElement selection_feature;
+       
+       private TaxonBaseSelectionElement selection_taxon;
+       
+       private PolytomousKeySelectionElement selection_subkey;
+       
+       private PolytomousKeyNodeSelectionElement selection_otherNode;
+       
+       private KeyStatementElement element_question;
+       
+       public PolytomousKeyNodeDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement) {
+               super(formFactory, formElement);
+       }
+
+
+       @Override
+       protected void createControls(ICdmFormElement formElement,
+                       PolytomousKeyNode entity, int style) {
+               if(! entity.isLeaf()){
+                       NumberWithLabelElement number_nodeNumber = formFactory.createIntegerTextWithLabelElement(formElement, "Node Number", entity.getNodeNumber(), style);
+                       number_nodeNumber.setEnabled(false);
+               }
+               
+               element_statement = formFactory.createKeyStatementElement(formElement, "Statement", entity.getStatement(), 50, style);
+               
+               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_subkey = (PolytomousKeySelectionElement) formFactory.createSelectionElement(SelectionType.POLYTOMOUS_KEY, getConversationHolder(), formElement, "Subkey", entity.getSubkey(), style);
+               
+               selection_otherNode = (PolytomousKeyNodeSelectionElement) formFactory.createSelectionElement(SelectionType.POLYTOMOUS_KEY_NODE, getConversationHolder(), formElement, "Other Node", entity.getOtherNode(), style);
+               
+               formFactory.createMultiLanguageTextElement(formElement, "Modifying Text", entity.getModifyingText(), 50, style);
+               
+               element_question = formFactory.createKeyStatementElement(formElement, "Question", entity.getQuestion(), 50, style);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
+        */
+       @Override
+       public void handleEvent(Object eventSource) {
+               if(eventSource == element_question){
+                       getEntity().setQuestion(element_question.getKeyStatement());
+               }
+               else if(eventSource == element_statement){
+                       getEntity().setStatement(element_statement.getKeyStatement());
+               }
+               else if(eventSource == selection_feature){
+                       getEntity().setFeature(selection_feature.getEntity());
+               }
+               else if(eventSource == selection_taxon){
+                       getEntity().setTaxon((Taxon) selection_taxon.getEntity());
+               }
+               else if(eventSource == selection_subkey){
+                       getEntity().setSubkey(selection_subkey.getEntity());
+               }
+               else if(eventSource == selection_otherNode){
+                       getEntity().setOtherNode(selection_otherNode.getEntity());
+               }
+       }
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/PolytomousKeyNodeDetailSection.java
new file mode 100644 (file)
index 0000000..657f36d
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.section.key;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyNodeDetailSection extends AbstractCdmDetailSection<PolytomousKeyNode> {
+
+       public PolytomousKeyNodeDetailSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ISelectionProvider selectionProvider, int style) {
+               super(formFactory, conversation, parentElement, selectionProvider, style);
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getDetailType()
+        */
+       @Override
+       protected DetailType getDetailType() {
+               return DetailType.POLYTOMOUS_KEY_NODE;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
+        */
+       @Override
+       public String getHeading() {
+               return "Polytomous Key Node";
+       }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/ScopeRestrictionSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/key/ScopeRestrictionSection.java
new file mode 100644 (file)
index 0000000..ae0a09c
--- /dev/null
@@ -0,0 +1,56 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.section.key;
+
+import java.util.Collection;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.Scope;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class ScopeRestrictionSection extends AbstractEntityCollectionSection<PolytomousKey, Scope> {
+
+       public ScopeRestrictionSection(CdmFormFactory formFactory,
+                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
+               super(formFactory, conversation, parentElement, "Scope Restriction", style);
+       }
+
+       @Override
+       public Collection<Scope> getCollection(PolytomousKey entity) {
+               return entity.getScopeRestrictions();
+       }
+
+       @Override
+       public Scope createNewElement() {
+               return Scope.NewInstance();
+       }
+
+       @Override
+       public void addElement(Scope element) {
+               getEntity().addScopeRestriction(element);
+       }
+
+       @Override
+       public void removeElement(Scope element) {
+               getEntity().removeScopeRestriction(element);
+       }
+
+       @Override
+       public String getEmptyString() {
+               return "No scope restrictions yet.";
+       }
+
+       @Override
+       protected String getTooltipString() {
+               return "Add a scope restriction";
+       }
+
+}
index 8a2197013deef18bed12be769e891eef559719a0..b196a3da7d4b9c46c25a45661bc0271a6d163c2b 100644 (file)
@@ -33,10 +33,6 @@ import eu.etaxonomy.taxeditor.section.ITaxonDetailSection;
 public class NonViralNameDetailSection extends AbstractCdmDetailSection<NonViralName>
                implements ITaxonDetailSection {
 
-
-       private static final Logger logger = Logger
-                       .getLogger(NonViralNameDetailSection.class);
-
        /**
         * <p>Constructor for NonViralNameDetailSection.</p>
         *
index 6f1c2767b35abc759b69eca04c20dd3e89c31e1c..0af349657fcffae03dd7aad43697357a6a32eb88 100644 (file)
@@ -22,6 +22,7 @@ import eu.etaxonomy.taxeditor.forms.CdmFormFactory.SelectionType;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.TermComboType;
 import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
 import eu.etaxonomy.taxeditor.forms.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.forms.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.forms.selection.CollectionSelectionElement;
 import eu.etaxonomy.taxeditor.forms.selection.NameSelectionElement;
 import eu.etaxonomy.taxeditor.forms.term.PreservationMethodComboElement;
@@ -38,6 +39,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class DerivedUnitBaseDetailElement extends AbstractCdmDetailElement<DerivedUnitBase> implements IFacadeHolder{
        private DerivedUnitFacade facade;
 
+
+       private ToggleableTextElement text_titleCache;
+       
        private TextWithLabelElement text_derivedUnitDefinitions;
 
        private TextWithLabelElement text_accessionNumber;
@@ -61,6 +65,7 @@ public class DerivedUnitBaseDetailElement extends AbstractCdmDetailElement<Deriv
        private SpecimenCollectionDetailSection section_duplicates;
        
        private SourceCollectionDetailSection section_source;
+
        
        /**
         * <p>Constructor for DerivedUnitBaseDetailElement.</p>
@@ -77,6 +82,7 @@ public class DerivedUnitBaseDetailElement extends AbstractCdmDetailElement<Deriv
        @Override
        protected void createControls(ICdmFormElement formElement,
                        DerivedUnitBase entity, int style) {
+               text_titleCache = formFactory.createToggleableTextField(formElement, "Title Cache", facade.getTitleCache(), facade.isProtectedTitleCache(), style);
                // Disable for now
 //             text_derivedUnitDefinitions = formFactory.createTextWithLabelElement(formElement, "Specimen Definition", facade.getDerivedUnitDefinition(CdmStore.getDefaultLanguage()), style);
                text_accessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", facade.getAccessionNumber(), style);
@@ -117,7 +123,10 @@ public class DerivedUnitBaseDetailElement extends AbstractCdmDetailElement<Deriv
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               if(eventSource == text_derivedUnitDefinitions){
+               if(eventSource == text_titleCache){
+                       facade.setTitleCache(text_titleCache.getText(), text_titleCache.getState());
+               }
+               else if(eventSource == text_derivedUnitDefinitions){
                        facade.addDerivedUnitDefinition(text_derivedUnitDefinitions.getText(), CdmStore.getDefaultLanguage());
                }
                else if(eventSource == text_accessionNumber){
similarity index 95%
rename from taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/CollectingAreasDetailElement.java
rename to taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/occurrence/NamedAreaDetailElement.java
index da20c345fa3fe0d68f7faec74b5e010e3cdcbd93..376a4e2d5eace1fa20eb21852e4964792b179e07 100644 (file)
@@ -26,7 +26,7 @@ import eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement;
  * @created Oct 14, 2010
  * @version 1.0
  */
-public class CollectingAreasDetailElement extends
+public class NamedAreaDetailElement extends
                AbstractEntityCollectionElement<NamedArea> {
 
        private NamedAreaSelectionElement selection_namedArea;
@@ -40,7 +40,7 @@ public class CollectingAreasDetailElement extends
         * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
         * @param style a int.
         */
-       public CollectingAreasDetailElement(CdmFormFactory formFactory,
+       public NamedAreaDetailElement(CdmFormFactory formFactory,
                        AbstractFormSection section, NamedArea entity,
                        SelectionListener removeListener, int style) {
                super(formFactory, section, entity, removeListener, null, style);
index f2f5ceb5ab7ad507ac8fdb2983fac268ceab7b0e..ab74aeed303e5dfddf82ffa40fdcfe2baa86432d 100644 (file)
@@ -5,14 +5,13 @@ package eu.etaxonomy.taxeditor.section.supplemental;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.Credit;
 import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
 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.AbstractSelectionElement;
+import eu.etaxonomy.taxeditor.forms.selection.AgentSelectionElement;
 import eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement;
 
 /**
@@ -24,7 +23,7 @@ import eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement;
  */
 public class CreditElement extends AbstractEntityCollectionElement<Credit>{
 
-       private AbstractSelectionElement<AgentBase> agentSelection;
+       private AgentSelectionElement agentSelection;
        private TextWithLabelElement text;
        
        /**
@@ -46,7 +45,7 @@ public class CreditElement extends AbstractEntityCollectionElement<Credit>{
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
-               agentSelection =  formFactory.createSelectionElement(SelectionType.AGENT, getConversationHolder(), this, "Agent", null, style);
+               agentSelection = (AgentSelectionElement) formFactory.createSelectionElement(SelectionType.AGENT, getConversationHolder(), this, "Agent", null, style);
                text = formFactory.createMultilineTextWithLabel(this, "Text", 100, style);
        }
 
@@ -1,5 +1,5 @@
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import junit.framework.Assert;
 
@@ -11,7 +11,8 @@ import org.junit.Test;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.operations.ChangeConceptRelationshipTypeOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * Specification for changing the concept relation between two taxa
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import junit.framework.Assert;
 
@@ -23,8 +23,9 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeConceptToSynonymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -61,7 +62,7 @@ public class ChangeConceptToSynonymOperationTest extends AbstractTaxeditorOperat
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeConceptToSynonymOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -75,7 +76,7 @@ public class ChangeConceptToSynonymOperationTest extends AbstractTaxeditorOperat
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeConceptToSynonymOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -88,7 +89,7 @@ public class ChangeConceptToSynonymOperationTest extends AbstractTaxeditorOperat
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeConceptToSynonymOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -101,7 +102,7 @@ public class ChangeConceptToSynonymOperationTest extends AbstractTaxeditorOperat
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
similarity index 73%
rename from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/ChangeHomotypicGroupOperationTest.java
rename to taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperationTest.java
index ea58288d79951e03d97ba29774cef57efd0d0034..47f3d551bc27191aab82a84ef57db6c84d5f2090 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import junit.framework.Assert;
 
@@ -21,8 +21,9 @@ import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -67,7 +68,7 @@ public class ChangeHomotypicGroupOperationTest extends AbstractTaxeditorOperatio
 
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -78,7 +79,7 @@ public class ChangeHomotypicGroupOperationTest extends AbstractTaxeditorOperatio
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -89,7 +90,7 @@ public class ChangeHomotypicGroupOperationTest extends AbstractTaxeditorOperatio
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -100,7 +101,7 @@ public class ChangeHomotypicGroupOperationTest extends AbstractTaxeditorOperatio
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
@@ -19,7 +19,8 @@ import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.ChangeHomotypicalGroupBasionymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -50,7 +51,7 @@ public class ChangeHomotypicalGroupBasionymOperationTest extends AbstractTaxedit
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicalGroupBasionymOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -61,7 +62,7 @@ public class ChangeHomotypicalGroupBasionymOperationTest extends AbstractTaxedit
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicalGroupBasionymOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -72,7 +73,7 @@ public class ChangeHomotypicalGroupBasionymOperationTest extends AbstractTaxedit
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicalGroupBasionymOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -83,7 +84,7 @@ public class ChangeHomotypicalGroupBasionymOperationTest extends AbstractTaxedit
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import junit.framework.Assert;
 
@@ -24,7 +24,8 @@ import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.operations.ChangeSynonymToConceptOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -56,7 +57,7 @@ public class ChangeSynonymToConceptOperationTest extends AbstractTaxeditorOperat
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeSynonymToConceptOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -70,7 +71,7 @@ public class ChangeSynonymToConceptOperationTest extends AbstractTaxeditorOperat
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeSynonymToConceptOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -83,7 +84,7 @@ public class ChangeSynonymToConceptOperationTest extends AbstractTaxeditorOperat
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeSynonymToConceptOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -97,7 +98,7 @@ public class ChangeSynonymToConceptOperationTest extends AbstractTaxeditorOperat
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
@@ -1,5 +1,5 @@
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
@@ -11,8 +11,8 @@ import org.junit.Test;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeSynonymToHomotypicalGroupBasionymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToHomotypicalGroupBasionymOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 public class ChangeSynonymToHomotypicalGroupBasionymOperationTest {
        private static final Logger logger = Logger
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
@@ -21,8 +21,9 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ChangeSynonymToMisapplicationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -55,7 +56,7 @@ public class ChangeSynonymToMisapplicationOperationTest extends AbstractTaxedito
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeSynonymToMisapplicationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -68,7 +69,7 @@ public class ChangeSynonymToMisapplicationOperationTest extends AbstractTaxedito
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeSynonymToMisapplicationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -82,7 +83,7 @@ public class ChangeSynonymToMisapplicationOperationTest extends AbstractTaxedito
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeSynonymToMisapplicationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -95,7 +96,7 @@ public class ChangeSynonymToMisapplicationOperationTest extends AbstractTaxedito
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
@@ -20,7 +20,8 @@ import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.operations.CreateConceptRelationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateConceptRelationOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -49,7 +50,7 @@ public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperati
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateConceptRelationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateConceptRelationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -61,7 +62,7 @@ public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperati
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateConceptRelationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateConceptRelationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -72,7 +73,7 @@ public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperati
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateConceptRelationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateConceptRelationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -84,7 +85,7 @@ public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperati
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
@@ -1,5 +1,5 @@
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import junit.framework.Assert;
 
@@ -12,7 +12,8 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.CreateDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 public class CreateDescriptionElementOperationTest extends AbstractTaxeditorOperationTest {
        private static final Logger logger = Logger
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
@@ -21,7 +21,8 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -54,7 +55,7 @@ public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends Abstr
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * 
         * Homotypic group is the Taxons homotypic group, so we expect the synonym to be homotypic to the accepted taxon.
         * 
@@ -70,7 +71,7 @@ public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends Abstr
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * 
         * Homotypic group is not the accepted taxons. Heterotypic synonym should be created.
         * 
@@ -88,7 +89,7 @@ public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends Abstr
        
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -102,7 +103,7 @@ public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends Abstr
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -114,7 +115,7 @@ public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends Abstr
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -130,7 +131,7 @@ public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends Abstr
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInExistingHomotypicalGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
@@ -18,7 +18,8 @@ import org.junit.Test;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.CreateSynonymInNewGroupOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -42,7 +43,7 @@ public class CreateSynonymInNewGroupOperationTest extends AbstractTaxeditorOpera
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInNewGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -54,7 +55,7 @@ public class CreateSynonymInNewGroupOperationTest extends AbstractTaxeditorOpera
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInNewGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -65,7 +66,7 @@ public class CreateSynonymInNewGroupOperationTest extends AbstractTaxeditorOpera
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.CreateSynonymInNewGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
@@ -19,7 +19,8 @@ import org.junit.Test;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.operations.DeleteConceptRelationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.DeleteConceptRelationOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -52,7 +53,7 @@ public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperati
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteConceptRelationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteConceptRelationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -63,7 +64,7 @@ public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperati
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteConceptRelationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteConceptRelationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -74,7 +75,7 @@ public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperati
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteConceptRelationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteConceptRelationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -85,7 +86,7 @@ public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperati
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
@@ -19,7 +19,8 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.DeleteDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -51,7 +52,7 @@ public class DeleteDescriptionElementOperationTest extends AbstractTaxeditorOper
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteDescriptionElementOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -62,7 +63,7 @@ public class DeleteDescriptionElementOperationTest extends AbstractTaxeditorOper
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteDescriptionElementOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -74,7 +75,7 @@ public class DeleteDescriptionElementOperationTest extends AbstractTaxeditorOper
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteDescriptionElementOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
similarity index 71%
rename from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteMisapplicationOperationTest.java
rename to taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteMisapplicationOperationTest.java
index f9826a84d3596c83e910c1d69c7c3342a042518b..80ae0e752a03759a92b9af4b15f6603affa0110d 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
@@ -18,7 +18,8 @@ import org.junit.Test;
 
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.DeleteMisapplicationOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -48,7 +49,7 @@ public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperatio
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteMisapplicationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -59,7 +60,7 @@ public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperatio
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteMisapplicationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -70,7 +71,7 @@ public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperatio
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteMisapplicationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -81,7 +82,7 @@ public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperatio
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
similarity index 73%
rename from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/DeleteSynonymOperationTest.java
rename to taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperationTest.java
index 585ec6fd8722f8ca18327090939b55e804a45034..b4f4b41b6a628b7b8d1e69a950462973e5b30f2d 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
@@ -19,7 +19,8 @@ import org.junit.Test;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.DeleteSynonymOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -49,7 +50,7 @@ public class DeleteSynonymOperationTest extends AbstractTaxeditorOperationTest{
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteSynonymOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -60,7 +61,7 @@ public class DeleteSynonymOperationTest extends AbstractTaxeditorOperationTest{
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteSynonymOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -72,7 +73,7 @@ public class DeleteSynonymOperationTest extends AbstractTaxeditorOperationTest{
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.DeleteSynonymOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
similarity index 80%
rename from taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/MoveTaxonOperationTest.java
rename to taxeditor-editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveTaxonOperationTest.java
index d011931a6ca7218174f9fe46359b0a82f8d1b2dc..c265e879e0e7ff3c4b3647c497764e4806839a96 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
@@ -18,6 +18,7 @@ import org.junit.Test;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -57,7 +58,7 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTest {
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.MoveTaxonOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.navigation.operation.MoveTaxonOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -71,7 +72,7 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTest {
 
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.MoveTaxonOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.navigation.operation.MoveTaxonOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -84,7 +85,7 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTest {
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.MoveTaxonOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.navigation.operation.MoveTaxonOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import junit.framework.Assert;
 
@@ -26,8 +26,9 @@ import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.SwapSynonymAndAcceptedOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTest;
 
 /**
  * @author n.hoffmann
@@ -119,7 +120,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
 
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -160,7 +161,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -171,7 +172,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
        }
        
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
         * @throws ExecutionException 
         */
        @Test
@@ -182,7 +183,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
        }
 
        /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(ICdmBase)}.
+        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation#postExecute(ICdmBase)}.
         */
        @Test
        public void testPostExecute() {
index c0714afc40d204f1e04863d25ee38425c67f8232..a9884a7972441e42ce09319b2fb0092366dcea3c 100644 (file)
@@ -799,4 +799,32 @@ Software distributed under the License is distributed on an &quot;AS IS&quot; ba
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.zest.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.zest.layouts"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.draw2d"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.ui.views.log"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
index 684919334e70433ba386f2abdfce67f91ef83602..3afebf10a3c46d7df1cacd5afbd5d786c406e946 100644 (file)
@@ -1,4 +1,3 @@
-bin.includes = feature.xml
-category.members.taxeditor = eu.etaxonomy.taxeditor.product.feature
-category.id.taxeditor = EDIT Taxonomic Editor
-category.description.taxeditor = Demo build of RCP taxeditor with p2 managment
+p2.gathering = true
+bin.includes = plugin_customization.ini,\
+               feature.xml
diff --git a/taxeditor-feature-product/category.xml b/taxeditor-feature-product/category.xml
new file mode 100644 (file)
index 0000000..e5a2afd
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+   <feature url="features/eu.etaxonomy.taxeditor.feature_3.0.0.qualifier.jar" id="eu.etaxonomy.taxeditor.feature" version="3.0.0.qualifier" os="linux,macosx,win32" ws="cocoa,gtk,win32" arch="x86">
+      <category name="eu.etaxonomy.taxeditor.category"/>
+   </feature>
+   <category-def name="eu.etaxonomy.taxeditor.category" label="EDIT Taxonomic Editor"/>
+</site>
diff --git a/taxeditor-feature-product/feature.properties b/taxeditor-feature-product/feature.properties
deleted file mode 100644 (file)
index 173cefc..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-productName=EDIT Taxonomic Editor\r
-productBlurb=EDIT Taxonomic Editor\n\Version: {productVersion}\n\n\Copyright (C) 2009 EDIT\n\European Distributed Institute of Taxonomy\n\http://www.e-taxonomy.eu\r
index 0a0dca455906f1706b8ff7f8f3f6bf2d1c4cca48..8c3f2eb64222f1bf8fe0bf88365ed86a62bea663 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
-      id="eu.etaxonomy.taxeditor.product.feature"
+      id="eu.etaxonomy.taxeditor.feature"
       label="Taxonomic Editor"
       version="3.0.0.qualifier"
       provider-name="EDIT"
diff --git a/taxeditor-feature-product/p2.inf b/taxeditor-feature-product/p2.inf
new file mode 100644 (file)
index 0000000..cb115ea
--- /dev/null
@@ -0,0 +1,3 @@
+requires.1.namespace = org.eclipse.equinox.p2.iu
+requires.1.name = eu.etaxonomy.taxeditor.feature.feature.group
+requires.1.range = [3.0.0, 4.0.0)
\ No newline at end of file
index f9061dc37294995d8db38692b33234d9eeed9bac..53bf93e21b8d98056ccb9d28a76731a28b2c7231 100644 (file)
@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="%productName" uid="eu.etaxonomy.taxeditor" id="eu.etaxonomy.taxeditor.application.product" application="eu.etaxonomy.taxeditor.application.application" version="3.0.0.qualifier" useFeatures="true" includeLaunchers="true">
+<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor" id="eu.etaxonomy.taxeditor.application.product" application="eu.etaxonomy.taxeditor.application.application" version="3.0.0.qualifier" useFeatures="true" includeLaunchers="true">
 
    <aboutInfo>
+      <image path="/taxeditor-application/icons/256color_48x48.gif"/>
       <text>
          %productBlurb
       </text>
@@ -14,7 +15,7 @@
 
    <launcherArgs>
       <programArgs>-data @user.home/.cdmLibrary</programArgs>
-      <vmArgs>-Xmx256M -XX:MaxPermSize=128m</vmArgs>
+      <vmArgs>-Xmx512M -XX:MaxPermSize=256M</vmArgs>
       <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
    </launcherArgs>
 
@@ -49,7 +50,7 @@ Software distributed under the License is distributed on an &amp;quot;AS IS&amp;
    </plugins>
 
    <features>
-      <feature id="eu.etaxonomy.taxeditor.product.feature" version="3.0.0.qualifier"/>
+      <feature id="eu.etaxonomy.taxeditor.feature" version="3.0.0.qualifier"/>
    </features>
 
    <configurations>
index 7123a8fdc58c6941419b2630ee4ed338c0603d9f..cd6afd29ad03983234c52ad72fa0679a289be819 100644 (file)
             name="Taxon Navigator"
             restorable="true">
       </view>
+      <view
+            allowMultiple="false"
+            class="eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyViewPart"
+            id="eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart"
+            name="Polytomous Keys"
+            restorable="true">
+      </view>
    </extension>
    <extension
          point="org.eclipse.ui.menus">
                label="Taxon Navigator"
                style="push">
          </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.navigation.command.showPolytomousKeysView"
+               label="Polytomous Keys"
+               style="push">
+         </command>
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.navigation.search.searchResultView">
                style="push">
          </command>
       </menuContribution>
+      <menuContribution
+            allPopups="false"
+            locationURI="popup:eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart">
+         <command
+               commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.edit"
+               label="Edit"
+               style="push">
+         </command>
+         <separator
+               name="eu.etaxonomy.eu.polytomousKeyView.separator"
+               visible="true">
+         </separator>
+         <command
+               commandId="org.eclipse.ui.edit.delete"
+               label="Delete"
+               style="push">
+         </command>
+      </menuContribution>
    </extension>
    <extension
          point="org.eclipse.ui.commands">
    <extension
          point="org.eclipse.ui.commands">
       <command
-            defaultHandler="eu.etaxonomy.taxeditor.navigation.handler.EditHandler"
+            defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.Edit"
             id="eu.etaxonomy.taxeditor.navigation.command.editSelection"
             name="Edit">
       </command>
       <command
-            defaultHandler="eu.etaxonomy.taxeditor.navigation.handler.MoveTaxonHandler"
+            defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.MoveTaxon"
             id="eu.etaxonomy.taxeditor.navigation.command.moveTaxon"
             name="Move Taxon">
       </command>
             name="Refresh">
       </command>
    </extension>
+   <extension
+         point="org.eclipse.ui.commands">
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.Edit"
+            id="eu.etaxonomy.taxeditor.navigation.key.polytomous.edit"
+            name="Edit Polytomous Key">
+      </command>
+   </extension>
    <extension
          point="org.eclipse.ui.handlers">
       <handler
-            class="eu.etaxonomy.taxeditor.navigation.handler.DeleteTreeNodeHandler"
+            class="eu.etaxonomy.taxeditor.navigation.navigator.handler.Delete"
             commandId="org.eclipse.ui.edit.delete">
          <enabledWhen>
             <with
             </with>
          </enabledWhen>
       </handler>
+      <handler
+            commandId="org.eclipse.ui.edit.delete">
+         <activeWhen>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart">
+               </equals>
+            </with>
+         </activeWhen>
+         <enabledWhen>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart">
+               </equals>
+            </with>
+         </enabledWhen>
+      </handler>
    </extension>
    <extension
          point="org.eclipse.ui.commands">
             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>
 
       
index ea8880db83a2554cd4713f1a11be78590f69dd6e..e21d8aa9a89ba1eeeb50c5dec57c94492211e503 100644 (file)
@@ -29,6 +29,7 @@ import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.navigator.CommonViewer;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -88,6 +89,8 @@ public class NavigationUtil extends AbstractUtility{
                        }else if(selectedObject instanceof TaxonNameBase){
                                // TODO open bulk editor
                                warningDialog("Not implemented yet", NavigationUtil.class, "You tried to open a name. This is not handled by the software yet.");
+                       }else if(selectedObject instanceof PolytomousKey){
+                               EditorUtil.openPolytomousKey(entityUuid);
                        }else{
                                warningDialog("Unsupported Type", NavigationUtil.class, "No editor exists for the current selection: " + selectedObject);
                        }
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
new file mode 100644 (file)
index 0000000..0794e54
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+ * 
+ */
+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;
+       }
+
+}
index 6dfd86edf9eeab4d12e48c403f56e5ccc4ad62c4..a1a2e15aa3c43af213d1e352171fc506b11d9667 100644 (file)
 
 package eu.etaxonomy.taxeditor.navigation.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.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;
 
@@ -28,8 +28,6 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
  * @version 1.0
  */
 public class ShowTaxonomicTreeViewHandler extends AbstractHandler {
-       private static final Logger logger = Logger
-                       .getLogger(ShowTaxonomicTreeViewHandler.class);
 
        /** {@inheritDoc} */
        public Object execute(ExecutionEvent event) throws ExecutionException {
@@ -38,7 +36,7 @@ public class ShowTaxonomicTreeViewHandler extends AbstractHandler {
                                        .getActiveWorkbenchWindow().getActivePage().
                                        showView(TaxonNavigator.ID,     null, IWorkbenchPage.VIEW_VISIBLE);                     
                } catch (PartInitException e) {
-                       logger.error("Error opening taxonomic tree view.", e);
+                       NavigationUtil.error(getClass(), e);
                }
                return null;
        }
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyContentProvider.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyContentProvider.java
new file mode 100644 (file)
index 0000000..520bc78
--- /dev/null
@@ -0,0 +1,37 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.navigation.key.polytomous;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyContentProvider implements IStructuredContentProvider{
+
+       @Override
+       public void dispose() {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+               // TODO Auto-generated method stub
+               
+       }
+
+       @Override
+       public Object[] getElements(Object inputElement) {
+               if(inputElement instanceof List){
+                       return ((List) inputElement).toArray();
+               }
+               return null;
+       }
+
+}
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyLabelProvider.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyLabelProvider.java
new file mode 100644 (file)
index 0000000..a175246
--- /dev/null
@@ -0,0 +1,16 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.navigation.key.polytomous;
+
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyLabelProvider extends ColumnLabelProvider implements
+               ILabelProvider {
+
+}
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.java
new file mode 100644 (file)
index 0000000..5d87fa6
--- /dev/null
@@ -0,0 +1,221 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.navigation.key.polytomous;
+
+import java.util.List;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.part.ViewPart;
+
+import 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.description.PolytomousKey;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
+import eu.etaxonomy.taxeditor.model.IContextListener;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyViewPart extends ViewPart implements
+               IConversationEnabled, IPostOperationEnabled {
+
+       private class FilterModifyListener implements ModifyListener{
+               @Override
+               public void modifyText(ModifyEvent e) {
+                       ViewerFilter filter = new ViewerFilter(){
+
+                               @Override
+                               public boolean select(Viewer viewer, Object parentElement,
+                                               Object element) {
+                                       
+                                       if(element instanceof PolytomousKey){
+                                               PolytomousKey key = (PolytomousKey) element;
+                                               if(key.getTitleCache().contains(text_filter.getText())){
+                                                       return true;
+                                               }
+                                       }
+                                       
+                                       return false;
+                               }
+                               
+                       };
+                       
+                       viewer.setFilters(new ViewerFilter[]{filter});
+               }
+       }
+       
+       
+       public static final String ID = "eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart";
+
+       public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.navigation.key.polytomous.edit";
+       
+       private class ContextListener extends ContextListenerAdapter{
+               /* (non-Javadoc)
+                * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
+                */
+               @Override
+               public void contextStop(IMemento memento, IProgressMonitor monitor) {
+                       NavigationUtil.hideView(PolytomousKeyViewPart.this);
+               }
+       }
+       
+       private ListViewer viewer;
+       private ConversationHolder conversation;
+       private IContextListener contextListener;
+       private CdmFormFactory formFactory;
+       private Text text_filter;
+
+       public PolytomousKeyViewPart(){
+               formFactory = new CdmFormFactory(Display.getDefault());
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+        */
+       @Override
+       public void createPartControl(Composite parent) {
+
+               Composite container = new Composite(parent, SWT.NONE);
+               container.setLayout(new GridLayout());
+               
+               conversation = CdmStore.createConversation();
+               contextListener = new ContextListener();
+               CdmStore.getContextManager().addContextListener(contextListener);
+               
+               text_filter = formFactory.createText(container, "");
+               text_filter.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+               text_filter.addModifyListener(new FilterModifyListener());
+               
+               viewer = new ListViewer(container, SWT.H_SCROLL | SWT.V_SCROLL);
+               viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+               
+               viewer.setContentProvider(new PolytomousKeyContentProvider());
+               viewer.setLabelProvider(new PolytomousKeyLabelProvider());
+               
+               viewer.addDoubleClickListener(new IDoubleClickListener() {
+                       
+                       @Override
+                       public void doubleClick(DoubleClickEvent event) {
+                               
+                               ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);
+                               
+                               Command command = commandService.getCommand(OPEN_COMMAND_ID); 
+                               if(command.isEnabled()) {
+                                       IHandlerService handlerService = (IHandlerService)getSite().getService(IHandlerService.class);
+                                       try {
+                                               handlerService.executeCommand(OPEN_COMMAND_ID, null);
+                                       } catch (NotDefinedException e) {
+                                               throw new RuntimeException("Could not find open command: " + OPEN_COMMAND_ID);
+                                       } catch (Exception e) {
+                                               NavigationUtil.error(getClass(), "An exception occured while trying to open a selection", e);
+                                       }
+                               }
+                       }
+               });
+               
+               getSite().setSelectionProvider(viewer);
+                               
+               createMenu();
+               
+               setInput();
+       }
+       
+       private void createMenu(){
+               MenuManager menuManager = new MenuManager();
+               menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+               
+               getSite().registerContextMenu(menuManager, viewer);
+                               
+               Control control = viewer.getControl();
+               Menu menu = menuManager.createContextMenu(control);
+               
+               control.setMenu(menu);  
+       }
+
+       private void setInput() {
+               List<PolytomousKey> input = CdmStore.getPolytomousKeyService().list(PolytomousKey.class, null, null, null, null);                       
+               
+               viewer.setInput(input);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+        */
+       @Override
+       public void setFocus() {
+               viewer.getControl().setFocus();
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
+        */
+       @Override
+       public void update(CdmDataChangeMap changeEvents) {}
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
+        */
+       @Override
+       public ConversationHolder getConversationHolder() {
+               return conversation;
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.part.WorkbenchPart#dispose()
+        */
+       @Override
+       public void dispose() {
+               CdmStore.getContextManager().removeContextListener(contextListener);
+               super.dispose();
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
+        */
+       @Override
+       public boolean postOperation(CdmBase objectAffectedByOperation) {
+               viewer.refresh();
+               return true;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#onComplete()
+        */
+       @Override
+       public boolean onComplete() {
+               return true;
+       }
+
+}
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/Delete.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/Delete.java
new file mode 100644 (file)
index 0000000..5db2723
--- /dev/null
@@ -0,0 +1,57 @@
+// $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.key.polytomous.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyViewPart;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 3, 2010
+ * @version 1.0
+ */
+public class Delete extends AbstractHandler {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+        */
+       @Override
+       public Object execute(ExecutionEvent event) throws ExecutionException {
+               IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+               
+               PolytomousKey key = (PolytomousKey) selection.getFirstElement();
+               
+               if(NavigationUtil.confirmDialog("Confirm deletaion", "Do you really want to delete the key: " + key.getTitleCache())){
+               
+                       try {
+                               AbstractPostOperation operation = new eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.Delete(
+                                               event.getCommand().getName(),
+                                               NavigationUtil.getUndoContext(), key, 
+                                               (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false));
+                               NavigationUtil.executeOperation(operation);
+                       } catch (NotDefinedException e) {
+                               NavigationUtil.error(getClass(), e);
+                       }
+               }
+               
+               return null;
+       }
+
+}
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/Edit.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/Edit.java
new file mode 100644 (file)
index 0000000..bb4cec7
--- /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.navigation.key.polytomous.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 3, 2010
+ * @version 1.0
+ */
+public class Edit extends AbstractHandler {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+        */
+       @Override
+       public Object execute(ExecutionEvent event) throws ExecutionException {
+               ISelection selection = HandlerUtil.getCurrentSelection(event);
+               
+               if(selection instanceof StructuredSelection){
+                       final StructuredSelection structuredSelection = (StructuredSelection) selection;
+               
+                       if(structuredSelection.size() == 1 && structuredSelection.getFirstElement() instanceof PolytomousKey){
+                               NavigationUtil.openEditor((PolytomousKey) structuredSelection.getFirstElement());
+                       }
+                       
+               }
+               return null;
+       }
+
+}
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/Delete.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/Delete.java
new file mode 100644 (file)
index 0000000..92fc119
--- /dev/null
@@ -0,0 +1,75 @@
+// $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.key.polytomous.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 2, 2010
+ * @version 1.0
+ */
+public class Delete extends AbstractPostOperation {
+
+       private PolytomousKey key;
+
+       /**
+        * @param label
+        * @param undoContext
+        * @param postOperationEnabled
+        */
+       public Delete(String label, IUndoContext undoContext,
+                       PolytomousKey key,
+                       IPostOperationEnabled postOperationEnabled) {
+               super(label, undoContext, postOperationEnabled);
+               this.key = key;
+       }
+
+       /* (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 {
+               CdmStore.getPolytomousKeyService().delete(key);
+               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 {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+}
index 49411336ebca5ae550b6cff10c35aa2dd1823461..e772146c07a857b912c548b2daa6bb6913353e9b 100644 (file)
@@ -16,7 +16,6 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.Command;
 import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.core.runtime.IAdaptable;
@@ -39,7 +38,7 @@ import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -50,8 +49,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class TaxonNavigator extends CommonNavigator implements IPostOperationEnabled, IConversationEnabled{
-       private static final Logger logger = Logger
-                       .getLogger(TaxonNavigator.class);
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.navigation.navig"{trunked}</code> */
        public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator"; //$NON-NLS-1$
@@ -66,8 +63,6 @@ public class TaxonNavigator extends CommonNavigator implements IPostOperationEna
        private ConversationHolder conversation;
        
        private String partNameCache;
-       
-       private IWorkbenchSiteProgressService service;
 
        private IDataChangeBehavior dataChangeBehavior;
 
@@ -91,7 +86,6 @@ public class TaxonNavigator extends CommonNavigator implements IPostOperationEna
        public void init(IViewSite site)
                        throws PartInitException {
                super.init(site);
-               service = (IWorkbenchSiteProgressService) getSite().getAdapter(IWorkbenchSiteProgressService.class);
                init();
        }
        
@@ -109,9 +103,8 @@ public class TaxonNavigator extends CommonNavigator implements IPostOperationEna
         * Refresh this navigators viewer
         */
        public void refresh(){
-               logger.warn("Refreshing navigator");
                getConversationHolder().bind();
-               this.getCommonViewer().refresh();
+               getCommonViewer().refresh();
        }
 
        /**
@@ -235,10 +228,9 @@ public class TaxonNavigator extends CommonNavigator implements IPostOperationEna
                                        path += ((CdmBase) segment).getUuid().toString() + " ";
                                        monitor.worked(1);                              
                                } else {
-                                       logger.warn("Non-taxon tree path segment " + segment);
+                                       NavigationUtil.warn(getClass(), "Non-taxon tree path segment " + segment);
                                }
                        }
-                       logger.info("Creating memento child for path " + path.trim());
                        memento.createChild(TREE_PATH, path.trim());
                }
                monitor.done();
@@ -362,7 +354,7 @@ public class TaxonNavigator extends CommonNavigator implements IPostOperationEna
                        } catch (NotDefinedException e) {
                                throw new RuntimeException("Could not find open command: " + OPEN_COMMAND_ID);
                        } catch (Exception e) {
-                               logger.error("An exception occured while trying to open a selection", e);
+                               NavigationUtil.error(getClass(), "An exception occured while trying to open a selection", e);
                        }
                }
                // If the double click is passed up to the super-class it will expand/collapse trees.
index 7f9e2791e75ef8d5640d7a43e9bd525aed02af56..b50082362db6064b6c07a36c6fe6086879e14e24 100644 (file)
@@ -9,11 +9,9 @@
 
 package eu.etaxonomy.taxeditor.navigation.navigator;
 
-import java.util.ConcurrentModificationException;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -42,8 +40,6 @@ import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
  */
 public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements 
                IDataChangeBehavior {
-       private static final Logger logger = Logger
-                       .getLogger(TaxonNavigatorDataChangeBehavior.class);
 
        private TaxonNavigator source;
 
@@ -144,7 +140,6 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
                                @Override
                                protected IStatus run(IProgressMonitor monitor) {
                                        monitor.beginTask("Updating Taxon Navigator", 3);
-                                       source.getConversationHolder().bind();
                                        monitor.worked(1);
                                        
                                        // clear the session completely
@@ -174,7 +169,6 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
                                        
                                        
                                        monitor.worked(1);
-                                       logger.info("DataStore update caused a refresh of the taxonomic tree");
                                        monitor.done();
                                        return Status.OK_STATUS;
                                }
index ec66ead0e6624765f7f73d94ec887edf8c8ddc7b..7819132c18c671174cd9eb9a8e2f677b56fbcbeb 100644 (file)
@@ -14,6 +14,7 @@ import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 
@@ -35,7 +36,8 @@ public class TaxonNodeContentProvider implements ITreeContentProvider {
                Object[] children = null;               
                
                if(parentElement instanceof ITreeNode){
-                       children = ((ITreeNode) parentElement).getChildNodes().toArray();
+                       ITreeNode treeNode = (ITreeNode) HibernateProxyHelper.deproxy(parentElement);
+                       children = treeNode.getChildNodes().toArray();
                }
                
                return children != null ? children : NO_CHILDREN;
index c95a5b6a90e43f3ae166e8e9f7b8f1812febf9d3..4df76dd8b71cf52053c71237ef6216480a3a88a1 100644 (file)
@@ -31,9 +31,9 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operations.MoveTaxonOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>TaxonNodeDropAdapterAssistant class.</p>
@@ -154,7 +154,7 @@ public class TaxonNodeDropAdapterAssistant extends CommonDropAdapterAssistant im
                        return Status.CANCEL_STATUS;
                }
 
-               AbstractPostOperation operation = new MoveTaxonOperation
+               AbstractPostOperation operation = new MoveTaxon
                                ("Move Taxon", workspaceUndoContext, taxonNodes, targetITreeNode, this, taxonNavigator);
                NavigationUtil.executeOperation(operation);     
                
index 0965decac417430a87d7a0b3afe51eb51728ff3a..d0a823f4d0c5398b5958c2b0ee2704c04653b1ce 100644 (file)
@@ -17,9 +17,13 @@ import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.ui.navigator.IDescriptionProvider;
+import org.hibernate.LazyInitializationException;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 
 /**
  * <p>TaxonNodeLabelProvider class.</p>
@@ -30,8 +34,6 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
  */
 public class TaxonNodeLabelProvider extends ColumnLabelProvider 
                implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
-       private static final Logger logger = Logger
-                       .getLogger(TaxonNodeLabelProvider.class);
        
        /** {@inheritDoc} */
        @Override
@@ -43,17 +45,24 @@ public class TaxonNodeLabelProvider extends ColumnLabelProvider
        @Override
        public String getText(Object element) {
                if (element instanceof TaxonNode){
-                       Taxon taxon = ((TaxonNode) element).getTaxon();
-                       if(taxon == null){
-                               logger.error("The taxon node does not have a taxon attached to it. Please check your import. TaxonNode: " + element);
-//                             throw new RuntimeException("The data your are trying to view is corrupt. Please check your import.");
-                       }else{
-                               try{
-                                       return taxon.getName() != null ? taxon.getName().getTitleCache() : new String();
-                               }catch(Exception e){
-                                       logger.error("", e);
+                       TaxonNode taxonNode = (TaxonNode) HibernateProxyHelper.deproxy(element);
+                       
+                       try{
+                               Taxon taxon = (Taxon) HibernateProxyHelper.deproxy(taxonNode.getTaxon());
+                               if(taxon == null){
+                                       NavigationUtil.error(getClass(), "The taxon node does not have a taxon attached to it. Please check your import. TaxonNode: " + element, null);
+//                                     throw new RuntimeException("The data your are trying to view is corrupt. Please check your import.");
+                               }else{
+                                       try{                                    
+                                               return taxon.getName() != null ? ((IIdentifiableEntity) HibernateProxyHelper.deproxy(taxon.getName())).getTitleCache() : new String();
+                                       }catch(Exception e){
+                                               NavigationUtil.error(getClass(), e);
+                                       }
                                }
+                       }catch (LazyInitializationException e){
+                               NavigationUtil.error(getClass(), e);
                        }
+                       
                }
                return new String();
        }
similarity index 87%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/DeleteTreeNodeHandler.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/Delete.java
index 92b65be84d6ab36c9edcafb2a3d2f94db3871c11..f52b3ffabb008866f2dac42ac8e8ef10e24333f7 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.navigation.handler;
+package eu.etaxonomy.taxeditor.navigation.navigator.handler;
 
 import java.util.HashSet;
 import java.util.Iterator;
@@ -35,8 +35,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.DeleteTreeNodeOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  * <p>DeleteTreeNodeHandler class.</p>
@@ -45,9 +44,9 @@ import eu.etaxonomy.taxeditor.operations.DeleteTreeNodeOperation;
  * @created 06.04.2009
  * @version 1.0
  */
-public class DeleteTreeNodeHandler extends AbstractHandler implements IHandler{
+public class Delete extends AbstractHandler implements IHandler{
        private static final Logger logger = Logger
-                       .getLogger(DeleteTreeNodeHandler.class);
+                       .getLogger(Delete.class);
        private IWorkbenchPage activePage;
        private TaxonNavigator taxonNavigator;
 
@@ -77,7 +76,9 @@ public class DeleteTreeNodeHandler extends AbstractHandler implements IHandler{
                        
                AbstractPostOperation operation = null;
                try {
-                       operation = new DeleteTreeNodeOperation(event.getCommand().getName(), NavigationUtil.getUndoContext(), treeNodes, taxonNavigator, taxonNavigator);
+                       operation = new eu.etaxonomy.taxeditor.navigation.navigator.operation.Delete(
+                                       event.getCommand().getName(), NavigationUtil.getUndoContext(), 
+                                       treeNodes, taxonNavigator, taxonNavigator);
                        
                        IStatus status = NavigationUtil.executeOperation(operation);
                        
similarity index 95%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/EditHandler.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/Edit.java
index 957e42a97eaca84999dcc20f786c5b87a4970ee3..d472a5e23ae3ecf8f1dea6c3953aa431a05a8f8d 100644 (file)
@@ -1,4 +1,4 @@
-package eu.etaxonomy.taxeditor.navigation.handler;
+package eu.etaxonomy.taxeditor.navigation.navigator.handler;
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
@@ -36,7 +36,7 @@ import eu.etaxonomy.taxeditor.wizard.ClassificationWizard;
  * @created May 12, 2010
  * @version 1.0
  */
-public class EditHandler extends AbstractHandler implements IHandler{
+public class Edit extends AbstractHandler implements IHandler{
 
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
similarity index 88%
rename from taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/MoveTaxonHandler.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxon.java
index 2059500ff0b401d4e8dd4351b7adcee2aa9829dc..4f9de02fd173f58773cecc0f690bc50579cc35d1 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.navigation.handler;
+package eu.etaxonomy.taxeditor.navigation.navigator.handler;
 
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -29,9 +29,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredTaxonNodeSelectionDialog;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operations.MoveTaxonOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * <p>MoveTaxonHandler class.</p>
@@ -40,9 +39,9 @@ import eu.etaxonomy.taxeditor.operations.MoveTaxonOperation;
  * @created 01.04.2009
  * @version 1.0
  */
-public class MoveTaxonHandler extends AbstractHandler implements IPostOperationEnabled {
+public class MoveTaxon extends AbstractHandler implements IPostOperationEnabled {
        private static final Logger logger = Logger
-                       .getLogger(MoveTaxonHandler.class);
+                       .getLogger(MoveTaxon.class);
        private TaxonNode parentTaxonNode;
 
        /* (non-Javadoc)
@@ -80,7 +79,7 @@ public class MoveTaxonHandler extends AbstractHandler implements IPostOperationE
                                return null;
                        }
                        
-                       AbstractPostOperation operation = new MoveTaxonOperation
+                       AbstractPostOperation operation = new eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxon
                                        ("Move taxon to new parent", NavigationUtil.getUndoContext(), 
                                                        taxonNodes, parentTaxonNode, this, taxonNavigator); //$NON-NLS-1$
                        NavigationUtil.executeOperation(operation);
similarity index 90%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTreeNodeOperation.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/Delete.java
index 0e631df54a5048fe1de36ae99cfdfff1da67dc61..596690cc1b4540efd30edb04bb891739664e3b0f 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 import java.util.Set;
 
@@ -22,6 +22,8 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
@@ -32,7 +34,7 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @created Jan 20, 2010
  * @version 1.0
  */
-public class DeleteTreeNodeOperation extends AbstractPersistentPostOperation{
+public class Delete extends AbstractPersistentPostOperation{
        
        private Set<ITreeNode> treeNodes;
 
@@ -42,11 +44,11 @@ public class DeleteTreeNodeOperation extends AbstractPersistentPostOperation{
         *
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         * @param treeNodes a {@link java.util.Set} object.
         */
-       public DeleteTreeNodeOperation(String label, IUndoContext undoContext,
+       public Delete(String label, IUndoContext undoContext,
                        Set<ITreeNode> treeNodes,
                        IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
similarity index 86%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/EditClassificationOperation.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/EditClassification.java
index 10f127f2fa075584195731da234206807788d3d8..1305dadc5c65d34bd54afde0b1cc60dd2b6a99f8 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -27,7 +29,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created Jul 12, 2010
  * @version 1.0
  */
-public class EditClassificationOperation extends AbstractPersistentPostOperation {
+public class EditClassification extends AbstractPersistentPostOperation {
        private Classification classification;
 
        /**
@@ -36,10 +38,10 @@ public class EditClassificationOperation extends AbstractPersistentPostOperation
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param classification a {@link eu.etaxonomy.cdm.model.taxon.TaxonomicTree} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
-       public EditClassificationOperation(String label, IUndoContext undoContext, Classification classification,
+       public EditClassification(String label, IUndoContext undoContext, Classification classification,
                        IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
similarity index 91%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxon.java
index bd96e340a3ca549b163123038e3f0c5b0cee35cc..a36b925c75d16bb7586759693a339cadfa2dc0c1 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -24,6 +24,8 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
@@ -33,7 +35,7 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @created 16.01.2009
  * @version 1.0
  */
-public class MoveTaxonOperation extends AbstractPersistentPostOperation {
+public class MoveTaxon extends AbstractPersistentPostOperation {
        
        /**
         * A reference to the new taxonomical parent.
@@ -53,10 +55,10 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxonNodes a {@link java.util.Set} object.
         * @param newParentTreeNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
-       public MoveTaxonOperation(String label, IUndoContext undoContext,
+       public MoveTaxon(String label, IUndoContext undoContext,
                        Set<TaxonNode> taxonNodes, ITreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
 
similarity index 88%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SaveClassificationOperation.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateClassification.java
index 5cb7a5597b35bffb13462c26ae1995dd3bb71d8b..9bebe148fdd863006674c011d207f4c8f4e4151c 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.navigation.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -20,6 +20,8 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
 import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -29,7 +31,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 23.06.2009
  * @version 1.0
  */
-public class SaveClassificationOperation extends AbstractPersistentPostOperation {
+public class CreateClassification extends AbstractPersistentPostOperation {
 
        private Classification classification;
        
@@ -39,10 +41,10 @@ public class SaveClassificationOperation extends AbstractPersistentPostOperation
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param classification a {@link eu.etaxonomy.cdm.model.taxon.TaxonomicTree} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
-       public SaveClassificationOperation(String label, IUndoContext undoContext, Classification classification,
+       public CreateClassification(String label, IUndoContext undoContext, Classification classification,
                        IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreatePolytomousKey.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreatePolytomousKey.java
new file mode 100644 (file)
index 0000000..210f59d
--- /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.navigation.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 2, 2010
+ * @version 1.0
+ */
+public class CreatePolytomousKey extends AbstractPersistentPostOperation {
+
+       private PolytomousKey key;
+
+       /**
+        * @param label
+        * @param undoContext
+        * @param postOperationEnabled
+        * @param conversationEnabled
+        */
+       public CreatePolytomousKey(String label,
+                       IUndoContext undoContext,
+                       PolytomousKey key,
+                       IPostOperationEnabled postOperationEnabled,
+                       IConversationEnabled conversationEnabled) {
+               super(label, undoContext, postOperationEnabled, conversationEnabled);
+               this.key = key;
+       }
+
+       /* (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 {
+               bind();
+               monitor.worked(20);
+               CdmStore.getPolytomousKeyService().saveOrUpdate(key);
+               monitor.worked(40);
+               
+               return postExecute(key);
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+}
similarity index 89%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonNodeOperation.java
rename to taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java
index 931e233c69091ddab0ee2c655e0be142867519ee..1ff9afee6a96a57080589672be4ed67a7fae33d2 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.navigation.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -22,6 +22,8 @@ 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.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
@@ -32,7 +34,7 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @created 08.05.2009
  * @version 1.0
  */
-public class CreateTaxonNodeOperation extends AbstractPersistentPostOperation {
+public class CreateTaxonNode extends AbstractPersistentPostOperation {
        
        private Taxon newTaxon;
        
@@ -44,11 +46,11 @@ public class CreateTaxonNodeOperation extends AbstractPersistentPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param name a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
-       public CreateTaxonNodeOperation(String label, IUndoContext undoContext,
+       public CreateTaxonNode(String label, IUndoContext undoContext,
                        ITreeNode parentNode, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
                super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled);
@@ -62,11 +64,11 @@ public class CreateTaxonNodeOperation extends AbstractPersistentPostOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
-       public CreateTaxonNodeOperation(String label, IUndoContext undoContext,
+       public CreateTaxonNode(String label, IUndoContext undoContext,
                        ITreeNode parentNode, Taxon taxon, IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
                super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled);
index beebcc7bcdcacc1829b9552f0b0cc79c2d107770..786396f29273bc4e6e3d252e3cb579891aaa9dc8 100644 (file)
@@ -23,9 +23,9 @@ import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operations.SaveClassificationOperation;
+import eu.etaxonomy.taxeditor.navigation.operation.CreateClassification;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -88,7 +88,7 @@ public class ClassificationWizard extends Wizard implements INewWizard, IPostOpe
                TaxonNavigator taxonNavigator;
                taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
                
-               AbstractPostOperation operation = new SaveClassificationOperation("Save Classification", 
+               AbstractPostOperation operation = new CreateClassification("Save Classification", 
                                NavigationUtil.getUndoContext(), page.getClassification(), this, this);
                NavigationUtil.executeOperation(operation);
                
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewPolytomousKeyWizard.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/NewPolytomousKeyWizard.java
new file mode 100644 (file)
index 0000000..b3adf4a
--- /dev/null
@@ -0,0 +1,46 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.wizard;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.navigation.operation.CreatePolytomousKey;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class NewPolytomousKeyWizard extends AbstractNewEntityWizard<PolytomousKey> {
+
+       @Override
+       public void addPages() {
+               PolytomousKeyWizardPage page = new PolytomousKeyWizardPage(formFactory, getConversationHolder(), entity);
+               super.addPage(page);
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#saveEntity()
+        */
+       @Override
+       protected void saveEntity() {
+               AbstractPostOperation operation = new CreatePolytomousKey(
+                               "Create Polytomous Key",
+                               EditorUtil.getUndoContext(), 
+                               getEntity(), 
+                               null,
+                               this);
+               EditorUtil.executeOperation(operation);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
+        */
+       @Override
+       protected PolytomousKey createNewEntity() {
+               return PolytomousKey.NewInstance();
+       }
+
+}
index 2c962dfa6d55c355a05a98d4f484eb462a8e0da9..12373d9d86b410c45a77c9b74faf8030a13d77a0 100644 (file)
@@ -18,9 +18,9 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateTaxonNodeOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.navigation.operation.CreateTaxonNode;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -91,7 +91,7 @@ public class NewTaxonNodeWizard extends Wizard implements INewWizard, IPostOpera
                if(page.getTaxon() == null || page.getTaxon().getName().getFullTitleCache().length() == 0){
                        openEmptyEditor = true;
                }else{                  
-                       AbstractPostOperation operation = new CreateTaxonNodeOperation("Create Taxon", 
+                       AbstractPostOperation operation = new CreateTaxonNode("Create Taxon", 
                                        NavigationUtil.getUndoContext(), page.getParentTreeNode(), page.getTaxon(), this, this);
                        NavigationUtil.executeOperation(operation);
                }
diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/PolytomousKeyWizardPage.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/wizard/PolytomousKeyWizardPage.java
new file mode 100644 (file)
index 0000000..c6682ad
--- /dev/null
@@ -0,0 +1,34 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.wizard;
+
+import org.eclipse.swt.SWT;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.section.key.PolytomousKeyDetailElement;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class PolytomousKeyWizardPage extends AbstractCdmEntityWizardPage<PolytomousKey> {
+
+       public PolytomousKeyWizardPage(CdmFormFactory formFactory,
+                       ConversationHolder conversation, PolytomousKey entity) {
+               super(formFactory, conversation, entity);
+       }
+
+       @Override
+       public AbstractCdmDetailElement createElement(ICdmFormElement rootElement) {
+               PolytomousKeyDetailElement element = (PolytomousKeyDetailElement) formFactory.createCdmDetailElement(DetailType.POLYTOMOUS_KEY, rootElement, SWT.NULL);
+               element.setEntity(entity);
+               return element;
+       }
+}
index 35ba1d2ac499127c4d4f15a76d4dfbf69c08a199..d498fbfabed636fc3e62362cc5caabe9c5796b06 100644 (file)
@@ -23,7 +23,7 @@ Export-Package: dbscripts,
  eu.etaxonomy.taxeditor.labels,
  eu.etaxonomy.taxeditor.model;uses:="eu.etaxonomy.cdm.model.common,eu.etaxonomy.cdm.model.name,eu.etaxonomy.cdm.model.taxon",
  eu.etaxonomy.taxeditor.newWizards,
- eu.etaxonomy.taxeditor.operations,
+ eu.etaxonomy.taxeditor.operation,
  eu.etaxonomy.taxeditor.parser,
  eu.etaxonomy.taxeditor.preference,
  eu.etaxonomy.taxeditor.preference.matching,
index d089f55b0383b0eef5accfe3f8c3609f7e8be0a9..64f3642665d653df1d1241259f823ceededce68f 100644 (file)
             name="Specimen Type Designation Status">
       </page>
       <page
-            category="eu.etaxonomy.taxeditor.preferences.description"
+            category="eu.etaxonomy.taxeditor.preferences.language"
             class="eu.etaxonomy.taxeditor.preference.menu.LanguageMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.languages"
-            name="Languages">
+            name="Available Languages">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.taxonomic"
             id="eu.etaxonomy.taxeditor.preferences.defaultFeatureTreePreferenecs"
             name="Default Feature Trees">
       </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.general"
+            class="eu.etaxonomy.taxeditor.preference.LanguagePreferencePage"
+            id="eu.etaxonomy.taxeditor.preferences.language"
+            name="Language">
+      </page>
    </extension>
    <extension
          point="org.eclipse.ui.views">
       </view>
       <view  
                        name="Progress View"  
-                       icon="icons/pview.gif"  
                        category="org.eclipse.ui"  
                        class="org.eclipse.ui.ExtensionFactory:progressView"  
                        id="org.eclipse.ui.views.ProgressView">  
                </view>
                <view  
-                       name="Error View"  
-                       icon="icons/pview.gif"  
+                       name="Message View"  
+                       icon="icons/console.gif"  
                        category="org.eclipse.ui"  
                        class="org.eclipse.ui.ExtensionFactory:logView"  
                        id="org.eclipse.ui.views.LogView">  
             </command>
             <command
                   commandId="eu.etaxonomy.taxeditor.store.operations.showErrorView"
-                  label="Error"
+                  label="Messages"
                   style="push">
             </command>
          </menu>
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java
new file mode 100644 (file)
index 0000000..bd11aa2
--- /dev/null
@@ -0,0 +1,23 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.identificationkey;
+
+import org.eclipse.jface.wizard.Wizard;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public class AbstractIdentificaitonKeyWizard extends Wizard {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.wizard.Wizard#performFinish()
+        */
+       @Override
+       public boolean performFinish() {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
+}
index a995b5e1fd865e6494ee275b23615654bbe5d921..484e1b537be932be48b285e8b201be85d1c99e44 100644 (file)
@@ -27,7 +27,7 @@ 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.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
index 098eee789b7cdb04f2a2ccbac058fce5bd9c96cc..362a406f088a49d991ee0c7a95da806f4c04a674 100644 (file)
@@ -47,8 +47,8 @@ import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
 import org.eclipse.ui.themes.ITheme;
 import org.eclipse.ui.themes.IThemeManager;
 
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
@@ -305,7 +305,7 @@ public abstract class AbstractUtility {
        /**
         * <p>executeOperation</p>
         *
-        * @param operation a {@link eu.etaxonomy.taxeditor.operations.AbstractPostOperation} object.
+        * @param operation a {@link eu.etaxonomy.taxeditor.operation.AbstractPostOperation} object.
         * @return a {@link org.eclipse.core.runtime.IStatus} object.
         */
        public static IStatus executeOperation(final AbstractPostOperation operation){
index 4cbdd2abb8d5a7eec83a48c92b2954b56ee0a2db..caa39cb90fdf3b6a4e553d7c07496848d30cfa5d 100644 (file)
@@ -221,7 +221,10 @@ public class DescriptionHelper {
         * @return a {@link java.lang.String} object.
         */
        public static String getFeatureNodeContainerText(FeatureNodeContainer element) {
-               return element.getFeatureNode().getFeature().getLabel(CdmStore.getDefaultLanguage());
+               if(element.getFeatureNode() != null && element.getFeatureNode().getFeature() != null){
+                       return element.getFeatureNode().getFeature().getLabel(CdmStore.getDefaultLanguage());
+               }
+               return "No label set";
        }
 
        /**
@@ -270,18 +273,10 @@ public class DescriptionHelper {
                
                NamedArea area = distribution.getArea();
                if(area != null){
-                       PresenceAbsenceTermBase<?> status = distribution.getStatus();
                        
-                       text = area.getLabel();
-                       if (text == null || "".equals(text.trim())) {
-                               text = area.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel();
-                               if (text == null || "".equals(text.trim())) {
-                                       text = area.getRepresentation(Language.DEFAULT()).getText();
-                                       if (text == null || "".equals(text.trim())) {
-                                               text = "EMPTY";
-                                       }
-                               }
-                       }
+                       text = NamedArea.labelWithLevel(area, CdmStore.getDefaultLanguage());
+                       
+                       PresenceAbsenceTermBase<?> status = distribution.getStatus();
                        
                        if (status != null) {
                                text += ", " + status.getLabel();
@@ -326,10 +321,13 @@ public class DescriptionHelper {
                                        text += " [ " + source.getNameUsedInSource().getTitleCache() + " ]";
                                }
                        }
+                       if(CdmUtils.isEmpty(text)){
+                               text = "No sources provided";
+                       }
                }else{
                        text = element.getText(CdmStore.getDefaultLanguage());
                }
-               return text == null ? "No text provided" : text;
+               return CdmUtils.isEmpty(text) ? "No text provided" : text;
        }
        
        /**
index b6fb9994e701b0b7fe7794b22442ebe1fbfdadae..108befda7a077f3bc579e02befe09fb8c600e883 100644 (file)
@@ -13,19 +13,10 @@ package eu.etaxonomy.taxeditor.model;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
-
-import org.joda.time.DateTime;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
@@ -46,55 +37,27 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
  * @created Sep 20, 2010
  * @version 1.0
  */
-public class FeatureNodeContainer implements IAnnotatableEntity{
+public class FeatureNodeContainer{
+       
        
-       /** Constant <code>comparator</code> */
-       public static Comparator<DescriptionElementBase> comparator = new Comparator<DescriptionElementBase>() {
-
-               @Override
-               public int compare(DescriptionElementBase o1, DescriptionElementBase o2) {
-                       return DescriptionHelper.getLabel(o1).compareTo(DescriptionHelper.getLabel(o2));
-               }
-       };
        
+       private FeatureNodeContainer parent;
+       
+
+
        private FeatureNode featureNode;
        private List<FeatureNodeContainer> children = new ArrayList<FeatureNodeContainer>();
        private List<DescriptionElementBase> descriptionElements = new ArrayList<DescriptionElementBase>();
 
+       private FeatureNodeContainerTree containerTree;
 
-       private DescriptionBase description;
        
        /**
         * @param description
         */
-       private FeatureNodeContainer(DescriptionBase description) {
-               this.description = description; 
-       }
-
-
-       /**
-        * Traverses the given {@link FeatureNode} and computes a FeatureNodeContainer branch if the
-        * given {@link TaxonDescription} has elements for the given feature node or any of its children
-        * or null if there are no elements.
-        *
-        * @param description a {@link eu.etaxonomy.cdm.model.description.DescriptionBase} object.
-        * @param featureTree a {@link eu.etaxonomy.cdm.model.description.FeatureTree} object.
-        * @return a {@link eu.etaxonomy.taxeditor.model.FeatureNodeContainer} object.
-        */
-       public static FeatureNodeContainer CreateTree(FeatureTree featureTree, DescriptionBase description){
-               
-               List<FeatureNode> children = featureTree.getRootChildren();
-               
-               FeatureNodeContainer root = new FeatureNodeContainer(description);
-               
-               for(FeatureNode featureNode : children){
-                       FeatureNodeContainer branch = findLeaves(featureNode, description);
-                       if(branch != null){
-                               root.addChild(branch);
-                       }
-               }
-               
-               return root;
+       protected FeatureNodeContainer(FeatureNodeContainerTree containerTree) {
+               this.containerTree = containerTree; 
+               this.containerTree.addContainer(this);
        }
        
        
@@ -105,52 +68,90 @@ public class FeatureNodeContainer implements IAnnotatableEntity{
         * @param description 
         * @return
         */
-       private static FeatureNodeContainer findLeaves(FeatureNode featureNode, DescriptionBase description) {
+       protected void findLeaves(FeatureNode featureNode) {
                if(featureNode.isLeaf()){
-                       return buildLeaf(featureNode, description);
+                       buildLeaf(featureNode);
                }else{
                        for(FeatureNode childNode : featureNode.getChildren()){
-                               return findLeaves(childNode, description);
+                               findLeaves(childNode);
                        }
                }
-               return null;
        }
        
-       private static FeatureNodeContainer buildLeaf(FeatureNode featureNode, DescriptionBase description){
-               List<DescriptionElementBase> elements = getDescriptionsElementsForFeature(description, featureNode.getFeature());
+       /**
+        * 
+        * @param featureNode
+        * @param description
+        * @return
+        */
+       private void buildLeaf(FeatureNode featureNode){
+               // get feature node container for the given feature
+               FeatureNodeContainer container = containerTree.getFeatureNodeContainerByFeature(featureNode.getFeature());
+               
+               // get description elements for the given feature
+               List<DescriptionElementBase> elements = containerTree.getDescriptionsElementsForFeature(featureNode.getFeature());
+               // no description elements, so we should also remove the feature node container
                if(elements.isEmpty()){
-                       return null;
-               }else{
-                       FeatureNodeContainer container = new FeatureNodeContainer(description);
-                       container.setFeatureNode(featureNode);
-                       container.setDescriptionElements(elements);
-                       
-                       return container.buildBranch(null);
+                       if(container != null){
+                               container.remove();
+                       }
+               }
+               // there are description elements
+               else{
+                       if(container == null){
+                               container = new FeatureNodeContainer(containerTree);
+                               container.setFeatureNode(featureNode);
+                               // build the branch up to root level
+                               container.buildBranch();
+                       }
+                       // add description elements to the feature node container
+                       container.setDescriptionElements(elements);             
                }
        }
        
-       private FeatureNodeContainer buildBranch(Map<FeatureNode, FeatureNodeContainer> featureNodeMap){                
-               FeatureNode parentFeatureNode = getFeatureNode().getParent();
-               
-               if(parentFeatureNode != null && parentFeatureNode.getFeature() != null){
-                       if(featureNodeMap == null){
-                               featureNodeMap = new HashMap<FeatureNode, FeatureNodeContainer>(); 
+       /**
+        * 
+        */
+       private void remove() {
+               if(getParent() != null){
+                       if(getParent().getChildren().size() == 1){
+                               getParent().remove();
                        }
+                       getParent().removeChild(this);
+               }
+       }
+
+
+       /**
+        * @param featureNodeContainer
+        */
+       private void removeChild(FeatureNodeContainer featureNodeContainer) {
+               children.remove(featureNodeContainer);
+       }
+
+
+       /**
+        * Recursively 
+        * 
+        * @param featureNodeMap
+        * @return
+        */
+       private void buildBranch(){     
+               if(getParent() == null){
+                       FeatureNode parentFeatureNode = getFeatureNode().getParent();
                        
-                       // reuse parent container if it exists
-                       FeatureNodeContainer parentContainer = featureNodeMap.get(parentFeatureNode);
-                       // create a new container if necessary
-                       if(parentContainer == null){
-                               parentContainer = new FeatureNodeContainer(getDescription());
+                       if(parentFeatureNode.isRoot()){
+                               containerTree.getRoot().addChild(this);
+                       }else{
+                               FeatureNodeContainer parentContainer = new FeatureNodeContainer(containerTree);
                                parentContainer.setFeatureNode(parentFeatureNode);
-                               featureNodeMap.put(parentFeatureNode, parentContainer);
+                               
+                               parentContainer.addChild(this);
+                               
+                               parentContainer.buildBranch();
+                               
                        }
-                       
-                       parentContainer.addChild(this);
-                       
-                       return parentContainer.buildBranch(featureNodeMap);
                }
-               return this;
        }
        
        /**
@@ -185,6 +186,7 @@ public class FeatureNodeContainer implements IAnnotatableEntity{
        public void addChild(FeatureNodeContainer container){
                if(descriptionElements.isEmpty()){
                        children.add(container);
+                       container.setParent(this);
                }else{
                        throw new IllegalStateException("Container may not have a description element set when adding children.");
                }
@@ -229,57 +231,7 @@ public class FeatureNodeContainer implements IAnnotatableEntity{
                return descriptionElements;
        }
        
-       /**
-        * @param descriptionElement
-        * @return
-        */
-       public FeatureNodeContainer processDescriptionElement(
-                       DescriptionElementBase descriptionElement) {
-               FeatureNodeContainer container = getFeatureNodeContainerForDescriptionElement(descriptionElement);
-               if(container != null){
-                       container.removeDescriptionElement(descriptionElement);
-               }else{
-                       container = getFeatureNodeContainerByFeature(descriptionElement.getFeature());
-                       if(container != null){
-                               container.addDescriptionElement(descriptionElement);
-                       }
-               }
-               return container;
-       }
-
-       /**
-        * @param feature
-        * @return
-        */
-       public FeatureNodeContainer getFeatureNodeContainerByFeature(Feature feature) {         
-               List<FeatureNodeContainer> leafs = getLeafs();
-               
-               for(FeatureNodeContainer container : leafs){
-                       if(container.getFeature().equals(feature)){
-                               return container;
-                       }
-               }
-               return null;
-       }
-       
-       /**
-        * <p>getFeatureNodeContainerForDescriptionElement</p>
-        *
-        * @param descriptionElement a {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase} object.
-        * @return a {@link eu.etaxonomy.taxeditor.model.FeatureNodeContainer} object.
-        */
-       public FeatureNodeContainer getFeatureNodeContainerForDescriptionElement (DescriptionElementBase descriptionElement) {
-               List<FeatureNodeContainer> leafs = getLeafs();
-               
-               for(FeatureNodeContainer container : leafs){
-                       if(container.getDescriptionElements().contains(descriptionElement)){
-                               return container;
-                       }
-               }
-               return null;
-       }
-       
-       private List<FeatureNodeContainer> getLeafs(){
+       protected List<FeatureNodeContainer> getLeafs(){
                List<FeatureNodeContainer> leafs = new ArrayList<FeatureNodeContainer>();
                
                if(isLeaf()){
@@ -315,28 +267,6 @@ public class FeatureNodeContainer implements IAnnotatableEntity{
                return ! descriptionElements.isEmpty() && children.isEmpty();
        }
        
-       private static List<DescriptionElementBase> getDescriptionsElementsForFeature(
-                       DescriptionBase description, Feature feature) {
-               List<DescriptionElementBase> featureElements = new ArrayList<DescriptionElementBase>();
-               
-               Set<DescriptionElementBase> elements = description.getElements();
-               if (elements != null) {
-                       for (DescriptionElementBase element : elements) {
-                               Feature elementFeature = (Feature) HibernateProxyHelper.deproxy(element.getFeature());
-                               
-                               if (feature.equals(elementFeature)) {
-                                       featureElements.add(element);
-                               }
-                       }
-               }
-               
-               if(featureElements.size() != 0){
-                       Collections.sort(featureElements, comparator);
-               }
-               
-               return featureElements;
-       }
-       
        /**
         * <p>Setter for the field <code>featureNode</code>.</p>
         *
@@ -361,7 +291,10 @@ public class FeatureNodeContainer implements IAnnotatableEntity{
         * @return a {@link eu.etaxonomy.cdm.model.description.Feature} object.
         */
        public Feature getFeature(){
-               return featureNode.getFeature();
+               if(featureNode != null){
+                       return featureNode.getFeature();
+               }
+               return null;
        }
 
        /**
@@ -370,83 +303,42 @@ public class FeatureNodeContainer implements IAnnotatableEntity{
         * @return a {@link eu.etaxonomy.cdm.model.description.DescriptionBase} object.
         */
        public DescriptionBase getDescription(){
-               return description;
+               return containerTree.getDescription();
        }
        
-       /**
-        * {@inheritDoc}
-        *
-        ************** NOT USED ****************
-        */
-       @Override
-       public User getUpdatedBy() {return null;}
-
-       /** {@inheritDoc} */
-       @Override
-       public void setUpdatedBy(User updatedBy) {}
-
-       /** {@inheritDoc} */
-       @Override
-       public DateTime getUpdated() {return null;}
-
-       /** {@inheritDoc} */
-       @Override
-       public void setUpdated(DateTime updated) {}
-
-       /** {@inheritDoc} */
-       @Override
-       public int getId() {return 0;}
-
-       /** {@inheritDoc} */
-       @Override
-       public void setId(int id) {}
-
-       /** {@inheritDoc} */
-       @Override
-       public UUID getUuid() {return null;}
-
-       /** {@inheritDoc} */
-       @Override
-       public void setUuid(UUID uuid) {}
-
-       /** {@inheritDoc} */
-       @Override
-       public DateTime getCreated() {return null;}
-
-       /** {@inheritDoc} */
-       @Override
-       public void setCreated(DateTime created) {}
-
-       /** {@inheritDoc} */
-       @Override
-       public User getCreatedBy() {return null;}
-
-       /** {@inheritDoc} */
-       @Override
-       public void setCreatedBy(User createdBy) {}
+       public FeatureNodeContainerTree getContainerTree(){
+               return containerTree;
+       }
 
-       /** {@inheritDoc} */
-       @Override
-       public Set<Annotation> getAnnotations() {return null;}
 
-       /** {@inheritDoc} */
-       @Override
-       public void addAnnotation(Annotation annotation) {}
+       /**
+        * 
+        */
+       public void clear() {
+               children.clear();
+               descriptionElements.clear();
+       }
 
-       /** {@inheritDoc} */
-       @Override
-       public void removeAnnotation(Annotation annotation) {}
 
-       /** {@inheritDoc} */
-       @Override
-       public Set<Marker> getMarkers() { return null; }
+       /**
+        * @return
+        */
+       public boolean isEmpty() {
+               return children.isEmpty() && descriptionElements.isEmpty();
+       }
 
-       /** {@inheritDoc} */
-       @Override
-       public void addMarker(Marker marker) {}
+       /**
+        * @return the parent
+        */
+       public FeatureNodeContainer getParent() {
+               return parent;
+       }
 
-       /** {@inheritDoc} */
-       @Override
-       public void removeMarker(Marker marker) {}
 
+       /**
+        * @param parent the parent to set
+        */
+       public void setParent(FeatureNodeContainer parent) {
+               this.parent = parent;
+       }
 }
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainerTree.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainerTree.java
new file mode 100644 (file)
index 0000000..d7fb13f
--- /dev/null
@@ -0,0 +1,158 @@
+// $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.model;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.FeatureNode;
+import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 2, 2010
+ * @version 1.0
+ */
+public class FeatureNodeContainerTree {
+
+       /** Constant <code>comparator</code> */
+       // TODO we will do this with a ViewerSorter
+       public static Comparator<DescriptionElementBase> comparator = new Comparator<DescriptionElementBase>() {
+
+               @Override
+               public int compare(DescriptionElementBase o1, DescriptionElementBase o2) {
+                       return DescriptionHelper.getLabel(o1).compareTo(DescriptionHelper.getLabel(o2));
+               }
+       };
+       
+       private Set<FeatureNodeContainer> featureNodeContainers = new HashSet<FeatureNodeContainer>();
+       
+       private FeatureNodeContainer root;
+       private DescriptionBase description;
+       private FeatureTree featureTree;
+       
+       public FeatureNodeContainerTree(DescriptionBase description, FeatureTree featureTree){
+               this.description = description;
+               this.featureTree = featureTree;
+               
+               root = new FeatureNodeContainer(this);
+               
+               buildTree();
+       }
+       
+       /**
+        * Traverses the given {@link FeatureNode} and computes a FeatureNodeContainer branch if the
+        * given {@link TaxonDescription} has elements for the given feature node or any of its children
+        * or null if there are no elements.
+        */
+       public void buildTree(){
+               List<FeatureNode> children = featureTree.getRootChildren();
+               
+//             if(description.getElements().isEmpty()){
+//                     return;
+//             }
+               
+               for(FeatureNode featureNode : children){
+                       root.findLeaves(featureNode);
+               }
+       }
+       
+       /**
+        * <p>getFeatureNodeContainerForDescriptionElement</p>
+        *
+        * @param descriptionElement a {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase} object.
+        * @return a {@link eu.etaxonomy.taxeditor.model.FeatureNodeContainer} object.
+        */
+       public FeatureNodeContainer getFeatureNodeContainerForDescriptionElement (DescriptionElementBase descriptionElement) {
+               List<FeatureNodeContainer> leafs = root.getLeafs();
+               
+               for(FeatureNodeContainer container : leafs){
+                       if(container.getDescriptionElements().contains(descriptionElement)){
+                               return container;
+                       }
+               }
+               return null;
+       }
+       
+       /**
+        * Returns all elements contained in the given {@link DescriptionBase description} that have the given {@link Feature feature}.
+        * 
+        * @param description
+        * @param feature
+        * @return a list of description elements with the given feature alphabetically sorted by {@link DescriptionHelper#getLabel(Object)}
+        */
+       public List<DescriptionElementBase> getDescriptionsElementsForFeature(Feature feature) {
+               List<DescriptionElementBase> featureElements = new ArrayList<DescriptionElementBase>();
+               
+               Set<DescriptionElementBase> elements = description.getElements();
+               
+               if (elements != null) {
+                       for (DescriptionElementBase element : elements) {
+                               Feature elementFeature = (Feature) HibernateProxyHelper.deproxy(element.getFeature());
+                               
+                               if (feature.equals(elementFeature)) {
+                                       featureElements.add(element);
+                               }
+                       }
+               }
+               
+               if(featureElements.size() != 0){
+                       Collections.sort(featureElements, comparator);
+               }
+               
+               return featureElements;
+       }
+       
+       
+       public FeatureNodeContainer getFeatureNodeContainerByFeature(Feature feature) {         
+               List<FeatureNodeContainer> leafs = root.getLeafs();
+               
+               for(FeatureNodeContainer container : leafs){
+                       if(container.getFeature().equals(feature)){
+                               return container;
+                       }
+               }
+               return null;
+       }
+       
+       public void addContainer(FeatureNodeContainer container){
+               featureNodeContainers.add(container);
+       }
+
+       /**
+        * 
+        */
+       public void removeContainer(FeatureNodeContainer container) {
+               featureNodeContainers.remove(container);
+       }
+       
+       public FeatureNodeContainer getRoot() {
+               return root;
+       }
+
+       public DescriptionBase getDescription() {
+               return description;
+       }
+
+       public FeatureTree getFeatureTree() {
+               return featureTree;
+       }
+       
+}
similarity index 96%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPersistentPostOperation.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPersistentPostOperation.java
index a6946b66c48c6c27363ae552a82d86838df2c1b5..ad9a0a9ab0ae7a256dec9b359d49b604a3229cc3 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.operation;
 
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.Assert;
@@ -40,7 +40,7 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostOperat
         *
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        protected AbstractPersistentPostOperation(String label, IUndoContext undoContext,
@@ -56,7 +56,7 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostOperat
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public AbstractPersistentPostOperation(String label,
@@ -72,7 +72,7 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostOperat
         *
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
         */
similarity index 94%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPostOperation.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostOperation.java
index 0df8a6309884d114b0c2d53e32cf2498d7ba7597..2a5e8b381ffad43cb0b8ea76c8acc988d903e3db 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.operation;
 
 import java.util.UUID;
 
@@ -78,7 +78,7 @@ public abstract class AbstractPostOperation extends AbstractOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public AbstractPostOperation(String label, IUndoContext undoContext,
                        Taxon taxon, IPostOperationEnabled postOperationEnabled) {
@@ -92,7 +92,7 @@ public abstract class AbstractPostOperation extends AbstractOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public AbstractPostOperation(String label, IUndoContext undoContext, TaxonNode taxonNode, IPostOperationEnabled postOperationEnabled){
                this(label, undoContext, taxonNode.getTaxon(), postOperationEnabled);
@@ -105,7 +105,7 @@ public abstract class AbstractPostOperation extends AbstractOperation {
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param parentNodeUuid a {@link java.util.UUID} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public AbstractPostOperation(String label, IUndoContext undoContext, UUID parentNodeUuid, IPostOperationEnabled postOperationEnabled){
                this(label, undoContext);
@@ -119,7 +119,7 @@ public abstract class AbstractPostOperation extends AbstractOperation {
         *
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public AbstractPostOperation(String label, IUndoContext undoContext,
                        IPostOperationEnabled postOperationEnabled) {
@@ -145,7 +145,7 @@ public abstract class AbstractPostOperation extends AbstractOperation {
        /**
         * <p>Getter for the field <code>postOperationEnabled</code>.</p>
         *
-        * @return a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @return a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public IPostOperationEnabled getPostOperationEnabled() {
                return postOperationEnabled;
similarity index 96%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/IPostOperationEnabled.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operation/IPostOperationEnabled.java
index 06ddf00c87c644a4e6be3b5f9875600e5f9fb8bb..53de39b35849440e649fd64da862a4c4ec2e2465 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.operation;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
 
index 34de20ceca077d31e2b9ceebb23614f59370ba0d..a4acc6587355dee502a573009214355a91534704 100644 (file)
@@ -87,4 +87,9 @@ public interface IPreferenceKeys {
        
        /** Constant <code>SORT_RANKS_HIERARCHICHALLY="eu.etaxonomy.taxeditor.menus.sortRanksH"{trunked}</code> */
        public static final String SORT_RANKS_HIERARCHICHALLY = "eu.etaxonomy.taxeditor.menus.sortRanksHierarchichally";
+       
+       /**
+        * Whether multilanguage text fields should be editable in multiple languages.
+        */
+       public static final String MULTILANGUAGE_TEXT_EDITING_CAPABILITY = "eu.etaxonomy.taxeditor.capability.edit.mulitlanugageText";
 }
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java
new file mode 100644 (file)
index 0000000..9607a0c
--- /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.preference;
+
+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.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+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;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 3, 2010
+ * @version 1.0
+ */
+public class LanguagePreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
+
+       private boolean isMultilanguageTextEditingCapability;
+       
+       private Composite createComposite(Composite parent){
+               Composite composite = new Composite(parent, SWT.NULL);
+               composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
+               composite.setLayout(new RowLayout(SWT.HORIZONTAL));
+               return composite;
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
+        */
+       @Override
+       protected Control createContents(Composite parent) {
+               Composite container = new Composite(parent, SWT.NULL);
+               final GridLayout gridLayout = new GridLayout();
+               container.setLayout(gridLayout);
+               
+               createSetMultiLanguageTextEditingCapability(container);
+               
+               return container;
+               
+               
+       }
+
+       /**
+        * 
+        */
+       private void createSetMultiLanguageTextEditingCapability(Composite parent) {
+               isMultilanguageTextEditingCapability = getPreferenceStore().getBoolean(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
+               
+               final Composite composite = createComposite(parent);
+               
+               final Button button_toggle = new Button(composite, SWT.CHECK);          
+               
+               
+               button_toggle.setText("Enable Multiple Language Editing Capability");
+               
+               button_toggle.setSelection(isMultilanguageTextEditingCapability);
+               
+               
+               button_toggle.addSelectionListener(new SelectionAdapter(){
+                       /* (non-Javadoc)
+                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+                        */
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               isMultilanguageTextEditingCapability = button_toggle.getSelection();
+                       }
+               });
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+        */
+       @Override
+       public void init(IWorkbench workbench) {
+               setPreferenceStore(PreferencesUtil.getPreferenceStore());
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.preference.PreferencePage#performOk()
+        */
+       @Override
+       public boolean performOk() {
+               getPreferenceStore().setValue(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY, isMultilanguageTextEditingCapability);
+               
+               return super.performOk();
+       }
+}
index 4ed11ff14ec0982ae478e4c9c363f83325cd9305..d064c9f9830151c1d461cb843a575e7b476ab44b 100644 (file)
@@ -77,6 +77,7 @@ public class PreferencesUtil implements IPreferenceKeys{
         * 
         */
        public static final String PREFERRED_TERMS_CHANGE = "preferred_terms";
+       
 
        
        /**
@@ -628,4 +629,8 @@ public class PreferencesUtil implements IPreferenceKeys{
        public static boolean getSortRanksHierarchichally(){
                return getPreferenceStore().getBoolean(SORT_RANKS_HIERARCHICHALLY);
        }
+
+       public static boolean isMultilanguageTextEditingCapability() {
+               return getPreferenceStore().getBoolean(MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
+       }
 }
index 38a9145c4ceb6d288fa2325615f7bac12ba285df..4bd79642c8a79c46f7d735dec255a18ce85ef5ad 100644 (file)
@@ -33,6 +33,7 @@ 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;
@@ -498,6 +499,13 @@ public class CdmStore{
         */
        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>
         *
@@ -731,4 +739,5 @@ public class CdmStore{
                getClassificationService().saveOrUpdate(defaultClassification);
                conversation.commit(true);
        }
+
 }
index 50f7e4af5fd9b89568e07919e11551f315c80098..8bcbc5b60732dd87bf1367f6603be7ba4c6317c4 100644 (file)
@@ -172,7 +172,10 @@ public class ContextManager implements IWorkbenchListener{
                if (CdmStore.getDataSource() != null) {
                        
                        try {
-                               memento = XMLMemento.createWriteRoot(CdmStore.getDataSource().getName());
+                               String name = CdmStore.getDataSource().getName();
+                               name = name.trim();
+                               name = name.replace(" ", "_");
+                               memento = XMLMemento.createWriteRoot(name);
                        
                                StoreUtil.info("DataSource found. Memento created.");
                        } catch (Exception e) {
index a70231d14ef217d213f9e5a78143b9394dd6fb0f..85f71cd579bb08a95b550c1eb7c1c42d4a38e1bb 100644 (file)
@@ -18,9 +18,9 @@ import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.cdm.model.common.User;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.ToggleUserEnablementOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.user.operation.ToggleUserEnablementOperation;
 import eu.etaxonomy.taxeditor.user.view.UserManagerView;
 
 /**
similarity index 92%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateUserOperation.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/CreateUserOperation.java
index feca01cedc8df8b15768b400e5713211b07fa966..c51c1915923d07e9423df51c3c86d14c25fd7302 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.user.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -36,7 +38,7 @@ public class CreateUserOperation extends AbstractPersistentPostOperation {
         *
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         * @param user a {@link eu.etaxonomy.cdm.model.common.User} object.
         */
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/DeleteUserOperation.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/DeleteUserOperation.java
new file mode 100644 (file)
index 0000000..f1e0ee4
--- /dev/null
@@ -0,0 +1,82 @@
+// $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.user.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 2, 2010
+ * @version 1.0
+ */
+public class DeleteUserOperation extends AbstractPersistentPostOperation {
+
+       private User user;
+       
+       /**
+        * @param label
+        * @param undoContext
+        * @param postOperationEnabled
+        * @param conversationEnabled
+        */
+       protected DeleteUserOperation(String label, IUndoContext undoContext,
+                       IPostOperationEnabled postOperationEnabled, User user,
+                       IConversationEnabled conversationEnabled) {
+               super(label, undoContext, postOperationEnabled, conversationEnabled);
+               this.user = user;
+       }
+
+       
+       /* (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 {
+               bind();
+               monitor.worked(20);
+               CdmStore.getUserService().delete(user);
+               monitor.worked(40);
+
+               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 {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+        */
+       @Override
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+}
similarity index 92%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/EditUserOperation.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/EditUserOperation.java
index 1ef1aee0b63aac438b4aceda49e6e4400578267d..0fcfc6c35d7bca8a330048f4397adb03b074680e 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.user.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -36,7 +38,7 @@ public class EditUserOperation extends AbstractPersistentPostOperation {
         *
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         * @param user a {@link eu.etaxonomy.cdm.model.common.User} object.
         */
similarity index 92%
rename from taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/ToggleUserEnablementOperation.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/user/operation/ToggleUserEnablementOperation.java
index 0d409d65f4d1013b9e7626fb4da5b44c4e41b38c..09f3c74beeca833cf7dff42ad0e16beaf0dabfc0 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.operations;
+package eu.etaxonomy.taxeditor.user.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -36,7 +38,7 @@ public class ToggleUserEnablementOperation extends AbstractPersistentPostOperati
         *
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param user a {@link eu.etaxonomy.cdm.model.common.User} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
index 8c209d2c932f5988c51d5bfa216095f72e166f76..888b31c12c79b956ab2ce556b950c25d3352c71c 100644 (file)
@@ -36,7 +36,7 @@ import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
 import eu.etaxonomy.taxeditor.model.IContextListener;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
index 684a6aeeaaca2e2f62643e1f68528e93a27b7408..b1421dd4991c3cd40fa05d324c8518e85ddeb9b9 100644 (file)
@@ -14,10 +14,10 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.model.common.User;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.CreateUserOperation;
-import eu.etaxonomy.taxeditor.operations.EditUserOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.user.operation.CreateUserOperation;
+import eu.etaxonomy.taxeditor.user.operation.EditUserOperation;
 import eu.etaxonomy.taxeditor.user.view.UserManagerView;
 
 /**
index eeef5d33830fd167ba7bc5e1bea16a9727bc3832..47a468214316fad4640b6d6eccce2af659bcb52a 100644 (file)
@@ -15,8 +15,8 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.operations.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * @author n.hoffmann