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
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
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
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
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
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
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
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
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
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
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
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
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
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
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowErrorViewHandler.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowLoginWindowHandler.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowUserManagerViewHandler.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOHandler.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ExportHandler.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ImportHandler.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/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
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
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
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
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
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
if(PreferencesUtil.shouldConnectAtStartUp())
CdmStore.connect();
- automaticUpdate();
+// automaticUpdate();
}
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.
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,
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,
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
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>
/** {@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} */
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;
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.
protected static String getPluginId(){
return TaxeditorEditorPlugin.PLUGIN_ID;
}
+
+ public static void openPolytomousKey(UUID polytomousKeyUuid) throws Exception{
+ PolytomousKeyEditorInput input = PolytomousKeyEditorInput.NewInstance(polytomousKeyUuid);
+ open(input);
+ }
}
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>
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;
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;
/**
*
* @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";
/** {@inheritDoc} */
@Override
public void dispose() {
+ conversation.unregisterForDataStoreChanges(this);
conversation.close();
super.dispose();
- conversation.close();
}
/* (non-Javadoc)
// EditorUtil.showPropertySheet();
} catch (PartInitException e) {
- logger.error("Could not create MultiPageTaxonEditor.", e);
+ EditorUtil.error(getClass(), e);
}
}
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);
// setDirty(true);
dirty = true;
super.editorDirtyStateChanged();
+ TaxonNameEditor page = (TaxonNameEditor) getPage(Page.NAME);
+ page.getSelectedObject().refresh();
}
/**
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;
}
--- /dev/null
+/**
+ *
+ */
+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) {}
+
+}
--- /dev/null
+/**
+ *
+ */
+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);
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+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();
+ }
+}
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+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();
+ }
+}
--- /dev/null
+/**
+ *
+ */
+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);
+ }
+}
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+
+}
* @version 1.0
*/
public abstract class AbstractGroup<T extends TaxonBase> implements IDropTargetable{
- private static final Logger logger = Logger.getLogger(AbstractGroup.class);
private Composite control;
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;
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;
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;
* @version 1.0
*/
abstract public class AbstractGroupedContainer<T extends TaxonBase> {
- private static final Logger logger = Logger.getLogger(AbstractGroupedContainer.class);
/**
*
createListener();
isFreeTextEnabled();
-
- logger.trace(this.getClass().getSimpleName() + " created");
}
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));
- }
+// }
}
/**
*/
protected void initTextViewer() {
- showNameRelations();
+// showNameRelations();
String text = NameHelper.getDisplayNameWithRef(getData());
EditorUtil.executeOperation(new CreateSynonymInNewGroupOperation
("New Heterotypic Synonym", editor.getUndoContext(), editor.getTaxon(), synonymName, editor));
- logger.debug("new heterotypic synonym created through entering of line break");
}
/**
* Note: Will not parse the text and not calculate errors!
*/
public void refresh() {
- showNameRelations();
+// showNameRelations();
String text = NameHelper.getDisplayNameWithRef(getTaxonBase());
useReference = false;
}
} catch (ClassNotFoundException e) {
- logger.error("Class " + method + " could not be found: ", e);
+ EditorUtil.error(getClass(), e);
return false;
}
} else {
}
}
} 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;
*/
public void persistName(){
if(isDirty()){
- logger.warn("Found dirty composite: " + this + ". Name: " + getNameViewer().getTextWidget().getText());
getTaxonBase().setName(parseHandler.parseAndResolveDuplicates());
-
getTaxonBase().setTitleCache((getTaxonBase().generateTitle()));
-
}
}
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.");
}
}
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>
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;
/**
TaxonBase initiallySelectedTaxonBase = input.getInitiallySelectedTaxonBase();
AbstractGroupedContainer container = getContainerForData(initiallySelectedTaxonBase);
if(container != null){
- input.setInitiallySelectedTaxonBase(null);
+// input.setInitiallySelectedTaxonBase(null);
return container;
}
}else{
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>
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>
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>
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>
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>
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>
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;
/**
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;
/**
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;
/**
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;
/**
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;
/**
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>
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>
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>
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>
* 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;
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;
/**
*
* @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.
* 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;
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;
/**
* @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) {
* 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;
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;
/**
* @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,
* 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;
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.
* @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) {
* 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;
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>
* @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) {
* 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;
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;
* @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,
* 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;
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;
/**
* @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) {
* 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;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
/**
* <p>ChangeSynonymToHomotypicalGroupBasionymOperation class.</p>
* 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;
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;
/**
* @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) {
* 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;
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>
* @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
* 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;
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>
* @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);
* 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;
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>
* @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) {
* 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;
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>
* @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) {
* 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;
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;
/**
* @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,
* 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;
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>
* @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) {
* 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;
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>
* @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) {
* 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;
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>
* @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) {
* 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;
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>
* @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) {
* 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;
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;
* @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,
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;
*/
public abstract class AbstractNewEntityWizard<T extends IAnnotatableEntity> extends Wizard implements
INewWizard, IConversationEnabled {
- private static final Logger logger = Logger
- .getLogger(AbstractNewEntityWizard.class);
private ConversationHolder conversation;
protected T entity;
- private IWorkbench workbench;
-
protected IStructuredSelection selection;
/**
/** {@inheritDoc} */
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
- this.workbench = workbench;
this.selection = selection;
formFactory = new CdmFormFactory(Display.getCurrent(), null);
entity = createNewEntity();
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;
*/
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;
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;
* @version 1.0
*/
public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUnitBase> {
- private static final Logger logger = Logger
- .getLogger(NewDerivedUnitBaseWizard.class);
/** {@inheritDoc} */
@Override
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;
* @version 1.0
*/
public class NewNonViralNameWizard extends AbstractNewEntityWizard<NonViralName> {
- private static final Logger logger = Logger
- .getLogger(NewNonViralNameWizard.class);
/** {@inheritDoc} */
@Override
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;
* @version 1.0
*/
public class NewPersonWizard extends AbstractNewEntityWizard<Person> {
- private static final Logger logger = Logger
- .getLogger(NewPersonWizard.class);
/** {@inheritDoc} */
@Override
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;
* @version 1.0
*/
public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
- private static final Logger logger = Logger.getLogger(NewTeamWizard.class);
/** {@inheritDoc} */
@Override
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;
*/
public class TranslationMetaDataWizardPage extends WizardPage {
-
- private static final Logger logger = Logger
- .getLogger(TranslationMetaDataWizardPage.class);
private CdmFormFactory formFactory;
/**
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
-import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>TranslationWizard class.</p>
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;
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;
* @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;
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;
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;
* @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;
}
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){
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;
}
/**
* <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)
*/
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;
* @version $Id: $
*/
public class DescriptiveLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider {
- private static final Logger logger = Logger
- .getLogger(DescriptiveLabelProvider.class);
-
/** {@inheritDoc} */
public String getText(Object element) {
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;
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;
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;
private TreeViewer viewer;
- private Map<TaxonDescription, FeatureNodeContainer> featureNodeContainerCache = new HashMap<TaxonDescription, FeatureNodeContainer>();
+ private Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache = new HashMap<TaxonDescription, FeatureNodeContainerTree>();
private ToggleDescriptionAction showAllElementsAction;
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
* 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} */
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();
}
/** {@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);
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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);
+ }
+
+}
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>
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();
* 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;
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>
* @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)
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;
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;
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>
* @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)
*/
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);
}
}
}
} catch (NotDefinedException e) {
- logger.warn("Command name not set");
+ EditorUtil.warn(getClass(), "Command name not set.");
}
*/
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;
* @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";
private boolean isFeatureNodeContainer(Object[] selectedElements) {
for (Object object : selectedElements){
if(!(object instanceof FeatureNodeContainer)){
- logger.trace("Is not a feature node container");
return false;
}
}
|| (object instanceof FeatureNodeContainer)){
result = true;
}else{
- logger.trace("Is not deletable");
return false;
}
private boolean isDescriptionElement(Object[] selectedElements) {
for (Object object : selectedElements){
if(!(object instanceof DescriptionElementBase)){
- logger.trace("Is not a description element");
return false;
}
}
private boolean isDescription(Object[] selectedElements) {
for (Object object : selectedElements){
if(!(object instanceof DescriptionBase)){
- logger.trace("Is not a description");
return false;
}
}
private boolean isMedia(Object[] selectedElements) {
for (Object object : selectedElements){
if(!(object instanceof Media)){
- logger.trace("Is not media");
return false;
}
}
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;
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;
/**
* @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);
try {
handlerService.executeCommand(CreateDescriptionElementOperation.ID, event);
} catch (Exception e) {
- logger.error("Error executing command", e);
+ EditorUtil.error(getClass(), e);
}
}
});
* 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;
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>
* @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) {
* 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;
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>
* @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) {
* @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,
* 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;
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>
* @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) {
* @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,
* 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;
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;
/**
* @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) {
* 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;
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>
* @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) {
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;
*/
public class CdmSectionPart<T extends IVersionableEntity> extends SectionPart implements IPropertyChangeListener{
- private static final Logger logger = Logger
- .getLogger(CdmSectionPart.class);
-
private AbstractFormSection<T> formSection;
/**
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{
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;
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);
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>
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>
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){
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;
layout();
}
-
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.Viewer#getSelection()
*/
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);
addPart(nonViralNameSection);
addPart(nomenclaturalStatusSection);
addPart(protologSection);
- addPart(referenceBaseDetailSection);
+ addPart(referenceDetailSection);
addPart(typeDesignationSection);
addPart(parsingMessagesSection);
addPart(nameRelationshipSection);
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);
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);
private void createTeamDetailSection(RootElement parent){
destroySections();
- AbstractFormSection teamDetailSection =
+ TeamDetailSection teamDetailSection = (TeamDetailSection)
formFactory.createCdmDetailSection(DetailType.TEAM, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
addPart(teamDetailSection);
private void createPersonDetailSection(RootElement parent) {
destroySections();
- AbstractFormSection personDetailSection =
+ PersonDetailSection personDetailSection = (PersonDetailSection)
formFactory.createCdmDetailSection(DetailType.PERSON, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
addPart(personDetailSection);
}
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);
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);
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);
}
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);
}
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);
+ }
}
*/
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 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>
* @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)
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;
*/
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 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>
* @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)
EditorUtil.getUndoContext(), taxon, description, postOperationEnabled);
EditorUtil.executeOperation(operation);
} catch (NotDefinedException e) {
- logger.warn("Command name not set");
+ EditorUtil.warn(getClass(), "Command name not set.");
}
}
}
*/
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 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>
* @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)
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.");
}
}
}
* 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 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>
* @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)
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.");
}
}
}
* 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;
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>
* @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)
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.");
}
}
}
* 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;
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>
*
*
* @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.
*/
* 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;
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>
* @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) {
* @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) {
* 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;
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>
* @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;
* @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) {
* 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;
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;
/**
* @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,
* 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;
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>
* @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.
*/
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;
* @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";
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;
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;
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;
/**
* @version 1.0
*/
public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISelectionChangedListener {
- private static final Logger logger = Logger
- .getLogger(SupplementalDataViewer.class);
private enum VIEW_PART{
VersionableEntity,
}
private VIEW_PART currentViewPart;
-
- private DetailsViewer detailsViewer;
/**
Object input;
if(getInput() instanceof AbstractGroupedContainer){
- input = ((AbstractGroupedContainer) getInput()).getData();
+ input = ((AbstractGroupedContainer<?>) getInput()).getData();
}else{
input = getInput();
}
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);
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);
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);
/** {@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;
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;
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;
*
* @return a {@link eu.etaxonomy.taxeditor.forms.AbstractFormSection} object.
*/
- public AbstractFormSection getSection(){
+ public AbstractFormSection<ENTITY> getSection(){
return this;
}
/** {@inheritDoc} */
public void selectionChanged(SelectionChangedEvent event) {
- if(event.getSelection() == formFactory.EMPTY_SELECTION){
+ if(event.getSelection() == CdmFormFactory.EMPTY_SELECTION){
return;
}
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;
/**
*/
public class BrowserElement extends AbstractCdmFormElement implements ControlListener{
- private static final Logger logger = Logger.getLogger(BrowserElement.class);
-
private Browser browser;
private String imageUriString;
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;
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;
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;
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;
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;
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;
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;
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>
FEATURE_TREE,
CLASSIFICATION,
TAXON_NODE,
- COLLECTION
+ COLLECTION,
+ FEATURE,
+ POLYTOMOUS_KEY,
+ POLYTOMOUS_KEY_NODE
}
/**
FEATURE_DISTRIBUTION,
CLASSIFICATION,
TAXON_NODE,
- COLLECTION
+ COLLECTION,
+ POLYTOMOUS_KEY, POLYTOMOUS_KEY_NODE
}
/**
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;
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){
COLLECTING_AREA,
DETERMINATION_EVENT,
SPECIMEN_COLLECTION,
- IDENTIFIABLE_SOURCE_COLLECTION
+ IDENTIFIABLE_SOURCE_COLLECTION,
+ GEOGRAPHICAL_SCOPE,
+ SCOPE_RESTRICTION
}
/**
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);
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);
* @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);
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;
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;
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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;
+ }
+
+}
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;
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;
*/
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;
* @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();
}
package eu.etaxonomy.taxeditor.forms;
-import org.apache.log4j.Logger;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Label;
*/
public class LabelElement extends AbstractCdmFormElement {
- private static final Logger logger = Logger.getLogger(LabelElement.class);
private Label label;
/**
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;
/**
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);
}
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();
+ }
}
/**
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());
+ }
}
/**
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;
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);
}
package eu.etaxonomy.taxeditor.forms;
-import org.apache.log4j.Logger;
import org.eclipse.swt.graphics.Color;
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>
*
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;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Widget;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+
/**
* <p>SelectionArbitrator class.</p>
* @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>();
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){
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;
*/
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;
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;
* @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;
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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
+
+ }
+
+}
/** {@inheritDoc} */
@Override
protected String getTitle() {
- return (entity != null) ? entity.getRepresentation(CdmStore.getDefaultLanguage()).getLabel() : "";
+ return (entity != null) ? NamedArea.labelWithLevel(entity, CdmStore.getDefaultLanguage()) : "";
}
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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
+
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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
+
+ }
+
+}
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;
* @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;
* @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;
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;
@Override
public void handleEvent(Object eventSource) {
if(eventSource == multilanguageTextElement){
- getEntity().setMultilanguageText(multilanguageTextElement.getMultilanguageText());
+// getEntity().setMultiLanguageText(multilanguageTextElement.getMultilanguageText());
}
}
}
--- /dev/null
+/**
+ *
+ */
+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";
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+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());
+ }
+ }
+}
--- /dev/null
+/**
+ *
+ */
+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";
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+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());
+ }
+ }
+}
--- /dev/null
+/**
+ *
+ */
+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";
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+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";
+ }
+
+}
public class NonViralNameDetailSection extends AbstractCdmDetailSection<NonViralName>
implements ITaxonDetailSection {
-
- private static final Logger logger = Logger
- .getLogger(NonViralNameDetailSection.class);
-
/**
* <p>Constructor for NonViralNameDetailSection.</p>
*
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;
public class DerivedUnitBaseDetailElement extends AbstractCdmDetailElement<DerivedUnitBase> implements IFacadeHolder{
private DerivedUnitFacade facade;
+
+ private ToggleableTextElement text_titleCache;
+
private TextWithLabelElement text_derivedUnitDefinitions;
private TextWithLabelElement text_accessionNumber;
private SpecimenCollectionDetailSection section_duplicates;
private SourceCollectionDetailSection section_source;
+
/**
* <p>Constructor for DerivedUnitBaseDetailElement.</p>
@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);
/** {@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){
* @created Oct 14, 2010
* @version 1.0
*/
-public class CollectingAreasDetailElement extends
+public class NamedAreaDetailElement extends
AbstractEntityCollectionElement<NamedArea> {
private NamedAreaSelectionElement selection_namedArea;
* @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);
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;
/**
*/
public class CreditElement extends AbstractEntityCollectionElement<Credit>{
- private AbstractSelectionElement<AgentBase> agentSelection;
+ private AgentSelectionElement agentSelection;
private TextWithLabelElement text;
/**
/** {@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);
}
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
import junit.framework.Assert;
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
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
* 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;
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
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
import org.apache.log4j.Logger;
import org.eclipse.core.commands.ExecutionException;
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
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
-package eu.etaxonomy.taxeditor.store.operations;
+package eu.etaxonomy.taxeditor.editor.name.operation;
import junit.framework.Assert;
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
* 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;
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
}
/**
- * 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.
*
}
/**
- * 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.
*
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
* 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;
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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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
* 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;
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
}
/**
- * 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
/**
- * 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
}
/**
- * 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
* 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;
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
/**
- * 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
}
/**
- * 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
}
/**
- * 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
}
/**
- * 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() {
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>
-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
--- /dev/null
+<?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>
+++ /dev/null
-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
<?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"
--- /dev/null
+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
<?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>
<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>
</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>
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>
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;
}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);
}
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+
+}
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;
* @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 {
.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;
}
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+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 {
+
+}
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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;
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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;
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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;
+ }
+
+}
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;
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;
/**
* @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$
private ConversationHolder conversation;
private String partNameCache;
-
- private IWorkbenchSiteProgressService service;
private IDataChangeBehavior dataChangeBehavior;
public void init(IViewSite site)
throws PartInitException {
super.init(site);
- service = (IWorkbenchSiteProgressService) getSite().getAdapter(IWorkbenchSiteProgressService.class);
init();
}
* Refresh this navigators viewer
*/
public void refresh(){
- logger.warn("Refreshing navigator");
getConversationHolder().bind();
- this.getCommonViewer().refresh();
+ getCommonViewer().refresh();
}
/**
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();
} 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.
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;
*/
public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
IDataChangeBehavior {
- private static final Logger logger = Logger
- .getLogger(TaxonNavigatorDataChangeBehavior.class);
private TaxonNavigator source;
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Updating Taxon Navigator", 3);
- source.getConversationHolder().bind();
monitor.worked(1);
// clear the session completely
monitor.worked(1);
- logger.info("DataStore update caused a refresh of the taxonomic tree");
monitor.done();
return Status.OK_STATUS;
}
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;
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;
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>
return Status.CANCEL_STATUS;
}
- AbstractPostOperation operation = new MoveTaxonOperation
+ AbstractPostOperation operation = new MoveTaxon
("Move Taxon", workspaceUndoContext, taxonNodes, targetITreeNode, this, taxonNavigator);
NavigationUtil.executeOperation(operation);
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>
*/
public class TaxonNodeLabelProvider extends ColumnLabelProvider
implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
- private static final Logger logger = Logger
- .getLogger(TaxonNodeLabelProvider.class);
/** {@inheritDoc} */
@Override
@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();
}
* 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;
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>
* @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;
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);
-package eu.etaxonomy.taxeditor.navigation.handler;
+package eu.etaxonomy.taxeditor.navigation.navigator.handler;
// $Id$
/**
* Copyright (C) 2007 EDIT
* @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)
* 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;
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>
* @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)
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);
* 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;
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;
* @created Jan 20, 2010
* @version 1.0
*/
-public class DeleteTreeNodeOperation extends AbstractPersistentPostOperation{
+public class Delete extends AbstractPersistentPostOperation{
private Set<ITreeNode> treeNodes;
*
* @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) {
* 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;
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;
/**
* @created Jul 12, 2010
* @version 1.0
*/
-public class EditClassificationOperation extends AbstractPersistentPostOperation {
+public class EditClassification extends AbstractPersistentPostOperation {
private Classification classification;
/**
* @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);
* 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;
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;
/**
* @created 16.01.2009
* @version 1.0
*/
-public class MoveTaxonOperation extends AbstractPersistentPostOperation {
+public class MoveTaxon extends AbstractPersistentPostOperation {
/**
* A reference to the new taxonomical parent.
* @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);
* 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;
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;
/**
* @created 23.06.2009
* @version 1.0
*/
-public class SaveClassificationOperation extends AbstractPersistentPostOperation {
+public class CreateClassification extends AbstractPersistentPostOperation {
private Classification classification;
* @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);
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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;
+ }
+
+}
* 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;
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;
* @created 08.05.2009
* @version 1.0
*/
-public class CreateTaxonNodeOperation extends AbstractPersistentPostOperation {
+public class CreateTaxonNode extends AbstractPersistentPostOperation {
private Taxon newTaxon;
* @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);
* @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);
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;
/**
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);
--- /dev/null
+/**
+ *
+ */
+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();
+ }
+
+}
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;
/**
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);
}
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+}
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,
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>
--- /dev/null
+/**
+ *
+ */
+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;
+ }
+
+}
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;
/**
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;
/**
/**
* <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){
* @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";
}
/**
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();
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;
}
/**
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;
* @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);
}
* @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;
}
/**
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.");
}
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()){
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>
*
* @return a {@link eu.etaxonomy.cdm.model.description.Feature} object.
*/
public Feature getFeature(){
- return featureNode.getFeature();
+ if(featureNode != null){
+ return featureNode.getFeature();
+ }
+ return null;
}
/**
* @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;
+ }
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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;
+ }
+
+}
* 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;
*
* @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,
* @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,
*
* @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.
*/
* 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;
* @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) {
* @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);
* @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);
*
* @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) {
/**
* <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;
* 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;
/** 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";
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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();
+ }
+}
*
*/
public static final String PREFERRED_TERMS_CHANGE = "preferred_terms";
+
/**
public static boolean getSortRanksHierarchichally(){
return getPreferenceStore().getBoolean(SORT_RANKS_HIERARCHICHALLY);
}
+
+ public static boolean isMultilanguageTextEditingCapability() {
+ return getPreferenceStore().getBoolean(MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
+ }
}
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;
*/
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>
*
getClassificationService().saveOrUpdate(defaultClassification);
conversation.commit(true);
}
+
}
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) {
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;
/**
* 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;
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;
/**
*
* @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.
*/
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.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;
+ }
+
+}
* 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;
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;
/**
*
* @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.
*/
* 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;
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;
/**
*
* @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.
*/
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;
/**
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;
/**
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