merge-update from trunk
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 24 Sep 2013 09:24:24 +0000 (09:24 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 24 Sep 2013 09:24:24 +0000 (09:24 +0000)
371 files changed:
.gitattributes
eu.etaxonomy.taxeditor.application/plugin.xml
eu.etaxonomy.taxeditor.bulkeditor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.bulkeditor/plugin.xml
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineDocumentProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineEditor.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/handler/NewObjectHandler.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditor.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorLineDisplay.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicNewObjectMenu.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/handler/AbstractAddDerivedUnitFacadeMediaHandler.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitFacadeMediaOperation.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/AgentCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/GroupCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/NameCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/OccurrenceCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/ReferenceCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/UserCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditor.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditorLineDisplayStrategy.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/SpecimenEditorInput.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/wizard/SpecimenSearchWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/wizard/SpecimenSearchWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/.classpath
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/build.properties
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorDataChangeBehaviour.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddImageGalleryHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveTaxonOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperationTest.java
eu.etaxonomy.taxeditor.help/html/gettingstarted/creating_multiple_datasources.html
eu.etaxonomy.taxeditor.help/html/gettingstarted/show_hide_options_of_drop-down_menus.html
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/ClassificationLabelProvider.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CopyHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/CopyOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenuFactory.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/CreateDefinedTermHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/CreateTermVocabularyHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/DeleteTermBaseHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/OpenDefinedTermEditorHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/OpenDefinedTermMenu.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/AbstractDefinedTermEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/DefinedTermEditorInputFactory.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ExtensionTypeEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/FeatureEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/MarkerTypeEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ModifierEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaLevelEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/StateEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/TermEditorInput.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/CreateDefinedTermOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/CreateTermVocabularyOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ImageResources.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/NomenclaturalCodeHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewFieldObservationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewGrantedAuthorityWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewNonViralNameWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/PolytomousKeyWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPersistentPostOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/StageMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/SearchManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ComboDefinedTermController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntityCollectionElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntitySelectionField.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntitySelectionFieldController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/LanguageTextFieldController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NamedAreaFieldController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NumberFieldController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/PointField.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/PointFieldController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/TextFieldController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextField.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/compatibility/ICdmFormElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICdmFormElement.java with 86% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/compatibility/IEntitySelectionElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsElementController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsView.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralElementController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElementController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsElementController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsElementController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenGeneralSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchComposite.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchResultsComposite.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchResultsController.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/DerivedUnitSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FieldObservationSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/OriginalSourceTypeSelectionDialog.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationTypeSelectionDialog.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractCdmEntityWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractCdmFormElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractCdmFormElementWithErrors.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractFormSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/BrowserElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CheckboxElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEntityElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ImageElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/KeyStatementElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/KeyValueViewerElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/LabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/LanguageStringWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MinMaxTextSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/NumberWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/PartialElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/PointElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RootElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/SelectionArbitrator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextActionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TimePeriodElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ToggleableTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/UriWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/openurl/OpenUrlSelectorElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/password/EditPasswordElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/password/PasswordWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/EmptyElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ICdmDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamOrPersonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/ClassificationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/ClassificationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/ClassificationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ReferenceEntityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ReferencedEntityDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DerivedUnitElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescribedSpecimenSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementMediaSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionSourceSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/GeoScopeElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/GeoScopeSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/MediaDetailsSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/NaturalLanguageDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/NaturalLanguageSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateDataElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateDataSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/AbstractDetailedDescriptionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CategoricalDataDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CommonNameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/DistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/IndividualsAssociationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/QuantitativeDataDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/TaxonInteractionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/TextDataDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureDistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureDistributionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupSelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/MemberDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/MemberDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/GeographicalScopeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/ScopeRestrictionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/TaxonomicScopeSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/ImageFileElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationPartElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationPartSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AbstractTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NomenclaturalStatusElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NomenclaturalStatusSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SpecimenTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/TypeDesignationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/AbstractDeterminationEventDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/AbstractEventDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectingAreasDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectionWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CurrentDeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitDetailsWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationHistoryDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailsWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationWizardPage.java with 74% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationGeneralWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralWizardPage.java with 72% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailsWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventWizardPage.java with 75% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/NamedAreaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SourceCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenDetailsWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenGeneralWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalReferenceDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalReferenceDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractOriginalSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractReferencedEntityElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CreditElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CreditSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/ExtensionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/ExtensionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/HeadlineSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/IdentifiableSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/RightsElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/RightsSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/SourceSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/VersionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/VersionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/ParsingMessageElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/ParsingMessagesSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/GroupsByUserDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/GroupsByUserDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/UserDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/UserDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/UserDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/AbstractTermBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/DefinedTermDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/DefinedTermDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaLevelDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermVocabularyDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermVocabularyDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EntitySelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/NomenclaturalAuthorTeamSelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/TaxonNodeSelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java
eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/ResourceManager.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet.xml

index f19d32bc91c8270ac9e12d41db628d8c69e15061..84b6c5f46fcc7dd2349b16abc9cfbe01342b75c9 100644 (file)
@@ -115,6 +115,11 @@ eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkedito
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsContentProvider.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsLabelProvider.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java -text
+eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditor.java -text
+eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditorLineDisplayStrategy.java -text
+eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/SpecimenEditorInput.java -text
+eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/wizard/SpecimenSearchWizard.java -text
+eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/wizard/SpecimenSearchWizardPage.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/test/java/eu/etaxonomy/taxeditor/bulkeditor/Application.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/test/java/eu/etaxonomy/taxeditor/bulkeditor/ApplicationActionBarAdvisor.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/test/java/eu/etaxonomy/taxeditor/bulkeditor/ApplicationWorkbenchAdvisor.java -text
@@ -1060,6 +1065,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/UsageTe
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermDragListener.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermDropAdapter.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermEditor.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenuFactory.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermBasePropertyTester.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermContentProvider.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermLabelProvider.java -text
@@ -1068,16 +1074,8 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/defined
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/CreateTermVocabularyHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/DeleteTermBaseHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/OpenDefinedTermEditorHandler.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/OpenDefinedTermMenu.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/AbstractDefinedTermEditorInput.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/DefinedTermEditorInputFactory.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ExtensionTypeEditorInput.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/FeatureEditorInput.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/MarkerTypeEditorInput.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ModifierEditorInput.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaEditorInput.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaLevelEditorInput.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/StateEditorInput.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/TermEditorInput.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/CreateDefinedTermOperation.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/CreateTermVocabularyOperation.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java -text
@@ -1228,10 +1226,46 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermMana
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/internal/TaxeditorStorePlugin.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/bar/AuthenticatedUserBar.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ComboDefinedTermController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntityCollectionElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntitySelectionField.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntitySelectionFieldController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/LanguageTextFieldController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NamedAreaFieldController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NumberFieldController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/PointField.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/PointFieldController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/TextFieldController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextField.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/compatibility/ICdmFormElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/compatibility/IEntitySelectionElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsElementController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsView.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralElementController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElementController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsElementController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsElementController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenGeneralSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchComposite.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchController.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchResultsComposite.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchResultsController.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/LoginDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/UriDialog.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AgentSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ClassificationSelectionDialog.java -text
@@ -1246,10 +1280,12 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/sele
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NameSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorTeamSelectionDialog.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/OriginalSourceTypeSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PersonSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PolytomousKeySelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationTypeSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonBaseSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeSelectionDialog.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TeamSelectionDialog.java -text
@@ -1263,7 +1299,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/Cdm
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmPropertyChangeEvent.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CheckboxElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICdmFormElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEnableableFormElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEntityElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IErrorIntolerableElement.java -text
@@ -1279,6 +1315,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/Key
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/LabelElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/LanguageStringWithLabelElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/LayoutConstants.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MinMaxTextSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/NumberWithLabelElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/PartialElement.java -text
@@ -1311,6 +1348,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/Abs
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/EmptyElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ICdmDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ITaxonBaseDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailSection.java -text
@@ -1421,6 +1459,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occ
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitDetailsWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailElement.java -text
@@ -1429,18 +1468,20 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occ
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationHistoryDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailSection.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailsWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationGeneralWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailSection.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailsWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralDetailSection.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/IDerivedUnitFacadeDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/NamedAreaDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SourceCollectionDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenDetailsWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenGeneralWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalReferenceDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalReferenceDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java -text
@@ -1521,6 +1562,8 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/De
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/reporting/ReportingViewPart.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewPart.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/ResourceManager.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java -text
 eu.etaxonomy.taxeditor.store/src/main/resources/eu/etaxonomy/cdm/editorApplicationContext.xml -text
 eu.etaxonomy.taxeditor.store/src/main/resources/log4j.properties -text
 eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/NameProtectTitleCacheTest.java -text
index 61f897c866ce4cf0eb0288cb8a0558c4db4eddd5..92ca4981ba913769d30dbb4756289aa40acca357 100644 (file)
             id="eu.etaxonomy.taxeditor.application.perspective.polytomous"\r
             name="Polytomous Key">\r
       </perspective>\r
-       <perspective\r
+      <!-- FIXME:3.3MC -->\r
+       <!--perspective\r
             class="eu.etaxonomy.taxeditor.perspective.Uses"\r
             id="eu.etaxonomy.taxeditor.application.perspective.uses"\r
             name="Uses">\r
-      </perspective>\r
+      </perspective-->\r
      \r
    </extension>\r
    <!--extension\r
index badb788a271b364d983cd101e780f88742000615..b1c2cf9615db35b9076dfb117a667a5a29857ab8 100644 (file)
@@ -5,7 +5,16 @@ Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
 Bundle-Version: 3.2.4.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
 Bundle-Vendor: EDIT
-Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,eu.etaxonomy.taxeditor.annotatedlineeditor.handler,eu.etaxonomy.taxeditor.bulkeditor,eu.etaxonomy.taxeditor.bulkeditor.command,eu.etaxonomy.taxeditor.bulkeditor.handler,eu.etaxonomy.taxeditor.bulkeditor.input,eu.etaxonomy.taxeditor.bulkeditor.internal,eu.etaxonomy.taxeditor.bulkeditor.referencingobjects
+Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
+ eu.etaxonomy.taxeditor.annotatedlineeditor.handler,
+ eu.etaxonomy.taxeditor.bulkeditor,
+ eu.etaxonomy.taxeditor.bulkeditor.command,
+ eu.etaxonomy.taxeditor.bulkeditor.handler,
+ eu.etaxonomy.taxeditor.bulkeditor.input,
+ eu.etaxonomy.taxeditor.bulkeditor.internal,
+ eu.etaxonomy.taxeditor.bulkeditor.referencingobjects,
+ eu.etaxonomy.taxeditor.dataimport,
+ eu.etaxonomy.taxeditor.dataimport.wizard
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.ui.editors,
index eb3725ea16778b0d52083983a7bf147c19e86bec..8df35d12b1963c3ca040cb6c05ff8b56c99aabcf 100644 (file)
             id="nameeditor.editor"\r
             name="Name Editor">\r
       </editor>\r
+      <editor\r
+            class="eu.etaxonomy.taxeditor.dataimport.DataImportEditor"\r
+            default="false"\r
+            id="eu.etaxonomy.taxeditor.dataimport.DataImportEditor"\r
+            name="Data Import Editor">\r
+      </editor>\r
    </extension>\r
    <extension\r
          point="org.eclipse.ui.menus">\r
@@ -34,6 +40,9 @@
                id="bulkeditor.menus.openmenu"\r
                label="Bulk Editor">\r
          </menu>\r
+         <menu\r
+               label="Search Specimen">\r
+         </menu>\r
       </menuContribution>\r
       <menuContribution\r
             locationURI="menu:bulkeditor.menus.openmenu">\r
                style="push">\r
          </command>\r
       </menuContribution>\r
+      <menuContribution\r
+            allPopups="false"\r
+            locationURI="popup:eu.etaxonomy.taxeditor.editor.view.media">\r
+         <command\r
+               commandId="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addDerivedUnitMedia"\r
+               label="Add Derived Unit Media"\r
+               style="push">\r
+         </command>\r
+         <command\r
+               commandId="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addFieldObjectMedia"\r
+               label="Add Field Object Media"\r
+               style="push">\r
+         </command>\r
+      </menuContribution>\r
    </extension>\r
    <extension\r
          point="org.eclipse.ui.commands">\r
             id="bulkeditor.commands.removemergecandidate"\r
             name="Remove as Candidate for Group Merge">\r
       </command>\r
+      <command\r
+            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.SetMarkerFlagHandler"\r
+            id="taxeditor-bulkeditor.command.setMarkerFlag"\r
+            name="Set Marker Flag">\r
+      </command>\r
+      <command\r
+            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler.AddDerivedUnitMediaHandler"\r
+            id="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addDerivedUnitMedia"\r
+            name="Add Derived Unit Media">\r
+      </command>\r
+      <command\r
+            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler.AddFieldObjectMediaHandler"\r
+            id="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addFieldObjectMedia"\r
+            name="Add Field Object Media">\r
+      </command>\r
       <!--command\r
             defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.NewEntityHandler"\r
             id="eu.etaxonomy.taxeditor.bulkeditor.command.new"\r
             type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">\r
       </propertyTester>\r
    </extension>\r
-   <extension\r
-         point="org.eclipse.ui.commands">\r
-      <command\r
-            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.SetMarkerFlagHandler"\r
-            id="taxeditor-bulkeditor.command.setMarkerFlag"\r
-            name="Set Marker Flag">\r
-      </command>\r
-   </extension>\r
    <extension\r
          point="org.eclipse.ui.handlers">\r
       <handler\r
             name="Bulk Editor">\r
       </page>\r
    </extension>\r
-   <extension\r
-         point="org.eclipse.ui.menus">\r
-      <menuContribution\r
-            allPopups="false"\r
-            locationURI="popup:eu.etaxonomy.taxeditor.editor.view.media">\r
-         <command\r
-               commandId="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addDerivedUnitMedia"\r
-               label="Add Derived Unit Media"\r
-               style="push">\r
-         </command>\r
-         <command\r
-               commandId="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addFieldObjectMedia"\r
-               label="Add Field Object Media"\r
-               style="push">\r
-         </command>\r
-      </menuContribution>\r
-   </extension>\r
-   <extension\r
-         point="org.eclipse.ui.commands">\r
-      <command\r
-            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler.AddDerivedUnitMediaHandler"\r
-            id="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addDerivedUnitMedia"\r
-            name="Add Derived Unit Media">\r
-      </command>\r
-      <command\r
-            defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler.AddFieldObjectMediaHandler"\r
-            id="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addFieldObjectMedia"\r
-            name="Add Field Object Media">\r
-      </command>\r
-   </extension>\r
    <extension\r
          point="org.eclipse.core.expressions.propertyTesters">\r
       <propertyTester\r
                id="eu.etaxonomy.taxeditor.view.detail">\r
          </showInPart>\r
       </perspectiveExtension>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.importWizards">\r
+      <wizard\r
+            category="eu.etaxonomy.taxeditor.import.category.cdm"\r
+            class="eu.etaxonomy.taxeditor.dataimport.wizard.SpecimenSearchWizard"\r
+            id="eu.etaxonomy.taxeditor.dataimport.wizard.SpecimenSearchWizard"\r
+            name="Query BioCASE">\r
+      </wizard>\r
    </extension>
 <!-- start set marker -->\r
 \r
index 2bd124f21bf3a1739cc4428459b651ba34630e63..5261d35d7ec83f5a681224b2ced9d55549645d30 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -25,8 +25,9 @@ import org.eclipse.jface.text.source.IAnnotationModel;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.texteditor.AbstractDocumentProvider;
 
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.dataimport.SpecimenEditorInput;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 
 
 
@@ -54,11 +55,11 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
        private LineAnnotationModel annotationModel;
 
        private IEntityCreator<?> entityCreator;
-       
+
        private ILineDisplayStrategy lineDisplayStrategy;
 
        private IEditorInput input;
-       
+
        /**
         * <p>Constructor for AnnotatedLineDocumentProvider.</p>
         *
@@ -67,12 +68,12 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
        public AnnotatedLineDocumentProvider(IEditorInput input){
                this.input = input;
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public IAnnotationModel getAnnotationModel(Object element) {
                if (element == input) {
-                       
+
                        // Create model as necessary
                        if (annotationModel == null) {
                                annotationModel = new LineAnnotationModel(getLineDisplayStrategy(element));
@@ -80,10 +81,10 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        }
                        return annotationModel;
                }
-               
+
                return null;
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected IAnnotationModel createAnnotationModel(Object element)
@@ -96,28 +97,28 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
        public IDocument getDocument(Object element) {
                return document;
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected IDocument createDocument(Object element) throws CoreException {
-               
+
                if (element instanceof IEditorInput) {
                        IEditorInput input = (IEditorInput) element;
                        document = new Document("");
 //                     IAnnotationModel model = getAnnotationModel(element);
-                                       
+
                        List<?> entityList = getEntityList(element);
-                       
+
                        if(entityList != null){
                                for (Object entity : entityList) {
                                        try {
                                                createAnnotatedLine(input, entity);
                                        } catch (BadLocationException e) {
-                                               BulkEditorUtil.error(getClass(), "Problems creating annotated line: ", e);
+                                               AbstractUtility.error(getClass(), "Problems creating annotated line: ", e);
                                        }
-                               }       
+                               }
                        }
-                       
+
                        return document;
                }
                return null;
@@ -132,12 +133,12 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
         * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
         */
        protected LineAnnotation createAnnotatedLine(Object element, Object entity) throws BadLocationException {
-               
+
                Document document = (Document) getDocument(element);
                ILineDisplayStrategy lineDisplayStrategy = getLineDisplayStrategy(element);
-               
+
                LineAnnotation annotation = new LineAnnotation(entity, lineDisplayStrategy);
-                               
+
                // Is document zero length, or is last char in document line delimiter?
                int docLength = document.getLength();
                boolean useDelimiter = false;
@@ -149,7 +150,7 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                if (useDelimiter) {
                        document.replace(docLength, 0, document.getDefaultLineDelimiter());
                }
-               
+
                String text;
                if (lineDisplayStrategy.isEntityCacheEmpty(entity)) {
                        text = lineDisplayStrategy.getEmptyCacheMessage(entity);
@@ -159,46 +160,46 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                text += lineDisplayStrategy.getSupplementalText(entity);
                docLength = document.getLength();
                document.replace(docLength, 0, text);
-               
+
                Position position = new Position(docLength, text.length());
-               
+
                IAnnotationModel model = getAnnotationModel(element);
                if(model != null){
                        model.addAnnotation(annotation, position);
                }
-                                                       
-//             lineDisplayStrategy.addDisplayListener(entity, 
+
+//             lineDisplayStrategy.addDisplayListener(entity,
 //                                             new EntityListenerImpl((LineAnnotation) annotation, element));
-//                             
+//
                return annotation;
        }
-       
-       
+
+
        /**
         * <p>updateLineFromAnnotation</p>
         *
         * @param annotation a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
         */
        public void updateLineFromAnnotation(LineAnnotation annotation) {
-                               
+
                IAnnotationModel model = getAnnotationModel(input);
                IDocument document = getDocument(input);
                ILineDisplayStrategy lineDisplay = getLineDisplayStrategy(input);
-               
+
                Object entity = annotation.getEntity();
                String text = "";
                if (getLineDisplayStrategy(input).isEntityCacheEmpty(entity)) {
                        text = lineDisplay.getEmptyCacheMessage(entity);
                } else {
                        text = lineDisplay.getText(entity);
-               }               
+               }
                text += lineDisplay.getSupplementalText(entity);
-               
+
                try {
                        if (model.getPosition(annotation) == null) {
                                return;
                        }
-                       int offset = model.getPosition(annotation).getOffset();                 
+                       int offset = model.getPosition(annotation).getOffset();
                        int line = document.getLineOfOffset(offset);
                        int lineLength = document.getLineLength(document.getLineOfOffset(offset));
                        if (document.getLineDelimiter(line) != null) {
@@ -206,18 +207,21 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        }
                        document.replace(offset, lineLength, text);
                } catch (BadLocationException e) {
-                       BulkEditorUtil.error(getClass(), "Problem updating annotated line: " ,e);
+                       AbstractUtility.error(getClass(), "Problem updating annotated line: " ,e);
                }
        }
-       
+
        /**
-        * @param element 
+        * @param element
         * @return
         */
        private List<?> getEntityList(Object element) {
                if (element instanceof AbstractBulkEditorInput) {
                        return ((AbstractBulkEditorInput)element).getModel();
                }
+               else if(element instanceof SpecimenEditorInput){
+                   return ((SpecimenEditorInput) element).getResults();
+               }
                return null;
        }
 
@@ -226,9 +230,9 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
        protected void doSaveDocument(IProgressMonitor monitor, Object element,
                        IDocument document, boolean overwrite) throws CoreException {
                if (element instanceof AbstractBulkEditorInput) {
-                       
+
                        IEntityPersistenceService persistenceService = (AbstractBulkEditorInput) element;
-                       
+
                        // Get new containers from annotation model
                        LineAnnotationModel model = (LineAnnotationModel) getAnnotationModel(element);
                        Iterator iterator = model.getAnnotationIterator();
@@ -248,7 +252,7 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                                        continue;
                                }
                                if (annotation.isMarkedAsMerged()) {
-                                       persistenceService.merge(annotation.getEntity(), annotation.getMergeTarget()); //  merge                                        
+                                       persistenceService.merge(annotation.getEntity(), annotation.getMergeTarget()); //  merge
                                } else {
                                        // TODO clarify w AM whether this needs to be executed on merged objects
                                        //persistenceService.delete(annotation.getEntity()); // delete
@@ -263,20 +267,20 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
        protected IRunnableContext getOperationRunner(IProgressMonitor monitor) {
                return null;
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public boolean isModifiable(Object element) {
                return true;
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public boolean isReadOnly(Object element) {
                // enables copy & paste
                return false;
        }
-       
+
        /**
         * <p>Getter for the field <code>entityCreator</code>.</p>
         *
@@ -300,9 +304,9 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                        ILineDisplayStrategy lineDisplayStrategy, Object element) {
                if (element instanceof IEditorInput) {
                        this.lineDisplayStrategy = lineDisplayStrategy;
-               }       
+               }
        }
-       
+
        /**
         * <p>Getter for the field <code>lineDisplayStrategy</code>.</p>
         *
@@ -316,7 +320,7 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                }
                return null;
        }
-       
+
        /**
         * <p>removeAnnotatedLine</p>
         *
@@ -326,7 +330,7 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                LineAnnotation annotation = (LineAnnotation) annotationModel.getAnnotation(entity);
                removeAnnotatedLine(annotation);
        }
-       
+
        /**
         * <p>removeAnnotatedLine</p>
         *
@@ -337,7 +341,7 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                LineAnnotation annotation = (LineAnnotation) annotationModel.getAnnotationAtLine(lineno, document);
                removeAnnotatedLine(annotation);
        }
-       
+
        /**
         * <p>removeAnnotatedLine</p>
         *
@@ -347,15 +351,15 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                if (annotation != null) {
                        Document document = (Document) getDocument(input);
                        LineAnnotationModel model = (LineAnnotationModel) getAnnotationModel(input);
-                       
+
                        Position position = model.getPosition(annotation);
                        int offset = position.getOffset();
                        int length = position.getLength();
-                       
+
                        Object entity = annotation.getEntity();
                        annotation.markAsDeleted();
                        model.removeAnnotation(annotation);
-                       
+
                        // Immediately followed by a delimiter?
                        int annotationEnd = offset + length;
                        try {
@@ -363,17 +367,17 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                                        length += 2;
                                }
                        } catch (BadLocationException e1) {
-                               BulkEditorUtil.error(getClass(), "Problems removing annotated line", e1);
+                               AbstractUtility.error(getClass(), "Problems removing annotated line", e1);
                        }
-                       
+
                        try {
                                document.replace(offset, length, "");
                        } catch (BadLocationException e) {
-                               BulkEditorUtil.error(getClass(), "Problems removing annotated line", e);
+                               AbstractUtility.error(getClass(), "Problems removing annotated line", e);
                        }
-               }               
+               }
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.texteditor.AbstractDocumentProvider#changed(java.lang.Object)
         */
index dd461e780bf7c76c185069310cbb05b019a5cfd1..90653125629cf16939dc2d07deb0a7de5837a20a 100644 (file)
@@ -24,9 +24,12 @@ import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * A list-based editor, where each line in the editor's document is associated with a domain object.
@@ -148,18 +151,38 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
         */
        public LineAnnotation createAnnotatedLineNewObject(Object key, String titleCache) {
                
+               
+
                // Create new object
                Object entity = ((AnnotatedLineDocumentProvider) getDocumentProvider()).
                                                        getEntityCreator(getEditorInput()).createEntity(key, titleCache);
-
+               // checks if the creator also saves the entity (in a different conversation), in which case 
+               // we need to bind back this editors conversation
+               // we also need to reload the entity because the conversation used to
+               // to create / save the entity may have been closed
+               if(entity != null && ((AnnotatedLineDocumentProvider) getDocumentProvider()).getEntityCreator(getEditorInput()).savesEntity()) {                
+                       getConversationHolder().bind();
+                       Object object = CdmStore.getService(IOccurrenceService.class).load(((CdmBase)entity).getUuid());                        
+                       entity = HibernateProxyHelper.deproxy(object);                  
+               }
+               
+               if(entity == null) {
+                       return null;
+               }
                LineAnnotation annotation = createAnnotatedLine(entity);
                if (annotation != null) {
                        annotation.markAsNew(true);
                }
+
                return annotation;
                
        }
        
+         @Override
+         public boolean isDirty() {
+               return super.isDirty();           
+         }
+       
        /**
         * Creates an annotated line at the end of the document. The annotation contains the entity.
         *
index 0ea3e38e49c11f7dc6646c9627f9f091d19a8267..40572208fa7f1fa71fe76137f86aff6fb8c0f662 100644 (file)
@@ -49,4 +49,13 @@ public interface IEntityCreator<T> {
         * @return a {@link java.util.Map} object.
         */
        Map<Object, String> getKeyLabelPairs();
+       
+       /**
+        * Return a flag indicating whether this creator also saves the entities
+        *
+        * @return true or false
+        */
+       boolean savesEntity();
+       
+
 }
index 43b4b8e5e7a98a08c931a041bbbfb1db740bdf32..99c5640973d74eb0edc512a2f10bce06f87dc816 100644 (file)
@@ -44,13 +44,8 @@ public class NewObjectHandler extends AbstractHandler {
                        
                        Object key = ((Event)event.getTrigger()).data;
                        if (key != null) {
-                               
-                               
-                               String text = ((Event)event.getTrigger()).text;
-                               InputDialog dialog = new InputDialog(HandlerUtil.getActiveShell(event), "Create " + text, "Enter new " + text, "", null);
-                               if (dialog.open() != Window.CANCEL) {
-                                       ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject(key, dialog.getValue());
-                               }
+
+                               ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject(key, "Untitled");
                                
                        } else {
                                ((AnnotatedLineEditor) editor).createAnnotatedLineNewObject();
index e0c5d808d1405944167d161b0819bdc6fff3a755..5048cf7fb8abebe0645afd1b0488653b7427b00d 100644 (file)
@@ -1,17 +1,15 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
 package eu.etaxonomy.taxeditor.bulkeditor;
 
-import java.util.Iterator;
-
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.MessageDialogWithToggle;
@@ -21,7 +19,6 @@ import org.eclipse.jface.text.ITextSelection;
 import org.eclipse.jface.text.TextSelection;
 import org.eclipse.jface.text.source.Annotation;
 import org.eclipse.jface.text.source.AnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationModel;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.text.source.IVerticalRuler;
 import org.eclipse.jface.util.IPropertyChangeListener;
@@ -46,6 +43,7 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -62,9 +60,9 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        public static final String ID = "bulkeditor.editor";
 
        private boolean isInitialFocus = true;
-       
+
        private BulkEditorSearch searchBar = null;
-       
+
        private IPropertyChangeListener markerPreferenceListener;
 
        /**
@@ -81,32 +79,33 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        @Override
        protected void initializeEditor() {
                super.initializeEditor();
-                               
+
                /**
                 * see AbstractTextEditor javadoc for explanation of context menu ids
                 */
                setEditorContextMenuId("#BulkEditorContext");
 
 //             setEntityCreatorService(new BulkEditorEntityCreatorService());
-               
+
                setLineDisplayStrategy(new BulkEditorLineDisplay(this));
-               
+
                setSourceViewerConfiguration(new BulkEditorViewerConfiguration(lineDisplayStrategy));
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.ListEditor#createSourceViewer(org.eclipse.swt.widgets.Composite, org.eclipse.jface.text.source.IVerticalRuler, int)
         */
        /** {@inheritDoc} */
-       protected ISourceViewer createSourceViewer(Composite parent,
+       @Override
+    protected ISourceViewer createSourceViewer(Composite parent,
                        IVerticalRuler ruler, int styles) {
                ISourceViewer viewer = super.createSourceViewer(parent, ruler, styles);
-               if (((AbstractBulkEditorInput) getEditorInput()).isMergingEnabled()) {
+               if (getEditorInput().isMergingEnabled()) {
                        addToggleMergeCandidateListener(ruler.getControl());
                }
                return viewer;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.AnnotatedLineEditor#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
         */
@@ -114,46 +113,46 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        @Override
        public void init(IEditorSite site, IEditorInput input)
                        throws PartInitException {
-               
+
                if (!(input instanceof AbstractBulkEditorInput)) {
                        throw new PartInitException("Invalid Input: Must be BulkEditorInput");
                }
-               
+
                super.init(site, input);
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#createPartControl(org.eclipse.swt.widgets.Composite)
         */
        /** {@inheritDoc} */
        @Override
        public void createPartControl(Composite parent) {
-               
+
                parent.setLayout(new GridLayout());
-               
+
                Composite layoutComposite = new Composite(parent, SWT.NONE);
                layoutComposite.setLayout(new GridLayout());
 
                GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
                layoutComposite.setLayoutData(gridData);
-               
+
 //             layoutComposite.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_BLUE));
-               
-               
+
+
                searchBar = new BulkEditorSearch(this, layoutComposite, SWT.NONE);
 //             layoutComposite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-                               
+
                super.createPartControl(parent);
-               
+
                // Set viewer composite to fill grid. Unfortunately it is private and we have to do a little hack here.
                for (Control control : parent.getChildren()) {
-                       if (control instanceof Composite && 
+                       if (control instanceof Composite &&
                                                !(control.equals(layoutComposite))) {
                                control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                        }
                }
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.editors.text.TextEditor#dispose()
         */
@@ -183,32 +182,32 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        public void setFocus() {
                searchBar.setFocus();
 
-               // TODO find a better place to put this - this dialog should be shown after initial contents of 
+               // TODO find a better place to put this - this dialog should be shown after initial contents of
                //      Editor are displayed
                if (isInitialFocus) {
                        displayWarningDialog();
                        isInitialFocus = false;
                }
        }
-       
+
        /**
-        * 
+        *
         */
        private void displayWarningDialog() {
                IPreferenceStore prefs = PreferencesUtil.getPreferenceStore();
-               if (!prefs.getBoolean(PreferencesUtil.HIDE_BULKEDITOR_INFO)) {
+               if (!prefs.getBoolean(IPreferenceKeys.HIDE_BULKEDITOR_INFO)) {
                        String msg = "The Bulk Editor allows you to edit objects used to reference other objects, such as names, references, and authors.\n\n" +
                                                        "Any changes you make to an object in the Bulk Editor will be displayed wherever the object is used.\n\n" +
                                                        "For instance, a reference may be displayed with both a name and a descriptive element. If the reference name is changed here, the display of both the name and the descriptive element will be affected.";
                        MessageDialogWithToggle dialog = MessageDialogWithToggle.openOkCancelConfirm
-                                                                                               (getSite().getShell(), "Bulk Editor", msg, "Do not show this message again", 
-                                                                                                               false, null, PreferencesUtil.HIDE_BULKEDITOR_INFO);
-                       if (dialog.getReturnCode() == Window.OK) { 
-                               prefs.setValue(PreferencesUtil.HIDE_BULKEDITOR_INFO, dialog.getToggleState());
+                                                                                               (getSite().getShell(), "Bulk Editor", msg, "Do not show this message again",
+                                                                                                               false, null, IPreferenceKeys.HIDE_BULKEDITOR_INFO);
+                       if (dialog.getReturnCode() == Window.OK) {
+                               prefs.setValue(IPreferenceKeys.HIDE_BULKEDITOR_INFO, dialog.getToggleState());
                        }
                }
        }
-       
+
        /**
         * @param control
         */
@@ -229,14 +228,14 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
         * @param line a int.
         */
        public void toggleMergeCandidateAnnotation(int line) {
-               
+
                IDocument document = getSourceViewer().getDocument();
-               LineAnnotationModel model = 
+               LineAnnotationModel model =
                                (LineAnnotationModel) getSourceViewer().getAnnotationModel();
-               
+
                if(model != null){
                        Annotation annotation = model.getAnnotationAtLine(line, document);
-                       
+
                        if (annotation != null) {
                                if (annotation.getType().equals(IBulkEditorConstants.TYPE_MERGE_CANDIDATE)) {
                                        model.changeAnnotationType(
@@ -248,25 +247,26 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
                        }
                }
        }
-       
+
        /** {@inheritDoc} */
-       public void changed(Object object) {
+       @Override
+    public void changed(Object object) {
 //             this.dirty = dirty;
                AnnotatedLineDocumentProvider p = (AnnotatedLineDocumentProvider) getDocumentProvider();
                p.changed(object);
 //             firePropertyChange(PROP_DIRTY);
        }
-       
+
        /* (non-Javadoc)
         * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
         */
        /** {@inheritDoc} */
        public void performSearch(BulkEditorQuery query) {
                if (query != null) {
-                       
+
                        // TODO check if dirty, prompt save
                        if (isDirty()) {
-                               boolean proceed = MessageDialog.openQuestion(getEditorSite().getShell(), 
+                               boolean proceed = MessageDialog.openQuestion(getEditorSite().getShell(),
                                                "Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
                                if (proceed) {
                                        doSave(null);
@@ -274,40 +274,41 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
                                        return;
                                }
                        }
-                                               
+
                        getEditorInput().performSearch(query);
-                       
+
                        refresh();
-                       
+
                        selectFirstItem();
-                       
+
                        getSourceViewer().getTextWidget().setFocus();
                }
        }
-       
+
        private void selectFirstItem() {
-               ITextSelection selection = new TextSelection(0, 0);     
+               ITextSelection selection = new TextSelection(0, 0);
                getSelectionProvider().setSelection(selection);
        }
 
        /**
-        * 
+        *
         */
        public void refresh() {
                if(getDocumentProvider().getAnnotationModel(getEditorInput()) != null){
                        ((AnnotationModel) getDocumentProvider().getAnnotationModel(getEditorInput())).removeAllAnnotations();
                }
-               
+
                setInput(getEditorInput());
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public AbstractBulkEditorInput getEditorInput() {
                return (AbstractBulkEditorInput) super.getEditorInput();
        }
-       
-       protected void editorContextMenuAboutToShow(IMenuManager menu) {
+
+       @Override
+    protected void editorContextMenuAboutToShow(IMenuManager menu) {
                super.editorContextMenuAboutToShow(menu);
                menu.remove(ITextEditorActionConstants.SHIFT_RIGHT);
                menu.remove(ITextEditorActionConstants.SHIFT_LEFT);
index cd53d16cb07990ba7a0d70eae4a6bb8ba04f1016..a6ae0fd7787d87e75da2a5d5056b29e14984e8d6 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -42,7 +42,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @version 1.0
  */
 public class BulkEditorLineDisplay implements ILineDisplayStrategy {
-       
+
        private BulkEditor editor;
 
        /**
@@ -58,7 +58,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#getIcon(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public Image getIcon(Object entity) {
+       @Override
+    public Image getIcon(Object entity) {
                return null;
        }
 
@@ -66,7 +67,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#getIndent(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public int getIndent(Object entity) {
+       @Override
+    public int getIndent(Object entity) {
                return 0;
        }
 
@@ -74,7 +76,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#getText(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public String getText(Object entity) {          
+       @Override
+    public String getText(Object entity) {
                return editor.getEditorInput().getText((ICdmBase) entity);
        }
 
@@ -83,20 +86,21 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getSupplementalText(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public String getSupplementalText(Object entity) {
-               
+       @Override
+    public String getSupplementalText(Object entity) {
+
                String supplementalText = "";
-               
+
                AbstractBulkEditorInput input = editor.getEditorInput();
                String typeText = input.getTypeText(entity);
-               
+
                supplementalText += StringUtils.isBlank(typeText) ? "" : String.format(" [%s]", typeText);
-               
+
                if (entity instanceof IAnnotatableEntity) {
                        IAnnotatableEntity annotatableEntity = (IAnnotatableEntity) HibernateProxyHelper.deproxy(entity);
 
                        Map<MarkerType, Boolean> editMarkerTypePreferences = PreferencesUtil.getEditMarkerTypePreferences();
-                       
+
                        String markerText = "";
                        List<String> markers = new ArrayList<String>();
                        for (Marker marker : annotatableEntity.getMarkers()) {
@@ -106,20 +110,21 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
                        if (! markers.isEmpty()) {
                                markerText = StringUtils.join(markers, ", ");
                        }
-                       
+
                        supplementalText += StringUtils.isBlank(markerText) ? "" : String.format(" [%s]", markerText);
                }
-               
+
                return supplementalText;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#setText(java.lang.String, java.lang.Object)
         */
        /** {@inheritDoc} */
-       public void setText(String text, Object entity) {
+       @Override
+    public void setText(String text, Object entity) {
                if (entity instanceof Reference) {
-                       ((Reference) entity).setTitleCache(text);                       
+                       ((Reference) entity).setTitleCache(text);
                }
        }
 
@@ -127,7 +132,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#getHoverText(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public String getHoverText(Object entity) {
+       @Override
+    public String getHoverText(Object entity) {
                return null;
        }
 
@@ -135,15 +141,18 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#setStatusMessage(java.lang.String, java.lang.Object)
         */
        /** {@inheritDoc} */
-       public void setStatusMessage(final String text, Object entity) {
-               
+       @Override
+    public void setStatusMessage(final String text, Object entity) {
+
                // Calling from the synchronized method ListEditorReconcilingStrategy#doReconcile
                // without its own thread causes an invalid thread access exception
                // see http://wiki.eclipse.org/FAQ_Why_do_I_get_an_invalid_thread_access_exception%3F
                new Thread(new Runnable() {
-                       public void run() {
+                       @Override
+            public void run() {
                                Display.getDefault().asyncExec(new Runnable() {
-                                       public void run() {
+                                       @Override
+                    public void run() {
                                                IStatusLineManager statusLineManager = editor.getEditorSite().getActionBars().getStatusLineManager();
                                                statusLineManager.setMessage(text);
                                        }
@@ -156,7 +165,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getEmptyText(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public String getEmptyCacheMessage(Object entity) {
+       @Override
+    public String getEmptyCacheMessage(Object entity) {
                if (entity instanceof Reference) {
                        return "No reference title cache";
                }
@@ -173,17 +183,18 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#isEntityCacheEmpty(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public boolean isEntityCacheEmpty(Object entity) {
+       @Override
+    public boolean isEntityCacheEmpty(Object entity) {
                if (entity instanceof Reference) {
                        String text = ((Reference) entity).getTitleCache();
                        return (text == null || text.equals(""));
                }
                if (entity instanceof TaxonNameBase) {
-                       String text = ((TaxonNameBase) entity).getTitleCache(); 
+                       String text = ((TaxonNameBase) entity).getTitleCache();
                        return (text == null || text.equals(""));
                }
                if (entity instanceof AgentBase) {
-                       String text = ((AgentBase) entity).getTitleCache(); 
+                       String text = ((AgentBase) entity).getTitleCache();
                        return (text == null || text.equals(""));
                }
                return false;
@@ -193,16 +204,17 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#addDisplayListener(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public void addDisplayListener(Object entity, EntityListener listener) {
-               /* Note: all non-field specific listeners require that corresponding property sheets 
+       @Override
+    public void addDisplayListener(Object entity, EntityListener listener) {
+               /* Note: all non-field specific listeners require that corresponding property sheets
                 * contain the following:
-                * 
-                * 
+                *
+                *
                 *              public void setPropertyValue(Object id, Object value) {
                 *              ...
                 *                      reference.firePropertyChange(new PropertyChangeEvent(reference, "", null, null));
                 *              }
-                * 
+                *
                 */
                if (entity instanceof CdmBase) {
                        ((CdmBase) entity).addPropertyChangeListener(listener);
@@ -213,7 +225,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getFont(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public Font getFont(Object entity) {
+       @Override
+    public Font getFont(Object entity) {
                return null;
        }
 }
index 60535de12ff220caf42a405cc792dbf448bfd1d4..bc9116b1effd63741e4a27e19f5af75ab9e0632d 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -41,7 +41,7 @@ import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 public class DynamicNewObjectMenu extends CompoundContributionItem {
        private static final Logger logger = Logger
                        .getLogger(DynamicNewObjectMenu.class);
-       
+
        private IHandlerService handlerService = (IHandlerService) BulkEditorUtil.getService(IHandlerService.class);
        private Map<Object, String> classLabelPairs;
        /* (non-Javadoc)
@@ -50,15 +50,16 @@ public class DynamicNewObjectMenu extends CompoundContributionItem {
        /** {@inheritDoc} */
        @Override
        protected IContributionItem[] getContributionItems() {
-               
+
                classLabelPairs = getClassLabelPairs();
-               
+
                return new IContributionItem[] {
                                new ContributionItem() {
-                                       public void fill(Menu menu, int index){
+                                       @Override
+                    public void fill(Menu menu, int index){
                                                for(final Object key : classLabelPairs.keySet()){
                                                        createMenuItem(menu, key);
-                                               }                       
+                                               }
                                        }
                                }
                };
@@ -69,9 +70,11 @@ public class DynamicNewObjectMenu extends CompoundContributionItem {
                menuItem.setText(classLabelPairs.get(key));
                menuItem.addSelectionListener(new SelectionListener(){
 
-                       public void widgetDefaultSelected(SelectionEvent e) {}
+                       @Override
+            public void widgetDefaultSelected(SelectionEvent e) {}
 
-                       public void widgetSelected(SelectionEvent ev) {
+                       @Override
+            public void widgetSelected(SelectionEvent ev) {
                                Event event = new Event();
                                event.data = key;
                                event.text = classLabelPairs.get(key);
@@ -81,10 +84,10 @@ public class DynamicNewObjectMenu extends CompoundContributionItem {
                                        logger.error("Error executing command", e);
                                        throw new RuntimeException("Error executing command", e);
                                }
-                       }                               
+                       }
                });
        }
-       
+
        /**
         * Get class label pairs from Annotated Line Editor's entity creator.
         * @return
@@ -93,13 +96,13 @@ public class DynamicNewObjectMenu extends CompoundContributionItem {
                IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
                if (editor != null){
                        IEditorInput input = editor.getEditorInput();
-                       
+
                        if(input instanceof AbstractBulkEditorInput){
                                IEntityCreator<?> entityCreator = ((AbstractBulkEditorInput) input).getEntityCreator();
                                return entityCreator.getKeyLabelPairs();
                        }
                }
-               
+
                return null;
-       }       
+       }
 }
index 8150e39aee0724e380a4e48e6784021d89a38e35..303373ac0f3c8755008d673ef7d097f18b64d5fd 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -25,82 +25,82 @@ import org.eclipse.ui.menus.CommandContributionItemParameter;
 
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
 import eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.dataimport.DataImportEditor;
 
 /**
  * <p>
  * OpenBulkEditorContributionItem class.
  * </p>
- * 
+ *
  * @author p.ciardelli
  * @created 19.08.2009
  * @version 1.0
  */
 public class OpenBulkEditorContributionItem extends CompoundContributionItem {
 
-       /**
-        * <p>
-        * Constructor for OpenBulkEditorContributionItem.
-        * </p>
-        */
-       public OpenBulkEditorContributionItem() {
-       }
+    /**
+     * <p>
+     * Constructor for OpenBulkEditorContributionItem.
+     * </p>
+     */
+    public OpenBulkEditorContributionItem() {
+    }
 
-       /**
-        * <p>
-        * Constructor for OpenBulkEditorContributionItem.
-        * </p>
-        * 
-        * @param id
-        *            a {@link java.lang.String} object.
-        */
-       public OpenBulkEditorContributionItem(String id) {
-               super(id);
-       }
+    /**
+     * <p>
+     * Constructor for OpenBulkEditorContributionItem.
+     * </p>
+     *
+     * @param id
+     *            a {@link java.lang.String} object.
+     */
+    public OpenBulkEditorContributionItem(String id) {
+        super(id);
+    }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected IContributionItem[] getContributionItems() {
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
+     */
+    /** {@inheritDoc} */
+    @Override
+    protected IContributionItem[] getContributionItems() {
 
-               List<IContributionItem> contributionItems = new ArrayList<IContributionItem>();
+        List<IContributionItem> contributionItems = new ArrayList<IContributionItem>();
 
-               contributionItems.add(BulkEditorInputType.AGENT.createContributionItem());
-               contributionItems.add(BulkEditorInputType.REFERENCE.createContributionItem());
-               contributionItems.add(new Separator("test"));
-               contributionItems.add(BulkEditorInputType.NAME.createContributionItem());
-               contributionItems.add(BulkEditorInputType.NAME_RELATIONSHIP.createContributionItem());
-               contributionItems.add(new Separator("test"));
-               contributionItems.add(BulkEditorInputType.OCCURRENCE.createContributionItem());
-               contributionItems.add(new Separator("test"));
-               contributionItems.add(BulkEditorInputType.USER.createContributionItem());
-               contributionItems.add(BulkEditorInputType.GROUP.createContributionItem());              
+        contributionItems.add(BulkEditorInputType.AGENT.createContributionItem());
+        contributionItems.add(BulkEditorInputType.REFERENCE.createContributionItem());
+        String groupName = "test";
+        contributionItems.add(new Separator(groupName));
+        contributionItems.add(BulkEditorInputType.NAME.createContributionItem());
+        contributionItems.add(BulkEditorInputType.NAME_RELATIONSHIP.createContributionItem());
+        contributionItems.add(new Separator(groupName));
+        contributionItems.add(BulkEditorInputType.OCCURRENCE.createContributionItem());
+        contributionItems.add(new Separator(groupName));
+        contributionItems.add(BulkEditorInputType.USER.createContributionItem());
+        contributionItems.add(BulkEditorInputType.GROUP.createContributionItem());
+        contributionItems.add(new Separator(groupName));
+        contributionItems.add(createContributionItem("Search Specimen", DataImportEditor.ID));
 
-               return contributionItems
-                               .toArray(new IContributionItem[contributionItems.size()]);
-       }
+        return contributionItems.toArray(new IContributionItem[contributionItems.size()]);
+    }
 
-       /**
-        * @param key
-        * @param object
-        * @return
-        */
-       private IContributionItem createContributionItem(String label,
-                       String inputType) {
-               CommandContributionItemParameter parameter = new CommandContributionItemParameter(
-                               PlatformUI.getWorkbench().getActiveWorkbenchWindow(), null,
-                               IBulkEditorConstants.DYNAMIC_OPEN_MENU_ID, SWT.NONE);
+    /**
+     * @param key
+     * @param object
+     * @return
+     */
+    private IContributionItem createContributionItem(String label, String inputType) {
+        CommandContributionItemParameter parameter = new CommandContributionItemParameter(PlatformUI.getWorkbench().getActiveWorkbenchWindow(), null, IBulkEditorConstants.DYNAMIC_OPEN_MENU_ID, SWT.NONE);
 
-               parameter.label = label;
+        parameter.label = label;
 
-               Map parameters = new HashMap();
-               parameters.put(IBulkEditorConstants.INPUT_TYPE_PARAMETER_ID, inputType);
-               parameter.parameters = parameters;
+        Map<String, String> parameters = new HashMap<String, String>();
+        parameters.put(IBulkEditorConstants.INPUT_TYPE_PARAMETER_ID, inputType);
+        parameter.parameters = parameters;
 
-               return new CommandContributionItem(parameter);
-       }
+        return new CommandContributionItem(parameter);
+    }
 }
index fe74a3d1374b31f246eeed0522c00970c58057f9..a1b78438cf11e50af7cb2975550a6443f6d4c9c5 100644 (file)
@@ -21,7 +21,7 @@ import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.handlers.HandlerUtil;
 
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.derivedunit.operation.AddDerivedUnitFacadeMediaOperation;
@@ -55,10 +55,10 @@ public abstract class AbstractAddDerivedUnitFacadeMediaHandler extends AbstractH
                        
                        if(selection instanceof IStructuredSelection){
                                Object element = ((IStructuredSelection) selection).getFirstElement();
-                               if(element instanceof DerivedUnitBase){
+                               if(element instanceof DerivedUnit){
                                        
                                        try{
-                                               AbstractPostOperation operation = new AddDerivedUnitFacadeMediaOperation(event.getCommand().getName(), BulkEditorUtil.getUndoContext(), (DerivedUnitBase) element, getMode(), postOperationEnabled);
+                                               AbstractPostOperation operation = new AddDerivedUnitFacadeMediaOperation(event.getCommand().getName(), BulkEditorUtil.getUndoContext(), (DerivedUnit) element, getMode(), postOperationEnabled);
                                                BulkEditorUtil.executeOperation(operation);
                                        } catch (NotDefinedException e) {
                                                BulkEditorUtil.warn(getClass(), "Command name not set.");
index 179f2a5f58054e37cf175f97dd4d778ec0fdd438..5b5e8e2137b773c8da3819ddd6369c70f2b50fde 100644 (file)
@@ -20,7 +20,7 @@ import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.SpecimenDescription;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -36,7 +36,7 @@ public class AddDerivedUnitFacadeMediaOperation extends
        public static final int DERIVED_UNIT_MEDIA = 0;
        public static final int FIELD_OBJECT_MEDIA = 1;
        
-       private DerivedUnitBase derivedUnit;
+       private DerivedUnit derivedUnit;
        private int mode;
        
        /**
@@ -44,7 +44,7 @@ public class AddDerivedUnitFacadeMediaOperation extends
         * @param undoContext
         * @param postOperationEnabled
         */
-       public AddDerivedUnitFacadeMediaOperation(String label, IUndoContext undoContext, DerivedUnitBase derivedUnit,
+       public AddDerivedUnitFacadeMediaOperation(String label, IUndoContext undoContext, DerivedUnit derivedUnit,
                        int mode, IPostOperationEnabled postOperationEnabled) {
                super(label, undoContext, postOperationEnabled);
                
index c929425671fa1658a72640a30a251f0c46ea4f71..1126b550fb7fd59bb63598ad8c240328b91e2c2b 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -30,10 +30,10 @@ import eu.etaxonomy.cdm.strategy.merge.MergeException;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.CdmBaseSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.TitleCacheComparator;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -47,16 +47,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEditorInput, IEntityPersistenceService<T> {
 
        /**
-        * 
+        *
         */
        private static final long serialVersionUID = 416414530232743735L;
 
        private UUID entityUuid;
 
        private List<T> model;
-       
+
        private IEntityCreator<T> entityCreator;
-       
+
        /**
         * <p>NewInstance</p>
         *
@@ -66,7 +66,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
        static public AbstractBulkEditorInput NewInstance(BulkEditorInputType inputType) {
                return BulkEditorInputType.getInput(inputType);
        }
-       
+
        /**
         * <p>NewInstance</p>
         *
@@ -74,17 +74,17 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
         */
        public static AbstractBulkEditorInput NewInstance(IdentifiableEntity entity) {
-               
-               
+
+
                BulkEditorInputType inputType = BulkEditorInputType.getByType(entity.getClass());
-               
+
                AbstractBulkEditorInput editorInput = NewInstance(inputType);
-               
+
                editorInput.setEntityUuid(entity.getUuid());
-               
+
                return editorInput;
        }
-       
+
        /**
         * <p>listEntities</p>
         *
@@ -92,7 +92,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         * @return a {@link java.util.List} object.
         */
        protected abstract List<T> listEntities(IIdentifiableEntityServiceConfigurator configurator);
-               
+
        /**
         * <p>loadEntity</p>
         *
@@ -104,7 +104,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
        private void setEntityUuid(UUID entityUuid){
                this.entityUuid = entityUuid;
        }
-       
+
        /**
         * <p>Getter for the field <code>entityUuid</code>.</p>
         *
@@ -114,7 +114,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
                return entityUuid;
        }
 
-                       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#exists()
         */
@@ -123,7 +123,8 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         *
         * @return a boolean.
         */
-       public boolean exists() {
+       @Override
+    public boolean exists() {
                // TODO Auto-generated method stub
                return false;
        }
@@ -136,7 +137,8 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         *
         * @return a {@link org.eclipse.jface.resource.ImageDescriptor} object.
         */
-       public ImageDescriptor getImageDescriptor() {
+       @Override
+    public ImageDescriptor getImageDescriptor() {
                // TODO Auto-generated method stub
                return null;
        }
@@ -149,7 +151,8 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         *
         * @return a {@link org.eclipse.ui.IPersistableElement} object.
         */
-       public IPersistableElement getPersistable() {
+       @Override
+    public IPersistableElement getPersistable() {
                return null;
        }
 
@@ -157,7 +160,8 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
         */
        /** {@inheritDoc} */
-       @SuppressWarnings("unchecked")
+       @Override
+    @SuppressWarnings("unchecked")
        public Object getAdapter(Class adapter) {
                return null;
        }
@@ -168,30 +172,29 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         * @param bulkEditorQuery a {@link eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery} object.
         */
        public void performSearch(final BulkEditorQuery bulkEditorQuery) {
-               
+
                List<T> entityList = new ArrayList<T>();
-               
+
                if(getEntityUuid() != null){
-                       
+
                        T entity = loadEntity(getEntityUuid());
                        entityList.add(entity);
                        model = entityList;
                }
                else if(bulkEditorQuery != null){
-                       
-                       String queryString = bulkEditorQuery.getSearchString();
+
                        IIdentifiableEntityServiceConfigurator configurator = bulkEditorQuery.getSearchConfigurator();
                        Comparator queryComparator = (bulkEditorQuery.getComparator() != null) ? bulkEditorQuery.getComparator() : new TitleCacheComparator();
-                       
+
                        entityList = listEntities(configurator);
-                       
-                       Collections.sort(entityList, queryComparator);                  
-                       
+
+                       Collections.sort(entityList, queryComparator);
+
                }
-               
+
                model = entityList;
        }
-       
+
        /**
         * <p>isMergingEnabled</p>
         *
@@ -210,32 +213,34 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
        public boolean isMarkerTypeEditingEnabled(MarkerType markerType) {
                return false;
        }
-       
+
        /*
         * (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#merge(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
         */
        /** {@inheritDoc} */
-       public boolean merge(T entity, T mergeTarget) {
+       @Override
+    public boolean merge(T entity, T mergeTarget) {
                if (entity instanceof IMergable) {
                        try {
                                CdmStore.getService(ICommonService.class).merge((IMergable)mergeTarget, (IMergable)entity, null);
                        } catch (MergeException e) {
-                               BulkEditorUtil.error(getClass(), e);
+                               AbstractUtility.error(getClass(), e);
                        }
                }
                return true;
-       };
-       
+       }
+
        /*
         * (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#create(eu.etaxonomy.cdm.model.common.IdentifiableEntity)
         */
        /** {@inheritDoc} */
-       public boolean create(T entity) {
-               return save(entity);            
-       };
-       
+       @Override
+    public boolean create(T entity) {
+               return save(entity);
+       }
+
        public IEntityCreator<T> getEntityCreator(){
                if(entityCreator == null){
                        entityCreator = createEntityCreator();
@@ -254,9 +259,9 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         */
        public List<IBulkEditorSortProvider<T>> getSortProviders(){
                List<IBulkEditorSortProvider<T>> sortProviders = new ArrayList<IBulkEditorSortProvider<T>>();
-               
+
                sortProviders.add(new CdmBaseSortProvider<T>());
-               
+
                return sortProviders;
        }
 
@@ -275,13 +280,13 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
        public String getText(T entity) {
                if(entity instanceof IdentifiableEntity){
                        IdentifiableEntity identifiableEntity = (IdentifiableEntity) HibernateProxyHelper.deproxy(entity);
-                       
+
                        return identifiableEntity.getTitleCache();
                }
-               
+
                return "No text. Implement in subclass";
        }
-       
+
        /**
         * @return
         */
index 6c7fc05d23d55c25f49de07491bc1db905cafb27..296a07090048a91c5faf8fe6909e1183c7db069e 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -31,9 +31,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObservationBase> {
-       
+
        /**
-        * 
+        *
         */
        private static final long serialVersionUID = 1014860873939989973L;
 
@@ -41,7 +41,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        public static final String ID = "bulkeditor.input.occurrence";
 
        private static OccurrenceEditorInput instance;
-       
+
        /**
         * <p>Getter for the field <code>instance</code>.</p>
         *
@@ -53,7 +53,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
                }
                return instance;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#listEntities(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
         */
@@ -70,7 +70,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        /** {@inheritDoc} */
        @Override
        protected SpecimenOrObservationBase loadEntity(UUID entityUuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{}); 
+               List<String> propertyPaths = Arrays.asList(new String[]{});
                return CdmStore.getService(IOccurrenceService.class).load(entityUuid, propertyPaths);
        }
 
@@ -82,7 +82,8 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getName() {
+       @Override
+    public String getName() {
                return BulkEditorInputType.OCCURRENCE.label;
        }
 
@@ -94,10 +95,11 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getToolTipText() {
+       @Override
+    public String getToolTipText() {
                return getName();
        }
-       
+
        /**
         * <p>getId</p>
         *
@@ -111,7 +113,8 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public boolean delete(SpecimenOrObservationBase entity) {
+       @Override
+    public boolean delete(SpecimenOrObservationBase entity) {
                return CdmStore.getService(IOccurrenceService.class).delete(entity) != null;
        }
 
@@ -119,10 +122,11 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#save(java.lang.Object)
         */
        /** {@inheritDoc} */
-       public boolean save(SpecimenOrObservationBase entity) {
+       @Override
+    public boolean save(SpecimenOrObservationBase entity) {
                return CdmStore.getService(IOccurrenceService.class).save(entity) != null;
        }
-       
+
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
@@ -138,9 +142,9 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        @Override
        public List<IBulkEditorSortProvider<SpecimenOrObservationBase>> getSortProviders() {
                List<IBulkEditorSortProvider<SpecimenOrObservationBase>> sortProviders = super.getSortProviders();
-               
+
                sortProviders.add(0, new IdentifiableEntitySortProvider<SpecimenOrObservationBase>());
-               
+
                return sortProviders;
        }
 }
index 3281cc226ac32a6d5f57c68dc932176117f794cf..015b24a287550061d5c71dc282a414b3c2d7ca47 100644 (file)
@@ -76,4 +76,10 @@ public class AgentCreator implements IEntityCreator<AgentBase> {
                result.put(Person.class, "Author");
                return result;
        }
+
+       @Override
+       public boolean savesEntity() {
+               // TODO Auto-generated method stub
+               return false;
+       }
 }
index e5f2deb9a17a7b577707f132412dd15d56b98005..86dbde2e5d6a73e404ef0cb026f8200ddf258f5e 100644 (file)
@@ -49,4 +49,10 @@ public class GroupCreator implements IEntityCreator<Group> {
                return result;
        }
 
+       @Override
+       public boolean savesEntity() {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
 }
index 12fe3a4e3ae52e6c3e42100870410ae1a58512d3..776b223ea4a1d2359240f4f3d0e5be28686a3ad6 100644 (file)
@@ -62,4 +62,10 @@ public class NameCreator implements IEntityCreator<TaxonNameBase> {
                }
                return result;
        }
+
+       @Override
+       public boolean savesEntity() {
+               // TODO Auto-generated method stub
+               return false;
+       }
 }
index f77a675bc0c71ebd83e36af3b87852c448fdd79c..db3d60f776b4b2015942532c7880ad0f99f78f6d 100644 (file)
 
 package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
 
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.TreeMap;
 
 import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.WizardDialog;
 
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.FieldObservation;
-import eu.etaxonomy.cdm.model.occurrence.Fossil;
-import eu.etaxonomy.cdm.model.occurrence.LivingBeing;
-import eu.etaxonomy.cdm.model.occurrence.Observation;
-import eu.etaxonomy.cdm.model.occurrence.Specimen;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.newWizard.NewDerivedUnitBaseWizard;
 
 /**
  * <p>
@@ -42,33 +43,25 @@ public class OccurrenceCreator implements
        /** {@inheritDoc} */
        @Override
        public SpecimenOrObservationBase createEntity(String text) {
-               return createEntity(Specimen.class, text);
+
+               return createEntity(DerivedUnit.class, text);
        }
 
        /** {@inheritDoc} */
        @Override
        public SpecimenOrObservationBase createEntity(Object key, String text) {
+               
                SpecimenOrObservationBase specimenOrObservation = null;
+               NewDerivedUnitBaseWizard wizard = new NewDerivedUnitBaseWizard((SpecimenOrObservationType)key);
+               wizard.init(null, null);
+               if(wizard.getEntity() != null) {
+                       WizardDialog dialog = new WizardDialog(BulkEditorUtil.getShell(), wizard);
+                       int status = dialog.open();
 
-               if (FieldObservation.class.equals((key))) {
-                       specimenOrObservation = FieldObservation.NewInstance();
-               } else if (DerivedUnit.class.equals((key))) {
-                       specimenOrObservation = DerivedUnit.NewInstance();
-               } else if (LivingBeing.class.equals((key))) {
-                       specimenOrObservation = LivingBeing.NewInstance();
-               } else if (Observation.class.equals((key))) {
-                       specimenOrObservation = Observation.NewInstance();
-               } else if (Specimen.class.equals((key))) {
-                       specimenOrObservation = Specimen.NewInstance();
-               } else if (DnaSample.class.equals((key))) {
-                       specimenOrObservation = DnaSample.NewInstance();
-               } else if (Fossil.class.equals((key))) {
-                       specimenOrObservation = Fossil.NewInstance();
-               }
-
-               if (specimenOrObservation != null) {
-                       specimenOrObservation.setTitleCache(text, true);
-               }
+                       if (status == IStatus.OK) {
+                               specimenOrObservation = wizard.getEntity();                                                             
+                       }
+               } 
                return specimenOrObservation;
        }
 
@@ -81,21 +74,27 @@ public class OccurrenceCreator implements
         */
        @Override
        public Map<Object, String> getKeyLabelPairs() {
-               Map<Object, String> result = new HashMap<Object, String>();
-
-               result.put(Specimen.class, "Specimen");
-               result.put(Observation.class, "Observation");
-               result.put(LivingBeing.class, "Living Being");
-               result.put(Fossil.class, "Fossil");
-               result.put(DerivedUnit.class, "Derived Unit");
-
-               // Omitted at the moment see #2266
-               // result.put(DnaSample.class, "Dna Sample");
+               Comparator<Object> comparator = new Comparator<Object>() {
+                         public int compare(Object o1, Object o2) {
+                           String key1 = ((SpecimenOrObservationType)o1).getKey();
+                           String key2 = ((SpecimenOrObservationType)o2).getKey();
+                           return key1.compareTo(key2);
+                         }
+                       };
+               Map<Object, String> result = new TreeMap<Object, String>(comparator);
 
-               // Omitted see #2266
-               // result.put(FieldObservation.class, "Field Observation");
-               // result.put(Observation.class, "Observation");
+               for(SpecimenOrObservationType sooType : SpecimenOrObservationType.values()) {                           
+                       result.put(sooType, sooType.getMessage());                              
+               }
 
                return result;
        }
+
+       @Override
+       public boolean savesEntity() {
+               // TODO Auto-generated method stub
+               return true;
+       }
+       
+
 }
index cee07a26469407b4bb0c9ea7760a3e2808baeeaf..92d94ee4ad882a651d6865e834d96bf1db54cd16 100644 (file)
@@ -115,4 +115,10 @@ public class ReferenceCreator implements IEntityCreator<Reference> {
                }
                return result;
        }
+
+       @Override
+       public boolean savesEntity() {
+               // TODO Auto-generated method stub
+               return false;
+       }
 }
index 2d8750ab3d184eefd2847389ddeb2f3c597af435..d092ce03a6be1020437b9f9765c7f09f948ca03d 100644 (file)
@@ -61,4 +61,10 @@ public class UserCreator  implements IEntityCreator<User>{
                return result;
        }
 
+       @Override
+       public boolean savesEntity() {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
 }
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditor.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditor.java
new file mode 100644 (file)
index 0000000..5ca06d9
--- /dev/null
@@ -0,0 +1,45 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
+
+/**
+ * @author pplitzner
+ * @date 20.09.2013
+ *
+ */
+public class DataImportEditor extends AnnotatedLineEditor {
+
+    /** Constant <code>ID="bulkeditor.input.nameRelationship"</code> */
+    public static final String ID = "eu.etaxonomy.taxeditor.dataimport.DataImportEditor";
+
+    /**
+     * Constructs a new DataImportEditor with a new {@link ConversationHolder}
+     */
+    public DataImportEditor() {
+        super(null);
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.editors.text.TextEditor#initializeEditor()
+     */
+    /** {@inheritDoc} */
+    @Override
+    protected void initializeEditor() {
+        super.initializeEditor();
+        String editorTitle = "Data Import Editor";
+        setPartName(editorTitle);
+        setTitleToolTip(editorTitle);
+        setLineDisplayStrategy(new DataImportEditorLineDisplayStrategy());
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditorLineDisplayStrategy.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditorLineDisplayStrategy.java
new file mode 100644 (file)
index 0000000..00929be
--- /dev/null
@@ -0,0 +1,124 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport;
+
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.EntityListener;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy;
+
+/**
+ * @author pplitzner
+ * @date 20.09.2013
+ *
+ */
+public class DataImportEditorLineDisplayStrategy implements ILineDisplayStrategy {
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getIndent(java.lang.Object)
+     */
+    @Override
+    public int getIndent(Object entity) {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getIcon(java.lang.Object)
+     */
+    @Override
+    public Image getIcon(Object entity) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getFont(java.lang.Object)
+     */
+    @Override
+    public Font getFont(Object entity) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getText(java.lang.Object)
+     */
+    @Override
+    public String getText(Object entity) {
+        return ((SpecimenOrObservationBase)entity).getTitleCache();
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getSupplementalText(java.lang.Object)
+     */
+    @Override
+    public String getSupplementalText(Object entity) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getEmptyCacheMessage(java.lang.Object)
+     */
+    @Override
+    public String getEmptyCacheMessage(Object entity) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#setText(java.lang.String, java.lang.Object)
+     */
+    @Override
+    public void setText(String text, Object entity) {
+        // TODO Auto-generated method stub
+
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getHoverText(java.lang.Object)
+     */
+    @Override
+    public String getHoverText(Object entity) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#setStatusMessage(java.lang.String, java.lang.Object)
+     */
+    @Override
+    public void setStatusMessage(String text, Object entity) {
+        // TODO Auto-generated method stub
+
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#isEntityCacheEmpty(java.lang.Object)
+     */
+    @Override
+    public boolean isEntityCacheEmpty(Object entity) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#addDisplayListener(java.lang.Object, eu.etaxonomy.taxeditor.annotatedlineeditor.EntityListener)
+     */
+    @Override
+    public void addDisplayListener(Object entity, EntityListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/SpecimenEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/SpecimenEditorInput.java
new file mode 100644 (file)
index 0000000..0674bf4
--- /dev/null
@@ -0,0 +1,95 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport;
+
+import java.util.List;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+
+/**
+ * @author pplitzner
+ * @date 20.09.2013
+ *
+ */
+public class SpecimenEditorInput implements IEditorInput {
+
+    private List<SpecimenOrObservationBase> results;
+
+    /**
+     * @param results
+     */
+    public SpecimenEditorInput(List<SpecimenOrObservationBase> results) {
+        this.results = results;
+    }
+
+    /* (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() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /* (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#getName()
+     */
+    @Override
+    public String getName() {
+        return "inputName";
+    }
+
+    /* (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 "tooltip";
+    }
+
+    /**
+     * @return the results
+     */
+    public List<SpecimenOrObservationBase> getResults() {
+        return results;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/wizard/SpecimenSearchWizard.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/wizard/SpecimenSearchWizard.java
new file mode 100644 (file)
index 0000000..59cffbd
--- /dev/null
@@ -0,0 +1,109 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport.wizard;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.List;
+
+import org.apache.http.client.ClientProtocolException;
+import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IImportWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+
+import eu.etaxonomy.cdm.ext.biocase.BioCaseQuery;
+import eu.etaxonomy.cdm.ext.biocase.BioCaseQueryServiceWrapper;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.dataimport.DataImportEditor;
+import eu.etaxonomy.taxeditor.dataimport.SpecimenEditorInput;
+
+/**
+ * @author pplitzner
+ * @date 11.09.2013
+ *
+ */
+public class SpecimenSearchWizard extends Wizard implements IImportWizard {
+    private static final Logger logger = Logger.getLogger(SpecimenSearchWizard.class);
+
+    private BioCaseQueryServiceWrapper bioCaseQueryServiceWrapper;
+    private BioCaseQuery query;
+    private List<SpecimenOrObservationBase> results;
+
+    /**
+     *
+     */
+    public SpecimenSearchWizard() {
+        query = new BioCaseQuery();
+        bioCaseQueryServiceWrapper = new BioCaseQueryServiceWrapper();
+        this.results = getResults();
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.wizard.Wizard#performFinish()
+     */
+    @Override
+    public boolean performFinish() {
+        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+
+        try {
+            SpecimenEditorInput input = new SpecimenEditorInput(results);
+            input.getToolTipText();
+            page.openEditor(input, DataImportEditor.ID, true);
+        } catch ( PartInitException e ) {
+            //Put your exception handler here if you wish to
+        }
+        return true;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.wizard.Wizard#addPages()
+     */
+    @Override
+    public void addPages() {
+        addPage(new SpecimenSearchWizardPage("Specimen Search", results));
+    }
+
+    public List<SpecimenOrObservationBase> getResults(){
+        try {
+            return bioCaseQueryServiceWrapper.query(query);
+        } catch (ClientProtocolException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (URISyntaxException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+     */
+    @Override
+    public void init(IWorkbench workbench, IStructuredSelection selection) {
+    }
+
+    /**
+     * @return the query
+     */
+    public BioCaseQuery getQuery() {
+        return query;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/wizard/SpecimenSearchWizardPage.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/wizard/SpecimenSearchWizardPage.java
new file mode 100644 (file)
index 0000000..eeb3614
--- /dev/null
@@ -0,0 +1,55 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport.wizard;
+
+import java.util.List;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.ui.campanula.specimenSearch.SpecimenSearchController;
+
+/**
+ * @author pplitzner
+ * @date 12.09.2013
+ *
+ */
+public class SpecimenSearchWizardPage extends WizardPage{
+
+    private List<SpecimenOrObservationBase> results;
+
+    /**
+     * @param pageName
+     */
+    protected SpecimenSearchWizardPage(String pageName, List<SpecimenOrObservationBase> results) {
+        super(pageName);
+        this.results = results;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+     */
+    @Override
+    public void createControl(Composite parent) {
+        setControl(new SpecimenSearchController(parent).getComposite());
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.dialogs.DialogPage#setVisible(boolean)
+     */
+    @Override
+    public void setVisible(boolean visible) {
+        super.setVisible(visible);
+        if(visible==false){
+            ((SpecimenSearchWizard) getWizard()).getResults();
+        }
+    }
+}
index 9d8630de02850d3b5c639955532155d4a62b292c..7f38d77afd8a92335c3e0dd59018d90361bbaf05 100644 (file)
        <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.2.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.2.3-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.2.3-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.2.3-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.2.3-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.2.3-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.2.3-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.2.3-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.2.3-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.2.3-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.2.3-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.2.3-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.2.3-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.2.3-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.2.3-SNAPSHOT.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.2.3-SNAPSHOT-sources.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.2.3-SNAPSHOT.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-2.2.2.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/spring-aop-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/spring-beans-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/spring-beans-3.2.2.RELEASE.jar" sourcepath="/home/pplitzner/.m2/repository/org/springframework/org.springframework.beans/3.2.2.RELEASE/org.springframework.beans-3.2.2.RELEASE-sources.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/spring-context-3.2.2.RELEASE.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/spring-context-support-3.2.2.RELEASE.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/spring-core-3.2.2.RELEASE.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.2.4-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.2.4-SNAPSHOT.jar" sourcepath="lib/cdmlib-ext-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.2.4-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.2.4-SNAPSHOT.jar" sourcepath="lib/cdmlib-model-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.2.4-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.2.4-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.2.4-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.2.4-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.2.4-SNAPSHOT.jar" sourcepath="lib/cdmlib-services-3.2.4-SNAPSHOT-sources.jar"/>
        <classpathentry kind="output" path="target/classes"/>
 </classpath>
index c2d9fd206299de2aa8633702ad7ba8ca52663c7a..d9160a29750c262d85483e94d81d7c1b82ae5912 100644 (file)
@@ -35,6 +35,7 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.database.update.v25_30,
  eu.etaxonomy.cdm.database.update.v30_31,
  eu.etaxonomy.cdm.ext.bci,
+ eu.etaxonomy.cdm.ext.biocase,
  eu.etaxonomy.cdm.ext.common,
  eu.etaxonomy.cdm.ext.dc,
  eu.etaxonomy.cdm.ext.geo,
@@ -186,6 +187,7 @@ Export-Package: com.google.api,
  org.apache.commons.lang;uses:="org.apache.commons.lang.exception",
  org.apache.fop.apps,
  org.apache.http,
+ org.apache.http.client,
  org.apache.log4j;uses:="org.apache.log4j.helpers,org.apache.log4j.or,org.apache.log4j.spi",
  org.apache.log4j.chainsaw;
   uses:="org.apache.log4j,
@@ -594,4 +596,20 @@ Bundle-ClassPath: .,
  lib/yjp-controller-api-redist-9.0.8.jar,
  lib/google-api-translate-java-0.92.jar,
  lib/odfdom-0.8.jar,
- lib/h2mig_pagestore_addon.jar
+ lib/h2mig_pagestore_addon.jar,
+ lib/cdmlib-commons-3.2.4-SNAPSHOT-sources.jar,
+ lib/cdmlib-commons-3.2.4-SNAPSHOT.jar,
+ lib/cdmlib-ext-3.2.4-SNAPSHOT-sources.jar,
+ lib/cdmlib-ext-3.2.4-SNAPSHOT.jar,
+ lib/cdmlib-io-3.2.4-SNAPSHOT-sources.jar,
+ lib/cdmlib-io-3.2.4-SNAPSHOT.jar,
+ lib/cdmlib-model-3.2.4-SNAPSHOT-sources.jar,
+ lib/cdmlib-model-3.2.4-SNAPSHOT.jar,
+ lib/cdmlib-persistence-3.2.4-SNAPSHOT-sources.jar,
+ lib/cdmlib-persistence-3.2.4-SNAPSHOT.jar,
+ lib/cdmlib-print-3.2.4-SNAPSHOT-sources.jar,
+ lib/cdmlib-print-3.2.4-SNAPSHOT.jar,
+ lib/cdmlib-remote-3.2.4-SNAPSHOT-sources.jar,
+ lib/cdmlib-remote-3.2.4-SNAPSHOT.jar,
+ lib/cdmlib-services-3.2.4-SNAPSHOT-sources.jar,
+ lib/cdmlib-services-3.2.4-SNAPSHOT.jar
index 8694db759105f327b83622fa44af04d2e4f0dc35..c3e7cc475e3edc2b4605ea7f2c1a7f557a16fd20 100644 (file)
@@ -200,5 +200,21 @@ bin.includes = META-INF/,\
                lib/yjp-controller-api-redist-9.0.8.jar,\\r
                lib/google-api-translate-java-0.92.jar,\\r
                lib/odfdom-0.8.jar,\\r
-               lib/h2mig_pagestore_addon.jar\r
+               lib/h2mig_pagestore_addon.jar,\\r
+               lib/cdmlib-commons-3.2.4-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-commons-3.2.4-SNAPSHOT.jar,\\r
+               lib/cdmlib-ext-3.2.4-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-ext-3.2.4-SNAPSHOT.jar,\\r
+               lib/cdmlib-io-3.2.4-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-io-3.2.4-SNAPSHOT.jar,\\r
+               lib/cdmlib-model-3.2.4-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-model-3.2.4-SNAPSHOT.jar,\\r
+               lib/cdmlib-persistence-3.2.4-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-persistence-3.2.4-SNAPSHOT.jar,\\r
+               lib/cdmlib-print-3.2.4-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-print-3.2.4-SNAPSHOT.jar,\\r
+               lib/cdmlib-remote-3.2.4-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-remote-3.2.4-SNAPSHOT.jar,\\r
+               lib/cdmlib-services-3.2.4-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-services-3.2.4-SNAPSHOT.jar\r
 \r
index 9fb167cc8644ced846238dee40784f7341832719..4cf488ee33f1a17bac6e7badc2adfac6cf54f75d 100644 (file)
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar and b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar differ
index 25f118068392d39fda76feea6c855dfb3633db17..f131a431cbf20a8f2194c84912950bd3e0a6485b 100644 (file)
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar and b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar differ
index df7875ca6d99b8a571f90d0ba61dd54934d3e66a..a951ef9030fb6dfa797c384340a67361a46f2350 100644 (file)
@@ -26,8 +26,8 @@ import org.eclipse.ui.IEditorReference;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.handlers.HandlerUtil;
 
-import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
 import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor;
+import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
index d9c202c9974a8198d26fb9e0218558caca3f2dce..aa6dc659c686e2e0156a52e880c56f8c10557cfd 100644 (file)
@@ -17,8 +17,8 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
 
index 6db78f03df6db3863012bada0fca6d41e774b62c..6a295e64e9a9763f8d9f779ea4d814aab2523b6c 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -25,7 +25,7 @@ import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
@@ -37,6 +37,7 @@ import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
+
 /**
  * <p>TaxonEditorInput class.</p>
  *
@@ -47,20 +48,20 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPersistableElement {
 
        private ConversationHolder conversation;
-       
+
        private TaxonNode taxonNode;
 
        private TaxonEditorInputDataChangeBehaviour dataChangeBehavior;
-       
+
        private TaxonBase initiallySelectedTaxonBase;
-       
+
        private TaxonEditorInput(TaxonNode taxonNode, ConversationHolder conversation){
                this.conversation = conversation;
                this.taxonNode = taxonNode;
        }
-       
 
-       
+
+
        /**
         * <p>NewInstance</p>
         *
@@ -76,26 +77,26 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
                        throw e;
                }
        }
-       
+
     /**
-     * 
+     *
      * @param taxonNodeUuid
      * @param conversation
      * @return
      */
     private static TaxonEditorInput NewInstance(UUID taxonNodeUuid, ConversationHolder conversation){
-       
-       
+
+
        TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid, null);
-               
+
                if(taxonNode == null){
                        EditorUtil.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not type TaxonBase.");
                        return null;
-               }       
-               
+               }
+
        return new TaxonEditorInput(taxonNode, conversation);
     }
-    
+
     /**
      * <p>NewInstanceFromTaxonBase</p>
      *
@@ -104,20 +105,20 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
      */
     public static TaxonEditorInput NewInstanceFromTaxonBase(UUID taxonBaseUuid){
        ConversationHolder conversation = CdmStore.createConversation();
-       
+
        TaxonEditorInput input = null;
-       
+
        TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid);
        if(taxonBase.isOrphaned()) {
                EditorUtil.warningDialog("Orphaned Taxon", TaxonEditorInput.class, "This is an orphaned taxon i.e. a taxon that is not connected to a classification and not having any taxonomic relationships. Editing of orphaned taxon is currently not supported.");
        }
        else if(taxonBase.isInstanceOf(Taxon.class)){
                Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class);
-               
+
                if (taxon.isMisapplication()){
                        // TODO get accepted taxon
                        EditorUtil.info("trying to open Mispplied Name ");
-                       
+
                        Set<Taxon> acceptedTaxa = new HashSet<Taxon>();
                        Set<TaxonRelationship> relations = taxon.getRelationsFromThisTaxon();
                        for(TaxonRelationship relation : relations){
@@ -126,22 +127,22 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
                                }
                        }
                        input =  getInputForMultipleTaxa(conversation, acceptedTaxa);
-                       
+
                }else{
                        input = getInputForMultipleNodes(conversation, taxon.getTaxonNodes());
                }
        }else if(taxonBase instanceof Synonym){
                Synonym synonym = (Synonym) taxonBase;
-               
+
                Set<Taxon> taxa = synonym.getAcceptedTaxa();
                input = getInputForMultipleTaxa(conversation, taxa);
        }
-       
+
        input.setInitiallySelectedTaxonBase(taxonBase);
-       
+
        return input;
     }
-    
+
        private static TaxonEditorInput getInputForMultipleNodes(ConversationHolder conversation, Set<TaxonNode> taxonNodes){
        if(taxonNodes.size() == 1){
                TaxonNode taxonNode = taxonNodes.iterator().next();
@@ -149,7 +150,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
        }else if(taxonNodes.size() > 1){
                        TaxonNode taxonNode = ChooseFromMultipleTaxonNodesDialog.choose(taxonNodes);
                        if(taxonNode != null){
-                               return NewInstance(taxonNode.getUuid(), conversation);                  
+                               return NewInstance(taxonNode.getUuid(), conversation);
                        }
                }else if(taxonNodes.size() == 0){
                        // this is an undesired state
@@ -157,7 +158,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
                }
        return null;
     }
-    
+
     private static TaxonEditorInput getInputForMultipleTaxa(ConversationHolder conversation, Set<Taxon> taxa){
        if(taxa.size() == 1){
                Taxon taxon = taxa.iterator().next();
@@ -176,7 +177,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
                }
        return null;
     }
-    
+
     /**
      * <p>NewEmptyInstance</p>
      *
@@ -185,19 +186,19 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
      */
     public static TaxonEditorInput NewEmptyInstance(UUID parentNodeUuid){
        ConversationHolder conversation = CdmStore.createConversation();
-               
+
                TaxonNameBase<?, ?> name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null);
-               ITreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid);
-               
+               ITaxonTreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid);
+
                Taxon newTaxon = Taxon.NewInstance(name, parentNode.getReference());
-               TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference(), null);
-               
+               TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference());
+
                // add the new taxon to the editors persistence context
                UUID newTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).save(newTaxonNode);
-               
+
                return new TaxonEditorInput(newTaxonNode, conversation);
     }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#exists()
         */
@@ -206,7 +207,8 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         *
         * @return a boolean.
         */
-       public boolean exists() {
+       @Override
+    public boolean exists() {
                return taxonNode != null;
        }
 
@@ -218,7 +220,8 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         *
         * @return a {@link org.eclipse.jface.resource.ImageDescriptor} object.
         */
-       public ImageDescriptor getImageDescriptor() {
+       @Override
+    public ImageDescriptor getImageDescriptor() {
                return null;
        }
 
@@ -230,7 +233,8 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getName() {
+       @Override
+    public String getName() {
                if(getTaxon() == null){
                        return null;
                }
@@ -239,7 +243,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
                        return "New taxon";
                } else {
                        return name.getTitleCache();
-               }       
+               }
        }
 
        /* (non-Javadoc)
@@ -250,7 +254,8 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         *
         * @return a {@link org.eclipse.ui.IPersistableElement} object.
         */
-       public IPersistableElement getPersistable() {
+       @Override
+    public IPersistableElement getPersistable() {
 //             if(CdmStore.isActive()){
 //                     TaxonNode test = CdmStore.getTaxonTreeService().getTaxonNodeByUuid(taxonNode.getUuid());
 //                     boolean isPersistable = CdmStore.getTaxonTreeService().getTaxonNodeByUuid(taxonNode.getUuid()) != null;
@@ -269,7 +274,8 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getToolTipText() {
+       @Override
+    public String getToolTipText() {
                return getName();
        }
 
@@ -277,27 +283,29 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
         */
        /** {@inheritDoc} */
-       public Object getAdapter(Class adapter) {
+       @Override
+    public Object getAdapter(Class adapter) {
 
                if (adapter == Taxon.class) {
                        return taxonNode.getTaxon();
                }
-               
+
                if (adapter == TaxonNode.class) {
                        return taxonNode;
                }
-               
+
                return null;
        }
-       
+
        /**
         * {@inheritDoc}
         *
         * Overrides equals to ensure that a taxon can only be edited by
         * one editor at a time.
         */
-       public boolean equals(Object obj) {
-               if (TaxonEditorInput.class.equals(obj.getClass()) 
+       @Override
+    public boolean equals(Object obj) {
+               if (TaxonEditorInput.class.equals(obj.getClass())
                                && getTaxon() != null
                                && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())){
                        if(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
@@ -316,7 +324,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
        public Taxon getTaxon(){
                return taxonNode.getTaxon();
        }
-       
+
        /**
         * <p>Getter for the field <code>taxonNode</code>.</p>
         *
@@ -325,7 +333,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
        public TaxonNode getTaxonNode() {
                return taxonNode;
        }
-       
+
        /*
         * (non-Javadoc)
         * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
@@ -335,7 +343,8 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         */
-       public ConversationHolder getConversationHolder() {
+       @Override
+    public ConversationHolder getConversationHolder() {
                return conversation;
        }
 
@@ -344,11 +353,12 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
         */
        /** {@inheritDoc} */
-       public void update(CdmDataChangeMap events) {
+       @Override
+    public void update(CdmDataChangeMap events) {
                if(dataChangeBehavior == null){
                        dataChangeBehavior = new TaxonEditorInputDataChangeBehaviour(this);
                }
-               
+
                DataChangeBridge.handleDataChange(events, dataChangeBehavior);
        }
 
@@ -360,7 +370,8 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getFactoryId() {
+       @Override
+    public String getFactoryId() {
                return TaxonEditorInputFactory.getFactoryId();
        }
 
@@ -368,11 +379,12 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
         * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
         */
        /** {@inheritDoc} */
-       public void saveState(IMemento memento) {
+       @Override
+    public void saveState(IMemento memento) {
                TaxonEditorInputFactory.saveState(memento, this);
        }
 
-    
+
     /**
      * <p>Setter for the field <code>initiallySelectedTaxonBase</code>.</p>
      *
@@ -390,7 +402,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
        public TaxonBase getInitiallySelectedTaxonBase() {
                return initiallySelectedTaxonBase;
        }
-       
+
        @Override
        public String toString() {
                return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
index b4dafb7e7374874d2f83fd4509c3893e446600f8..a12ebd3bff02dd4eb79fba7479f888adce284649 100644 (file)
@@ -18,12 +18,12 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IFeatureTreeService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
 import eu.etaxonomy.cdm.model.common.MarkerType;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.FeatureNode;\r
 import eu.etaxonomy.cdm.model.description.FeatureTree;\r
-import eu.etaxonomy.cdm.model.description.Modifier;\r
 import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
@@ -122,21 +122,34 @@ public class UseObjectManager extends ContextListenerAdapter{
 \r
 \r
        private void createHumanGroupVocabulary(IProgressMonitor monitor,ConversationHolder conversation) {\r
-               TermVocabulary<Modifier> humanGroupVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidHumanGroupVocabulary);\r
+               TermVocabulary<DefinedTerm> humanGroupVocabulary =  (TermVocabulary<DefinedTerm>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidHumanGroupVocabulary);\r
                if (humanGroupVocabulary == null){\r
                        monitor.subTask("create human group vocabulary");\r
                        URI termSourceUri = null;\r
                        try {\r
-                               termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");\r
+                               termSourceUri = new URI("eu.etaxonomy.cdm.model.description.DefinedTerm");\r
                        } catch (URISyntaxException e) {\r
                                e.printStackTrace();\r
                        }\r
-                       humanGroupVocabulary = TermVocabulary.NewInstance(UsageTermCollection.humanGroupLabel, UsageTermCollection.humanGroupLabel, null, termSourceUri);\r
+                       \r
+                       //FIXME:3.3MC----\r
+                       //humanGroupVocabulary = TermVocabulary.NewInstance(UsageTermCollection.humanGroupLabel, UsageTermCollection.humanGroupLabel, null, termSourceUri);\r
+                       humanGroupVocabulary = null;\r
                        humanGroupVocabulary.setUuid(UsageTermCollection.uuidHumanGroupVocabulary);\r
-                       Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
+                       //FIXME:3.3MC----\r
+                       \r
+                       //FIXME:3.3MC----\r
+                       //DefinedTerm newDummyModifier = DefinedTerm.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
+                       DefinedTerm newDummyModifier = null;\r
                        newDummyModifier.setUuid(UsageTermCollection.uuidHumanGroupDummy);\r
-                       Modifier newSubDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
+                       //FIXME:3.3MC----\r
+                       \r
+                       //FIXME:3.3MC----\r
+                       //DefinedTerm newSubDummyModifier = DefinedTerm.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
+                       DefinedTerm newSubDummyModifier = null;\r
                        newSubDummyModifier.setUuid(UsageTermCollection.uuidEthnicGroupDummy);\r
+                       //FIXME:3.3MC----\r
+                       \r
                        newDummyModifier.addIncludes(newSubDummyModifier);\r
                        humanGroupVocabulary.addTerm(newDummyModifier);\r
                        CdmStore.getService(IVocabularyService.class).saveOrUpdate(humanGroupVocabulary);\r
@@ -146,20 +159,28 @@ public class UseObjectManager extends ContextListenerAdapter{
 \r
 \r
        private void createPlantVocabulary(IProgressMonitor monitor, ConversationHolder conversation) {\r
-               TermVocabulary<Modifier> plantPartVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidPlantPartVocabulary);\r
+               TermVocabulary<DefinedTerm> plantPartVocabulary =  (TermVocabulary<DefinedTerm>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidPlantPartVocabulary);\r
                if (plantPartVocabulary == null){\r
                        monitor.subTask("create plant part vocabulary");\r
                        URI termSourceUri = null;\r
                        try {\r
-                               termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");\r
+                               termSourceUri = new URI("eu.etaxonomy.cdm.model.description.DefinedTerm");\r
                        } catch (URISyntaxException e) {\r
                                e.printStackTrace();\r
                        }\r
-                       plantPartVocabulary = TermVocabulary.NewInstance(UsageTermCollection.plantPartLabel, UsageTermCollection.plantPartLabel, null, termSourceUri);\r
+                       //FIXME:3.3MC----\r
+                       //plantPartVocabulary = TermVocabulary.NewInstance(UsageTermCollection.plantPartLabel, UsageTermCollection.plantPartLabel, null, termSourceUri);\r
+                       plantPartVocabulary = null;\r
                        plantPartVocabulary.setUuid(UsageTermCollection.uuidPlantPartVocabulary);\r
-                       Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
+                       //FIXME:3.3MC----\r
+                       \r
+                       //FIXME:3.3MC----\r
+                       //DefinedTerm newDummyModifier = DefinedTerm.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
+                       DefinedTerm newDummyModifier = null;\r
                        newDummyModifier.setUuid(UsageTermCollection.uuidPlantPartDummy);\r
                        plantPartVocabulary.addTerm(newDummyModifier);\r
+                       //FIXME:3.3MC----\r
+                       \r
                        CdmStore.getService(IVocabularyService.class).saveOrUpdate(plantPartVocabulary);\r
                        conversation.commit(true);\r
                }\r
@@ -167,19 +188,26 @@ public class UseObjectManager extends ContextListenerAdapter{
 \r
 \r
        private void createCountryVocabulary(IProgressMonitor monitor, ConversationHolder conversation) {\r
-               TermVocabulary<Modifier> countryVocabulary =  (TermVocabulary<Modifier>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidCountryVocabulary);\r
+               TermVocabulary<DefinedTerm> countryVocabulary =  (TermVocabulary<DefinedTerm>) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidCountryVocabulary);\r
                if (countryVocabulary == null){\r
                        monitor.subTask("create country vocabulary");\r
                        URI termSourceUri = null;\r
                        try {\r
-                               termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier");\r
+                               termSourceUri = new URI("eu.etaxonomy.cdm.model.description.DefinedTerm");\r
                        } catch (URISyntaxException e) {\r
                                e.printStackTrace();\r
                        }\r
-                       countryVocabulary = TermVocabulary.NewInstance(UsageTermCollection.countryLabel, UsageTermCollection.countryLabel, null, termSourceUri);\r
+                       //FIXME:3.3MC----\r
+                       //countryVocabulary = TermVocabulary.NewInstance(UsageTermCollection.countryLabel, UsageTermCollection.countryLabel, null, termSourceUri);\r
+                       countryVocabulary = null;\r
                        countryVocabulary.setUuid(UsageTermCollection.uuidCountryVocabulary);\r
-                       Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
+                       //FIXME:3.3MC----\r
+                       \r
+                       //FIXME:3.3MC----\r
+                       //DefinedTerm newDummyModifier = DefinedTerm.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
+                       DefinedTerm newDummyModifier = null;\r
                        newDummyModifier.setUuid(UsageTermCollection.uuidCountryDummy);\r
+                       //FIXME:3.3MC----\r
                        countryVocabulary.addTerm(newDummyModifier);\r
                        CdmStore.getService(IVocabularyService.class).saveOrUpdate(countryVocabulary);\r
                        conversation.commit(true);\r
@@ -197,8 +225,11 @@ public class UseObjectManager extends ContextListenerAdapter{
                        } catch (URISyntaxException e) {\r
                                e.printStackTrace();\r
                        }\r
-                       stateVocabulary = TermVocabulary.NewInstance(UsageTermCollection.useCategoryVocabularyLabel, UsageTermCollection.useCategoryVocabularyLabel, null, termSourceUri);\r
+                       //FIXME:3.3MC----\r
+                       //stateVocabulary = TermVocabulary.NewInstance(UsageTermCollection.useCategoryVocabularyLabel, UsageTermCollection.useCategoryVocabularyLabel, null, termSourceUri);\r
+                       stateVocabulary = null;\r
                        stateVocabulary.setUuid(UsageTermCollection.uuidUseCategoryVocabulary);\r
+                       //FIXME:3.3MC----\r
                        State newDummyState = State.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
                        newDummyState.setUuid(UsageTermCollection.uuidUseCategoryDummy);\r
                        State newDummySubCat = State.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
index 648e35a6aa197b55afbec8f72d96caa9cd9073da..0f7cadb8a79e08dba1229f1a37409b61cf432619 100644 (file)
@@ -43,8 +43,10 @@ public class TaxeditorEditorPlugin extends AbstractUIPlugin {
                EditorStateManager stateManager = new EditorStateManager();
                CdmStore.getContextManager().addContextListener(stateManager);
                
-               UseObjectManager useManager = new UseObjectManager();
-               CdmStore.getContextManager().addContextListener(useManager);
+               //FIXME:3.3MC----
+               //UseObjectManager useManager = new UseObjectManager();
+               //CdmStore.getContextManager().addContextListener(useManager);
+               //FIXME:3.3MC----
                
                plugin = this;
                logger.trace("Plugin started: " + this.getBundle().getSymbolicName());
index 0e1e3be37fcb3a017cbd72e6d1f7f82cd0081bde..492e597fb1621aacefb488728c06fe5aacbdbc36 100644 (file)
@@ -23,13 +23,11 @@ import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.DropTarget;
 import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
index 507d44cf7748c8ee5f137be80c1983f156a40819..55c685bdfbc2213e4ddf4c10c1d312453b9e3036 100644 (file)
@@ -18,14 +18,11 @@ import org.eclipse.core.commands.IHandler;
 import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.editor.FormEditor;
 import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
index fa39cab531a7475977055a068e3e35e49c88d1bb..5d8b351fdddda8a63fd5f34e275d05c4dabe0ce2 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -18,7 +18,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -36,37 +36,37 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @version 1.0
  */
 public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPostOperation {
-       
+
        private Taxon newTaxon;
        private Synonym synonym;
-       private ITreeNode parentNode;
+       private ITaxonTreeNode parentNode;
 
        private TaxonNode newNode;
 
        private Synonym[] synonymsInHomotypicalGroup;
-       
+
        /**
         * <p>Constructor for ChangeSynonymToAcceptedTaxonOperation.</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 parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
+        * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} 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.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public ChangeSynonymToAcceptedTaxonOperation(String label, IUndoContext undoContext,
-                       Taxon taxon, ITreeNode parentNode, Synonym synonym, Synonym[] synonymsInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+                       Taxon taxon, ITaxonTreeNode parentNode, Synonym synonym, Synonym[] synonymsInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
 
                this.taxon = taxon;
                this.parentNode = parentNode;
-               this.synonym = synonym; 
+               this.synonym = synonym;
                this.synonymsInHomotypicalGroup = synonymsInHomotypicalGroup;
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
         */
@@ -74,7 +74,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               
+
                try {
                        newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym, taxon, true, true, null, null);
                } catch (HomotypicalGroupChangeException e) {
@@ -82,17 +82,17 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                        return postExecute(null);
                }
                monitor.worked(20);
-               
+
                synonym.setSec(null);
-               newNode = parentNode.addChildTaxon(newTaxon, null, null, null);
-               
+               newNode = parentNode.addChildTaxon(newTaxon, null, null);
+
                if(synonymsInHomotypicalGroup != null){
                        Taxon taxon = newNode.getTaxon();
                        for (Synonym synonym : synonymsInHomotypicalGroup){
                                taxon.addHomotypicSynonym(synonym, null, null);
                        }
                }
-               
+
                monitor.worked(40);
 
                return postExecute(newNode);
@@ -115,10 +115,10 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               
+
                // TODO implement - biggest problem is that any window open for new taxon must be closed first
                StoreUtil.warn(this.getClass(), "Not yet implemented");
-               
+
                return postExecute(taxon);
        }
 
index 766c5cf8dfc0ab60daf4f42c4364afb0be16f5a2..0c10b9ad7df145bd2f37f166c3d583d5a79120d6 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -31,7 +31,6 @@ import eu.etaxonomy.cdm.model.description.FeatureNode;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.UsageTermCollection;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -42,7 +41,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * <p>
  * DynamicFeatureMenu class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created 17.04.2009
  * @version 1.0
@@ -56,7 +55,7 @@ public class DynamicFeatureMenu extends CompoundContributionItem {
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
         */
@@ -65,7 +64,8 @@ public class DynamicFeatureMenu extends CompoundContributionItem {
        protected IContributionItem[] getContributionItems() {
 
                return new IContributionItem[] { new ContributionItem() {
-                       public void fill(Menu menu, int index) {
+                       @Override
+            public void fill(Menu menu, int index) {
 
                                ISelection selection = selectionService
                                                .getSelection(DescriptiveViewPart.ID);
@@ -90,7 +90,7 @@ public class DynamicFeatureMenu extends CompoundContributionItem {
                                                createMenuItem(menu, featureNode.getFeature());
 
                                                // add possible children to the menu
-                                               for (FeatureNode childNode : featureNode.getChildren()) {
+                                               for (FeatureNode childNode : featureNode.getChildNodes()) {
                                                        createMenuItem(menu, childNode.getFeature());
                                                }
                                        } else if (selectedElement instanceof DescriptionElementBase) {
@@ -111,10 +111,12 @@ public class DynamicFeatureMenu extends CompoundContributionItem {
                menuItem.setText(deproxiedFeature.getLabel());
                menuItem.addSelectionListener(new SelectionListener() {
 
-                       public void widgetDefaultSelected(SelectionEvent e) {
+                       @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
                        }
 
-                       public void widgetSelected(SelectionEvent ev) {
+                       @Override
+            public void widgetSelected(SelectionEvent ev) {
                                Event event = new Event();
                                event.data = deproxiedFeature;
                                try {
@@ -130,10 +132,10 @@ public class DynamicFeatureMenu extends CompoundContributionItem {
 
        /**
         * Retrieves the feature tree associated with the given description
-        * 
+        *
         * TODO as of now this is always the same thing because feature trees may
         * not be associated to descriptions yet.
-        * 
+        *
         * @param description
         * @return
         */
index 94643dbcc4486a519126626debeae623b8940e35..bddcfbfea2434d6489214201d86b576d7ba571e0 100644 (file)
@@ -25,7 +25,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
@@ -63,9 +63,9 @@ public class MediaContentProvider implements ITreeContentProvider{
                                return getImages((DescriptionBase) parentElement).toArray();
                        } 
                }
-               else if (parentElement instanceof DerivedUnitBase){
+               else if (parentElement instanceof DerivedUnit){
                        try {
-                               DerivedUnitFacade facade = DerivedUnitFacade.NewInstance((DerivedUnitBase) parentElement);
+                               DerivedUnitFacade facade = DerivedUnitFacade.NewInstance((DerivedUnit) parentElement);
                
                                // TODO at the moment we always create image galleries because the facade is like so.
                                // this should definitely change and we want to use normal getters and setters here
index 234dfb2388d52dcfa47db2197aebc4545839a062..a18a10293bd6517d38003be5af1a29763df8bca7 100644 (file)
@@ -7,22 +7,12 @@ 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.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.handlers.HandlerUtil;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
-import eu.etaxonomy.cdm.model.description.TextData;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
index 1858c850ad2477f3a44a36d8cbdea413e1f41ad6..6f85e52026102d7a92f78b23e5c5f204effb231b 100644 (file)
@@ -15,11 +15,11 @@ import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;\r
 import org.eclipse.jface.viewers.StyledString;\r
 \r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.LanguageString;\r
 import eu.etaxonomy.cdm.model.description.CategoricalData;\r
 import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
-import eu.etaxonomy.cdm.model.description.Modifier;\r
 import eu.etaxonomy.cdm.model.description.StateData;\r
 import eu.etaxonomy.cdm.model.description.TextData;\r
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;\r
@@ -49,9 +49,9 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                        }\r
                }\r
                else if (element instanceof CategoricalData) {\r
-                       if (!((CategoricalData) element).getStates().isEmpty()) {\r
+                       if (!((CategoricalData) element).getStateData().isEmpty()) {\r
                                boolean isUseCategoryAbsent = true;\r
-                               for (StateData statedata : ((CategoricalData) element).getStates()) {\r
+                               for (StateData statedata : ((CategoricalData) element).getStateData()) {\r
                                        if(statedata.getState() != null && statedata.getModifyingText().get(CdmStore.getDefaultLanguage()) !=null && statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText().equals(UsageTermCollection.useCategoryVocabularyLabel)) {\r
                                                text = text + statedata.getState().getTitleCache() + ";";\r
                                                isUseCategoryAbsent = false;\r
@@ -62,7 +62,7 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                                }\r
                                \r
                                boolean isUseSubCategoryAbsent = true;\r
-                               for (StateData statedata : ((CategoricalData) element).getStates()) {\r
+                               for (StateData statedata : ((CategoricalData) element).getStateData()) {\r
                                        if(statedata.getState() != null && statedata.getModifyingText().get(CdmStore.getDefaultLanguage()) !=null && statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText().equals(UsageTermCollection.useSubCategoryVocabularyLabel)) {\r
                                                text = text + statedata.getState().getTitleCache() + ";";\r
                                                isUseSubCategoryAbsent = false;\r
@@ -76,13 +76,13 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                                text = text + UsageTermCollection.notAvailableLabel + ";" + UsageTermCollection.notAvailableLabel + ";";\r
                        }\r
                        if (!((CategoricalData) element).getModifiers().isEmpty()) {\r
-                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                               for (DefinedTerm modifier: ((CategoricalData) element).getModifiers()){\r
                                        modifier.getPartOf();\r
                                        modifier.getVocabulary();\r
                                }\r
                                \r
                                boolean isPlantPartAbsent = true;\r
-                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                               for (DefinedTerm modifier: ((CategoricalData) element).getModifiers()){\r
                                        if(GetVocabularyType(modifier, UsageTermCollection.plantPartLabel)) {\r
                                                text = text +  modifier.getTitleCache()+ ";";\r
                                                isPlantPartAbsent = false;\r
@@ -94,7 +94,7 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                                }\r
                                \r
                                boolean isHumanGroupAbsent = true;\r
-                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                               for (DefinedTerm modifier: ((CategoricalData) element).getModifiers()){\r
                                        if(GetVocabularyType(modifier, UsageTermCollection.humanGroupLabel)) {\r
                                                text = text +  modifier.getTitleCache()+ ";";\r
                                                isHumanGroupAbsent = false;\r
@@ -105,7 +105,7 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                                }\r
                                \r
                                boolean isEthnicGroupAbsent = true;\r
-                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                               for (DefinedTerm modifier: ((CategoricalData) element).getModifiers()){\r
                                        if(GetVocabularyType(modifier, UsageTermCollection.ethnicGroupLabel)) {\r
                                                text = text +  modifier.getTitleCache()+ ";";\r
                                                isEthnicGroupAbsent = false;\r
@@ -116,7 +116,7 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                                }\r
                                \r
                                boolean isCountryAbsent = true;\r
-                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                               for (DefinedTerm modifier: ((CategoricalData) element).getModifiers()){\r
                                        if(GetVocabularyType(modifier, UsageTermCollection.countryLabel)) {\r
                                                text = text +  modifier.getTitleCache()+ ";";\r
                                                isCountryAbsent = false;\r
@@ -164,7 +164,7 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
         * @param vocabularyExpected\r
         * @return\r
         */\r
-       private boolean GetVocabularyType(Modifier term, String vocabularyExpected) {\r
+       private boolean GetVocabularyType(DefinedTerm term, String vocabularyExpected) {\r
                if ((term.getPartOf() != null)  && (term.getPartOf().getTitleCache().equals(vocabularyExpected))) {\r
                        return true;\r
                }\r
index f3dae1afbf4e3ea4c650d881cccbd12c5e3c4e7f..c30009bd6b0f4a63eeb0754e7aac43b3d5e796ca 100644 (file)
@@ -49,10 +49,10 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
                newParentTaxon = Taxon.NewInstance(null, null);
                
                tree = Classification.NewInstance(null);
-               oldParentTaxonNode = tree.addChildTaxon(oldParentTaxon, null, null, null);
-               newParentTaxonNode = tree.addChildTaxon(newParentTaxon, null, null, null);
+               oldParentTaxonNode = tree.addChildTaxon(oldParentTaxon, null, null);
+               newParentTaxonNode = tree.addChildTaxon(newParentTaxon, null, null);
                
-               taxonNode = oldParentTaxonNode.addChildTaxon(taxon, null, null, null);
+               taxonNode = oldParentTaxonNode.addChildTaxon(taxon, null, null);
                
                operation = null;//new MoveTaxonOperation("Move Taxon To Different Parent", undoContext, taxonNode, newParentTaxonNode, postOperation);
        }
index 7f4d1d4859ed626314fb8b7a94bcd21dee04b8e5..37065b5d6f3d18f4f03e85ee7e2f88142703b0db 100644 (file)
@@ -107,7 +107,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
                
                // Create a concept relation
                concept = Taxon.NewInstance(NonViralName.NewInstance(null), null);
-               conceptRelationshipType = new TaxonRelationshipType();
+               conceptRelationshipType = TaxonRelationshipType.CONGRUENT_TO();
                concept.addTaxonRelation(taxon, conceptRelationshipType, null, null);   
                
                // Create a description
index e0c76546294c5a6edd5adf077bbbed549d5ac7e2..ed033aadb46e9ad81645dae6134b4c5d669b91d9 100644 (file)
@@ -34,7 +34,7 @@ The <strong>"Create New Datasource"</strong> panel will appear.
                The <strong>"Enter credentials for embedded H2 database"</strong> pop-up box will open.
        </li>
        <li>Enter a Database name (for example the name of a user or a taxonomic group).</li>
-       <li>Select <strong>ICBN</strong> or <strong>ICZN</strong> as appropriate.</li>
+       <li>Select <strong>ICNAFP</strong> or <strong>ICZN</strong> as appropriate.</li>
        <li>Click <strong>Finish</strong>.</li>
        <p><img src="../img/2_10f.jpg" alt="" /></p> 
 </ol>
@@ -45,4 +45,4 @@ The <strong>"Create New Datasource"</strong> panel will appear.
 <p>The new Datasource will appear in the Datasource panel: <p><img src="../img/2_10g.jpg" alt="" /></p></p> 
  
 <p>The process to create new datasources can be repeated as many times as desired.</p>
\ No newline at end of file
index 95549cea6c18387aaba29fad712188f3cea00b8e..5a03b8094930e45fa2bf88467d3a9627aadeeeed 100644 (file)
@@ -25,7 +25,7 @@
                                        <li><strong>Matching:</strong> Experimental feature, not yet fully functional.</li>
                                        <li><strong>Taxonomic:</strong> Name Relationships Type: for example "misspelling for", "basionym for".</li>
                                        <li><strong>Name Type Designation Status:</strong> for example "monotypy", "present designation"</li>
-                                       <li><strong>Nomenclatural Code:</strong> ICBN or ICZN.</li>
+                                       <li><strong>Nomenclatural Code:</strong> ICNAFP or ICZN.</li>
                                        <li><strong>Nomenclatural Status Type:</strong> for example "invalid", "conserved".</li>
                                        <li><strong>Ranks:</strong> for example "cultivar", "tribe".</li>
                                        <li><strong>Specimen Type Designation Status:</strong> for example "epitype", "holotype".</li>
index 7d16f19040578474510ab27b9b4278d33e2539e6..76f8bc0ab6ce1065f2ef26f27f0fff02f36c81a2 100644 (file)
@@ -18,8 +18,6 @@ import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.ui.navigator.IDescriptionProvider;
 
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 
 /**
index de5a605955ee26b148694a98058d20a4b2ee277b..158423da0154ce0701d6049670909d4b8721e17b 100644 (file)
@@ -12,9 +12,9 @@ package eu.etaxonomy.taxeditor.navigation.navigator;
 
 import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.ui.navigator.IDescriptionProvider;
 
index b50082362db6064b6c07a36c6fe6086879e14e24..9816d777b3cc18df0912e5718a9b2c1d8bbf955a 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -21,7 +21,7 @@ import org.eclipse.ui.IEditorPart;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
@@ -38,13 +38,13 @@ import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
  * @created 01.04.2009
  * @version 1.0
  */
-public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements 
+public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
                IDataChangeBehavior {
 
        private TaxonNavigator source;
 
        private Set<CdmBase> staleObjects;
-       
+
        /**
         * <p>Constructor for TaxonNavigatorDataChangeBehavior.</p>
         *
@@ -53,7 +53,7 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
        public TaxonNavigatorDataChangeBehavior(TaxonNavigator taxonNavigator) {
                source = taxonNavigator;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
         */
@@ -64,22 +64,22 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
         * @return a boolean.
         */
        public boolean isRelevant(CdmDataChangeMap events) {
-               
+
                // TODO react only on insert/update/delete of taxon and synonym objects
                // and on update of name objects
                boolean relevant = false;
                staleObjects = new HashSet<CdmBase>();
-               
+
                for(CdmDataChangeEvent event : events.getAllEvents()){
                        EventType eventType = event.getEventType();
                        CdmBase eventEntity = event.getEntity();
-                       
+
                        // all tree node changes are relevant
-                       if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE) 
-                                       && event.getEntity() instanceof ITreeNode){
+                       if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
+                                       && event.getEntity() instanceof ITaxonTreeNode){
                                return true;
                        }
-                       
+
                        // name updates of the accepted taxon of open editors are relevant
                        if(eventType == EventType.UPDATE){
                                TaxonNameBase name = null;
@@ -90,17 +90,17 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
                                }else{
                                        continue;
                                }
-                               
+
                                Set<IEditorPart> openEditors = NavigationUtil.getOpenEditors();
                                for(IEditorPart editor : openEditors){
-                                       
+
                                        if(name.equals(((TaxonEditorInput) editor.getEditorInput()).getTaxon().getName())){
                                                return true;
                                        }
                                }
                        }
-                       
-                       
+
+
 //                     if(eventType == EventType.UPDATE){
 //                             relevant = true;
 //                             CdmBase entity = event.getEntity();
@@ -111,9 +111,9 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
 //                             }
 //                     }
                }
-               
+
                return false;
-               
+
                // @deprecated
                // react on everything except load
 //             if(events.sizeByEventType(EventType.INSERT) > 0){
@@ -131,25 +131,27 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
         * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
         */
        /** {@inheritDoc} */
-       public void reactOnDataChange(CdmDataChangeMap events) {
+       @Override
+    public void reactOnDataChange(CdmDataChangeMap events) {
                if(isRelevant(events)){
 
                        final Display display = Display.getCurrent();
                        Job job = new Job("Updating Taxon Navigator") {
-                               
+
                                @Override
                                protected IStatus run(IProgressMonitor monitor) {
                                        monitor.beginTask("Updating Taxon Navigator", 3);
                                        monitor.worked(1);
-                                       
+
                                        // clear the session completely
                                        monitor.subTask("Clearing Taxon Navigators session");
                                        display.asyncExec(new Runnable() {
-                                                public void run() {
+                                                @Override
+                        public void run() {
                                                         source.getConversationHolder().clear();
                                                 }
-                                       });                                     
-                                       // FIXME completely clearing the session is a brute force approach. 
+                                       });
+                                       // FIXME completely clearing the session is a brute force approach.
                                        // It would be much more elegant to clear only those elements that have been changed.
                                        // I could not get that to work but we should consider workin on this because we might
                                        // run into serious performance issues, especially when it comes to large trees
@@ -157,26 +159,27 @@ public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviou
                                        // at least, we moved this to a job so it can run in a background thred
                                        // seems to improve the situation but not sure if final solution
                                        monitor.worked(1);
-                                       
+
                                        monitor.subTask("Refreshing viewer");
-                                       
+
                                        display.asyncExec(new Runnable() {
-                                           public void run() {
+                                           @Override
+                        public void run() {
                                                source.refresh();
                                            }
                                        });
-                                       
-                                       
-                                       
+
+
+
                                        monitor.worked(1);
                                        monitor.done();
                                        return Status.OK_STATUS;
                                }
                        };
-                       
+
                        job.setPriority(Job.SHORT);
                        job.schedule();
-                       
+
                }
        }
 }
index 7819132c18c671174cd9eb9a8e2f677b56fbcbeb..c7a431daf0b0df9e1c6b47149300112a9fe82d91 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -15,7 +15,7 @@ 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.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 
 /**
@@ -30,29 +30,32 @@ public class TaxonNodeContentProvider implements ITreeContentProvider {
                        .getLogger(TaxonNodeContentProvider.class);
 
        private static final Object[] NO_CHILDREN = new Object[0];
-       
+
        /** {@inheritDoc} */
-       public Object[] getChildren(Object parentElement) {
-               Object[] children = null;               
-               
-               if(parentElement instanceof ITreeNode){
-                       ITreeNode treeNode = (ITreeNode) HibernateProxyHelper.deproxy(parentElement);
+       @Override
+    public Object[] getChildren(Object parentElement) {
+               Object[] children = null;
+
+               if(parentElement instanceof ITaxonTreeNode){
+                   ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement);
                        children = treeNode.getChildNodes().toArray();
                }
-               
+
                return children != null ? children : NO_CHILDREN;
        }
 
        /** {@inheritDoc} */
-       public Object getParent(Object element) {
+       @Override
+    public Object getParent(Object element) {
                if(element instanceof TaxonNode){
                        return ((TaxonNode) element).getParent();
-               }               
+               }
                return null;
        }
 
        /** {@inheritDoc} */
-       public boolean hasChildren(Object element) {
+       @Override
+    public boolean hasChildren(Object element) {
                if(element instanceof TaxonNode){
                        return ((TaxonNode) element).getCountChildren() > 0;
                }
@@ -60,17 +63,20 @@ public class TaxonNodeContentProvider implements ITreeContentProvider {
        }
 
        /** {@inheritDoc} */
-       public Object[] getElements(Object inputElement) {
+       @Override
+    public Object[] getElements(Object inputElement) {
                return this.getChildren(inputElement);
        }
 
        /**
         * <p>dispose</p>
         */
-       public void dispose() {
+       @Override
+    public void dispose() {
        }
 
        /** {@inheritDoc} */
-       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+       @Override
+    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
 }
index 7774c2c1eebeff4086c797b983bc926214b95948..d4b243b01ccd37d1e83ac032d969e248ebc95704 100644 (file)
 
 package eu.etaxonomy.taxeditor.navigation.navigator;
 
-import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.jface.viewers.StyledString.Styler;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.TextStyle;
 import org.eclipse.ui.navigator.IDescriptionProvider;
@@ -27,7 +25,6 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.persistence.hibernate.permission.Operation;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.security.RequiredPermissions;
index b0d7bb74f6297ecd44fbb02f2b186383790cc739..dd7c51520345b8bd71e85b361868f3619841d82e 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -28,7 +28,7 @@ import org.eclipse.ui.navigator.CommonDropAdapter;
 import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
@@ -48,7 +48,7 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.navigation.navig"{trunked}</code> */
        public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator.dropassistant"; //$NON-NLS-1$
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handleDrop(org.eclipse.ui.navigator.CommonDropAdapter, org.eclipse.swt.dnd.DropTargetEvent, java.lang.Object)
         */
@@ -56,25 +56,26 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
        @Override
        public IStatus handleDrop(CommonDropAdapter dropAdapter,
                        DropTargetEvent dropTargetEvent, Object target) {
-                       
-               if (target instanceof ITreeNode) {
+
+               if (target instanceof ITaxonTreeNode) {
                        Set<TaxonNode> taxonNodes = getSelectedTaxa();
-                       ITreeNode targetTreeNode = (ITreeNode) target;
-                       if(taxonNodes != null)
-                               return moveTaxon(taxonNodes, targetTreeNode);
+                       ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target;
+                       if(taxonNodes != null) {
+                return moveTaxon(taxonNodes, targetTreeNode);
+            }
                }
-                                                       
+
                return Status.CANCEL_STATUS;
        }
-       
+
        private Set<TaxonNode> getSelectedTaxa(){
-               HashSet<TaxonNode> taxonNodes = new HashSet<TaxonNode>();               
-               
+               HashSet<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
+
                ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
                if (selection instanceof TreeSelection) {
-               
+
                        Iterator selectionIterator = ((TreeSelection) selection).iterator();
-                               
+
                        while (selectionIterator.hasNext()){
                                Object object = selectionIterator.next();
                                if(object instanceof TaxonNode){
@@ -92,8 +93,8 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
        /** {@inheritDoc} */
        @Override
        public IStatus validateDrop(Object target, int operation,
-                       TransferData transferType) {    
-               if (target instanceof ITreeNode) {
+                       TransferData transferType) {
+               if (target instanceof ITaxonTreeNode) {
                        // do not allow to drop onto itself
                        for(TaxonNode taxonNode : getSelectedTaxa()){
                                if (taxonNode.equals(target)) {
@@ -101,53 +102,53 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
                                }
                        }
                        return Status.OK_STATUS;
-               }               
+               }
                return Status.CANCEL_STATUS;
        }
-       
+
 
        /**
         * @param childTaxonNode
         * @param parentTaxon
         * @return
         */
-       private IStatus moveTaxon(Set<TaxonNode> taxonNodes, ITreeNode targetITreeNode) {
-               
+       private IStatus moveTaxon(Set<TaxonNode> taxonNodes, ITaxonTreeNode targetITaxonTreeNode) {
+
                TaxonNavigator taxonNavigator;
                taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
-               
-               if(targetITreeNode instanceof TaxonNode){
-               
-                       TaxonNode targetTaxonNode = (TaxonNode) targetITreeNode;
-                       
+
+               if(targetITaxonTreeNode instanceof TaxonNode){
+
+                       TaxonNode targetTaxonNode = (TaxonNode) targetITaxonTreeNode;
+
 //                     for(TaxonNode taxonNode : taxonNodes){
 //                             if (taxonNode.equals(targetTaxonNode)) {
 //                                     return Status.CANCEL_STATUS;
 //                             }
 //                     }
-                       
+
                        // Make sure parent taxon does not have unsaved changes
                        if (NavigationUtil.isDirty(targetTaxonNode)){
                                MessageDialog.openWarning(NavigationUtil.getShell(), "Unsaved Parent Taxon", "There are unsaved " +
                                "changes in the parent taxon. Pleas save first.");
                                return Status.CANCEL_STATUS;
                        }
-                       
-                       
+
+
                        // Make sure parentTaxon is not the drop target
 //                     if (!childTaxonNode.isTopmostNode() && childTaxonNode.getParent().equals(targetTaxonNode)){
 //                             return Status.CANCEL_STATUS;
 //                     }
-                       
+
                        // Make sure taxon is not being dropped onto itself
 //                     if (childTaxonNode.equals(targetTaxonNode)) {
 //                             return Status.CANCEL_STATUS;
 //                     }
-                       
-                       
 
-               }       
-               
+
+
+               }
+
                IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
                if (workspaceUndoContext == null) {
                        logger.error("Workspace undo context is null. DND operation cancelled");
@@ -155,10 +156,10 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
                }
 
                AbstractPostOperation operation = new MoveTaxonOperation
-                               ("Move Taxon", workspaceUndoContext, taxonNodes, targetITreeNode, this, taxonNavigator);
-               NavigationUtil.executeOperation(operation);     
-               
-               logger.info("Moved taxa to new parent " + targetITreeNode);
+                               ("Move Taxon", workspaceUndoContext, taxonNodes, targetITaxonTreeNode, this, taxonNavigator);
+               NavigationUtil.executeOperation(operation);
+
+               logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
                return Status.OK_STATUS;
        }
 
@@ -166,7 +167,8 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
         * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
         */
        /** {@inheritDoc} */
-       public boolean postOperation(CdmBase objectAffectedByOperation) {
+       @Override
+    public boolean postOperation(CdmBase objectAffectedByOperation) {
                return true;
        }
 
@@ -175,7 +177,8 @@ public class TreeNodeDropAdapterAssistant extends CommonDropAdapterAssistant imp
         *
         * @return a boolean.
         */
-       public boolean onComplete() {
+       @Override
+    public boolean onComplete() {
                // TODO Auto-generated method stub
                return false;
        }
index aaf3e6de801c5d5a80c213a35638177da51725b0..7e0b59b635f615afae34a332deb3f4b465b5f330 100644 (file)
@@ -9,8 +9,6 @@
 */\r
 package eu.etaxonomy.taxeditor.navigation.navigator.handler;\r
 \r
-import java.util.Iterator;\r
-\r
 import org.eclipse.core.commands.AbstractHandler;\r
 import org.eclipse.core.commands.ExecutionEvent;\r
 import org.eclipse.core.commands.ExecutionException;\r
@@ -20,11 +18,7 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.viewers.IStructuredSelection;\r
 import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
-import eu.etaxonomy.cdm.model.common.TermBase;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;\r
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.CopyOperation;\r
index 86ed939b6b85cb6cd286eaed0706a8e671025d51..a1a4425b55e1db569150557e442d51257c639d67 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -29,7 +29,7 @@ import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.handlers.HandlerUtil;
 
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
@@ -50,57 +50,59 @@ public class DeleteHandler extends AbstractHandler implements IHandler{
        private TaxonNavigator taxonNavigator;
 
        /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               
+       @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+
                activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
-               
+
                taxonNavigator = NavigationUtil.showNavigator();
-                               
+
                TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
-               
+
                String plural = selection.size() > 1 ? "s" : "";
                // Prompt user for confirmation
                if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Are you sure you want to delete the selected node" + plural +"?")){
                        return null;
                }
-               
+
                Iterator selectionIterator = selection.iterator();
-               Set<ITreeNode> treeNodes = new HashSet<ITreeNode>();
-               
+               Set<ITaxonTreeNode> treeNodes = new HashSet<ITaxonTreeNode>();
+
                while (selectionIterator.hasNext()){
                        Object object = selectionIterator.next();
-                       if(object instanceof ITreeNode)
-                               treeNodes.add((ITreeNode) object);
+                       if(object instanceof ITaxonTreeNode) {
+                treeNodes.add((ITaxonTreeNode) object);
+            }
                }
-                       
+
                AbstractPostOperation operation = null;
                try {
                        operation = new DeleteOperation(
-                                       event.getCommand().getName(), NavigationUtil.getUndoContext(), 
+                                       event.getCommand().getName(), NavigationUtil.getUndoContext(),
                                        treeNodes, taxonNavigator, taxonNavigator);
-                       
+
                        IStatus status = NavigationUtil.executeOperation(operation);
-                       
-                       
+
+
                        // FIXME is there a better place for this code?
                        if (status == Status.OK_STATUS){
-                               for (ITreeNode treeNode : treeNodes){
+                               for (ITaxonTreeNode treeNode : treeNodes){
                                        if(treeNode instanceof TaxonNode) {
                                                closeObsoleteEditor((TaxonNode) treeNode);
                                        }
                                }
                        }
-               
+
                } catch (NotDefinedException e) {
                        NavigationUtil.warn(getClass(), "Command name not set");
                }
                return null;
        }
-       
+
        private void closeObsoleteEditor(TaxonNode taxonNode){
                for (IEditorReference ref : activePage.getEditorReferences()) {
                        try {
-                               IEditorInput input = ref.getEditorInput(); 
+                               IEditorInput input = ref.getEditorInput();
                                if (input instanceof TaxonEditorInput) {
                                        TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();
                                        if (taxonNode.equals(node)) {
index a514c8ce339608310f34f22bc31b311248a52be3..25c8632a12dfa92dbc5e765b22677961b4ef9cf0 100644 (file)
@@ -11,11 +11,6 @@ package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 \r
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
-\r
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
-\r
 import org.eclipse.core.runtime.IAdaptable;\r
 import org.eclipse.core.runtime.IProgressMonitor;\r
 import org.eclipse.core.runtime.IStatus;\r
@@ -23,6 +18,10 @@ import org.eclipse.swt.dnd.Clipboard;
 import org.eclipse.swt.dnd.TextTransfer;\r
 import org.eclipse.swt.dnd.Transfer;\r
 \r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+\r
 \r
 /**\r
  * @author l.morris\r
index 381dbf6b1fa04a46bc33a0f47e83104c7210bfdf..eab39d5f0d4ed09b2e123eb755a6bc313c7d8f69 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -21,7 +21,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -36,10 +36,10 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @version 1.0
  */
 public class DeleteOperation extends AbstractPersistentPostOperation{
-       
-       private Set<ITreeNode> treeNodes;
 
-       
+       private Set<ITaxonTreeNode> treeNodes;
+
+
        /**
         * <p>Constructor for DeleteTreeNodeOperation.</p>
         *
@@ -50,14 +50,14 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
         * @param treeNodes a {@link java.util.Set} object.
         */
        public DeleteOperation(String label, IUndoContext undoContext,
-                       Set<ITreeNode> treeNodes,
+                       Set<ITaxonTreeNode> treeNodes,
                        IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
                this.treeNodes = treeNodes;
        }
 
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
         */
@@ -68,7 +68,7 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
 
                bind();
                monitor.worked(20);
-        for (ITreeNode treeNode : treeNodes){
+        for (ITaxonTreeNode treeNode : treeNodes){
                        if(treeNode instanceof TaxonNode){
                                ((TaxonNode) treeNode).delete();
                        }else if(treeNode instanceof Classification){
index 6bf1a5deb460e829737a2e5d53fed52ad04ee70e..87df0560eeb31d7313dc83b478ea83196c7c670e 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -21,7 +21,7 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
@@ -36,16 +36,16 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @version 1.0
  */
 public class MoveTaxonOperation extends AbstractPersistentPostOperation {
-       
+
        /**
         * A reference to the new taxonomical parent.
         */
-       private ITreeNode newParentTreeNode;
+       private ITaxonTreeNode newParentTreeNode;
        /**
         * A reference to the former taxonomical parents
         */
-       private Map<TaxonNode, ITreeNode> oldParentTreeNodes;
-       
+       private Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
+
        private Set<TaxonNode> taxonNodes;
 
        /**
@@ -54,25 +54,25 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
         * @param label a {@link java.lang.String} object.
         * @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 newParentTreeNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} 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,
-                       Set<TaxonNode> taxonNodes, ITreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+                       Set<TaxonNode> taxonNodes, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
 
                this.taxonNodes = taxonNodes;
-               
+
                this.newParentTreeNode = newParentTreeNode;
-               
-               // Save old parent ITreeNodes for undo
-               oldParentTreeNodes = new HashMap<TaxonNode, ITreeNode>();
+
+               // Save old parent ITaxonTreeNodes for undo
+               oldParentTreeNodes = new HashMap<TaxonNode, ITaxonTreeNode>();
                for(TaxonNode taxonNode : taxonNodes){
                        this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent());
                }
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
         */
@@ -82,12 +82,11 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                        throws ExecutionException {
                bind();
                monitor.worked(20);
-               
+
                try {
                        for (TaxonNode taxonNode : taxonNodes){
-                               TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode, 
-                                               newParentTreeNode.getReference(), newParentTreeNode.getMicroReference(), 
-                                               taxonNode.getSynonymToBeUsed());
+                               TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode,
+                                               newParentTreeNode.getReference(), newParentTreeNode.getMicroReference());
                                taxonNodes.add(newTaxonNode);
                                monitor.worked(2);
                        }
@@ -95,7 +94,7 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                        StoreUtil.warningDialog("Illegal ancestry", this, e.getMessage());
                }
                monitor.worked(40);
-               
+
                return postExecute(null);
        }
 
@@ -117,9 +116,9 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                StoreUtil.warn(this.getClass(), "Not implemented yet.");
-               
-               // iterate over oldParentTreeNodes, delete each TaxonNode from its actual parent and add to its former parent           
-               
+
+               // iterate over oldParentTreeNodes, delete each TaxonNode from its actual parent and add to its former parent
+
                return Status.OK_STATUS;
        }
 }
index 3ae83c87f0de4d181344c62d10041351c660d707..98915188d46aafba3974f227add2b43d0c12f2c1 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -20,7 +20,7 @@ import org.eclipse.core.runtime.Status;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
@@ -38,11 +38,11 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  */
 @Deprecated // we do not undo creation of elements
 public class CreateTaxonNode extends AbstractPersistentPostOperation {
-       
+
        private Taxon newTaxon;
-       
+
        private TaxonNode childTaxonNode;
-       
+
        /**
         * Add a name to a taxonomic tree
         *
@@ -50,17 +50,17 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
         * @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.operation.IPostOperationEnabled} object.
-        * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
+        * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public CreateTaxonNode(String label, IUndoContext undoContext,
-                       ITreeNode parentNode, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled,
+               ITaxonTreeNode parentNode, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
                super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled);
-               
+
                newTaxon = Taxon.NewInstance(name, null);
        }
-       
+
        /**
         * Add a taxon to a taxonomic tree
         *
@@ -68,14 +68,14 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
         * @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.operation.IPostOperationEnabled} object.
-        * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
+        * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public CreateTaxonNode(String label, IUndoContext undoContext,
-                       ITreeNode parentNode, Taxon taxon, IPostOperationEnabled postOperationEnabled,
+               ITaxonTreeNode parentNode, Taxon taxon, IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
                super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled);
-               
+
                this.newTaxon = taxon;
        }
 
@@ -92,17 +92,17 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
                        // add the taxon
                        bind();
                        monitor.worked(20);
-                       childTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference(), null);
-               
+                       childTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference());
+
                        monitor.worked(40);
 
                        CdmStore.getService(ITaxonNodeService.class).saveOrUpdate(childTaxonNode);
-                       
+
                        return postExecute(childTaxonNode);
                }catch(Exception e){
                        NavigationUtil.errorDialog("Could not create taxon node", getClass(), e.getLocalizedMessage(), e);
                        return Status.CANCEL_STATUS;
-               }               
+               }
        }
 
        /* (non-Javadoc)
@@ -122,7 +122,7 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               
+
                StoreUtil.warn(this.getClass(), "Not yet implemented.");
                return null;
        }
index 2cee798dbceccb28736c1042fe1fd4a91b1bb7bd..ccd13fb2c5b2f2d0875779f0cbbb74ebac106288 100644 (file)
@@ -30,6 +30,7 @@ Export-Package: eu.etaxonomy.cdm,
  eu.etaxonomy.taxeditor.store.internal,
  eu.etaxonomy.taxeditor.store.operations,
  eu.etaxonomy.taxeditor.ui.bar,
+ eu.etaxonomy.taxeditor.ui.campanula.specimenSearch,
  eu.etaxonomy.taxeditor.ui.combo,
  eu.etaxonomy.taxeditor.ui.dialog,
  eu.etaxonomy.taxeditor.ui.dialog.selection,
index b65b0454705689df814e6990ca59d1dfea6252a7..0f385a5af4379ea0d8e7284f951117b331af9ada 100644 (file)
                </visibleWhen>
             </command>
          </menu>
-         <menu
-               id="eu.etaxonomy.taxeditor.store.definedTermEditorMenu"
-               label="Term Editor">
-            <command
-                  commandId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-                  label="Named Area"
-                  style="push">
-               <parameter
-                     name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-                     value="eu.etaxonomy.cdm.model.location.NamedArea">
-               </parameter>
-            </command>
-            <command
-                  commandId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-                  label="Named Area Level"
-                  style="push">
-               <parameter
-                     name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-                     value="eu.etaxonomy.cdm.model.location.NamedAreaLevel">
-               </parameter>
-            </command>
-            <separator
-                  name="eu.etaxonomy.taxeditor.store.definedTermEditorMenu.separator2"
-                  visible="true">
-            </separator>
-            <command
-                  commandId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-                  label="Extension Type"
-                  style="push">
-               <parameter
-                     name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-                     value="eu.etaxonomy.cdm.model.common.ExtensionType">
-               </parameter>
-            </command>
-            <command
-                  commandId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-                  label="Marker Type"
-                  style="push">
-               <parameter
-                     name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-                     value="eu.etaxonomy.cdm.model.common.MarkerType">
-               </parameter>
-            </command>
-            <command
-                  commandId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-                  label="State"
-                  style="push">
-               <parameter
-                     name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-                     value="eu.etaxonomy.cdm.model.description.State">
-               </parameter>
-            </command>
-            <separator
-                  name="eu.etaxonomy.taxeditor.store.definedTermEditorMenu.separator3"
-                  visible="true">
-            </separator>
-            <command
-                  commandId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-                  label="Feature"
-                  style="push">
-               <parameter
-                     name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-                     value="eu.etaxonomy.cdm.model.description.Feature">
-               </parameter>
-            </command>
-            <command
-                  commandId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-                  label="Modifier"
-                  style="push">
-               <parameter
-                     name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-                     value="eu.etaxonomy.cdm.model.description.Modifier">
-               </parameter>
-            </command>
-         </menu>
+      </menuContribution>
+      <menuContribution
+            class="eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermMenuFactory"
+            locationURI="menu:org.eclipse.ui.main.menu.window?before=eu.etaxonomy.taxeditor.application.windowMenu.last">
       </menuContribution>
       <menuContribution
             locationURI="menu:org.eclipse.ui.main.menu.file?after=eu.etaxonomy.taxeditor.application.filemenu.io">
                name="inputType"
                optional="true">
          </commandParameter>
+         <commandParameter
+               id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid"
+               name="inputType"
+               optional="true">
+         </commandParameter>
       </command>
    </extension>
    <extension
index 31a3165bad00362490bcc77ec870ce7d0a65563f..059990f6bebca7972e9720a438545c7e14e8e9a6 100644 (file)
@@ -41,9 +41,11 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.TermType;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput;\r
+import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
 import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
@@ -64,7 +66,8 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
        protected ConversationHolder conversation;\r
        private ISelectionService selectionService;\r
        private boolean dirty;\r
-       Set<TermVocabulary<? extends DefinedTermBase>> inMemoryVocabularies = new HashSet<TermVocabulary<? extends DefinedTermBase>>();\r
+\r
+\r
 \r
        private int dndOperations = DND.DROP_COPY | DND.DROP_MOVE;\r
        /**\r
@@ -95,10 +98,9 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
                        Transfer[] transfers = new Transfer[] { TermTransfer.getInstance() };\r
                        viewer.addDragSupport(dndOperations, transfers, new DefinedTermDragListener(viewer));\r
                        viewer.addDropSupport(dndOperations, transfers, new DefinedTermDropAdapter(this));\r
-\r
-                                       \r
-                       initialiseVocabularies();               \r
-                       viewer.setInput(inMemoryVocabularies);\r
+                                                                       \r
+                       getDefinedTermEditorInput().initialiseVocabularies();\r
+                       viewer.setInput(getDefinedTermEditorInput().getVocabularies());\r
                                                \r
                        getSite().setSelectionProvider(viewer);\r
                        \r
@@ -110,28 +112,13 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
                }\r
        \r
        \r
-       protected void initialiseVocabularies() {\r
-               inMemoryVocabularies.clear();\r
-               //List<TermVocabulary> vocabularies = CdmStore.getService(IVocabularyService.class).list(null, null, null, null, null);\r
 \r
-//             for (TermVocabulary vocabulary : vocabularies){\r
-//                     if(vocabulary.getTerms().isEmpty()){\r
-//                             inMemoryVocabularies.add(vocabulary);\r
-//                     }\r
-//             }\r
-\r
-               \r
-               List<TermVocabulary<? extends DefinedTermBase>> termVocabularies = CdmStore.getService(IVocabularyService.class).listByTermClass(getDefinedTermEditorInput().getTermClass(), true, true, null, null, null, null);\r
-               \r
-               \r
-               inMemoryVocabularies.addAll(termVocabularies);\r
-       }\r
        \r
        /**\r
         * \r
         */\r
-       public AbstractDefinedTermEditorInput getDefinedTermEditorInput() {\r
-               return (AbstractDefinedTermEditorInput) getEditorInput();\r
+       public TermEditorInput getDefinedTermEditorInput() {\r
+               return (TermEditorInput) getEditorInput();\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -139,24 +126,9 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
         */\r
        @Override\r
        public boolean postOperation(CdmBase objectAffectedByOperation) {\r
-\r
-               if(objectAffectedByOperation instanceof DefinedTermBase){\r
-                       viewer.refresh();\r
-               } else if (objectAffectedByOperation instanceof TermVocabulary){\r
-//                     if (inMemoryVocabularies.contains(objectAffectedByOperation)){\r
-//                             inMemoryVocabularies.remove((TermVocabulary) objectAffectedByOperation);\r
-//                     }else{\r
-//                             inMemoryVocabularies.add((TermVocabulary) objectAffectedByOperation);\r
-//                             DetailsViewPart view = (DetailsViewPart) StoreUtil.getView(DetailsViewPart.ID, true);\r
-//                             view.setFocus();\r
-//                     }\r
                        \r
-//                     viewer.setInput(inMemoryVocabularies);\r
-                       viewer.refresh();\r
-                       \r
-               }\r
-               \r
                \r
+               viewer.refresh();               \r
                \r
                if(objectAffectedByOperation != null){\r
                        viewer.setSelection(new StructuredSelection(objectAffectedByOperation));\r
@@ -185,7 +157,7 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
        public void doSave(IProgressMonitor monitor) {\r
                getConversationHolder().commit();\r
                setDirty(false);\r
-               initialiseVocabularies();\r
+               getDefinedTermEditorInput().initialiseVocabularies();\r
        }\r
        \r
 \r
@@ -259,12 +231,6 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
                return viewer;\r
        }\r
 \r
-       /**\r
-        * @return \r
-        * \r
-        */\r
-       public Set<TermVocabulary<? extends DefinedTermBase>> getInMemoryVocabularies() {\r
-               return inMemoryVocabularies;\r
-       }\r
+\r
 \r
 }
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenuFactory.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenuFactory.java
new file mode 100644 (file)
index 0000000..07365ca
--- /dev/null
@@ -0,0 +1,157 @@
+// $Id$
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.editor.definedterm;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.menus.CommandContributionItem;
+import org.eclipse.ui.menus.CommandContributionItemParameter;
+import org.eclipse.ui.menus.ExtensionContributionFactory;
+import org.eclipse.ui.menus.IContributionRoot;
+import org.eclipse.ui.services.IServiceLocator;
+
+import eu.etaxonomy.cdm.model.common.TermType;
+
+/**
+ * Menu factory used in the store plugin xml to dynamically generate menu (sub-menu) contribution items
+ * for term types which when clicked open the defined term editor for the chosen term type
+ * 
+ * @author c.mathew
+ * @date 18 Jul 2013
+ *
+ */
+
+public class DefinedTermMenuFactory extends ExtensionContributionFactory {     
+       
+       @Override
+       public void createContributionItems(IServiceLocator serviceLocator,
+                       IContributionRoot additions) {
+               
+               MenuManager dtMenuManager = 
+                               new MenuManager("Term Editor","eu.etaxonomy.taxeditor.store.definedTermEditorMenu"); 
+               
+               dtMenuManager.setVisible(true);
+        
+               additions.addContributionItem(dtMenuManager, null);
+               List<TermType> ttList = new ArrayList<TermType>(EnumSet.allOf(TermType.class));
+               Collections.sort(ttList,new SortByTermTypeMessage());
+        for (TermType tt : ttList)
+        {
+               // if term type has a parent, do not add it
+               // it will be added in the recursive call
+               if(tt.getKindOf() == null) {
+                       IContributionItem ici = addChildTermsToMenuManager(tt, serviceLocator);                 
+                       if(ici != null) {                                                       
+                               dtMenuManager.add(ici);
+                       }
+               }
+        }                                     
+       }
+       
+       private IContributionItem addChildTermsToMenuManager(TermType termType, IServiceLocator serviceLocator) {
+       
+               Set<TermType> children = termType.getGeneralizationOf();
+               // term type has no children, so create menu item
+               if(children.isEmpty()) {                        
+                       return createMenuItem(termType, serviceLocator);
+               }
+               // term type has children, so create sub menu           
+               MenuManager dtMenuManager = 
+                               new MenuManager(termType.getMessage(),"eu.etaxonomy.taxeditor.store." + termType.getKey() + "Menu"); 
+               dtMenuManager.setVisible(true);
+               dtMenuManager.add(createDefaultMenuItem(termType, serviceLocator));
+               
+               Separator sep = new Separator();
+               dtMenuManager.add(sep);
+               // add child items to the sub menu
+               for(TermType tt : children) {                   
+                       IContributionItem item = addChildTermsToMenuManager(tt,serviceLocator);
+                       if(item != null) {                              
+                               dtMenuManager.add(item);
+                       }                                       
+               }               
+               return dtMenuManager;
+               
+       }
+       
+       private CommandContributionItem createMenuItem(TermType termType, IServiceLocator serviceLocator) {
+               
+               Map<String, String> params = new HashMap<String, String>();
+               params.put("eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid",
+                               termType.getUuid().toString());         
+               
+        CommandContributionItemParameter p = new CommandContributionItemParameter(
+                serviceLocator, 
+                "",
+                "eu.etaxonomy.taxeditor.store.openDefinedTermEditor",
+                params,
+                null,
+                null,
+                null,
+                termType.getMessage(),
+                "",
+                "",                
+                SWT.PUSH,
+                "",
+                true);
+   
+        CommandContributionItem item = new CommandContributionItem(p);   
+        return item;
+               
+       }
+       
+       private CommandContributionItem createDefaultMenuItem(TermType termType, IServiceLocator serviceLocator) {
+               
+               Map<String, String> params = new HashMap<String, String>();
+               params.put("eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid",
+                               termType.getUuid().toString());         
+               
+        CommandContributionItemParameter p = new CommandContributionItemParameter(
+                serviceLocator, 
+                "",
+                "eu.etaxonomy.taxeditor.store.openDefinedTermEditor",
+                params,
+                null,
+                null,
+                null,
+                "Other " + termType.getMessage() + "s",
+                "",
+                "",                
+                SWT.PUSH,
+                "",
+                true);
+        
+        
+   
+        CommandContributionItem item = new CommandContributionItem(p);   
+        return item;
+               
+       }
+       
+       private class SortByTermTypeMessage implements Comparator<TermType> {
+           public int compare(TermType t1, TermType t2) {
+               return t1.getMessage().compareTo(t2.getMessage());
+           }
+       }
+       
+
+}
index 3b6241ace7c44b78aa0f0001e401e442dd18f35c..e7ca0c28d174320d12426ac6b0604bb7371f557a 100644 (file)
@@ -17,7 +17,9 @@ import java.util.SortedSet;
 import org.eclipse.jface.viewers.ITreeContentProvider;\r
 import org.eclipse.jface.viewers.Viewer;\r
 \r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.TermBase;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
@@ -54,7 +56,7 @@ public class TermContentProvider implements ITreeContentProvider {
        \r
                Collection<TermVocabulary> inputElements = (Collection<TermVocabulary>) inputElement;\r
                return inputElements.toArray();\r
-               //return null;\r
+\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -63,8 +65,8 @@ public class TermContentProvider implements ITreeContentProvider {
        @Override\r
        public Object[] getChildren(Object parentElement) {\r
                \r
-               if(parentElement instanceof TermVocabulary){\r
-                       return getTopLevelElements((TermVocabulary) parentElement);\r
+               if(parentElement instanceof TermVocabulary){                    \r
+                       return getTopLevelElements((TermVocabulary)parentElement);\r
                } else if (parentElement instanceof DefinedTermBase) {\r
                        return ((DefinedTermBase) parentElement).getIncludes().toArray();\r
                }\r
@@ -86,10 +88,8 @@ public class TermContentProvider implements ITreeContentProvider {
                for (DefinedTermBase term : terms){\r
                         if (term.getPartOf() == null){\r
                                 topLevelTerms.add(term);\r
-                        }\r
-                               \r
-               }\r
-        \r
+                        }                              \r
+               }        \r
                return topLevelTerms.toArray();\r
        }\r
 \r
@@ -98,27 +98,25 @@ public class TermContentProvider implements ITreeContentProvider {
         */\r
        @Override\r
        public Object getParent(Object element) {\r
-               \r
+\r
                if(element instanceof DefinedTermBase){\r
-                       \r
-                       DefinedTermBase definedTerm = (DefinedTermBase)element;\r
-                       if (definedTerm.getPartOf() == null) {\r
-                               return definedTerm.getVocabulary();\r
+                       DefinedTermBase definedTermBase = (DefinedTermBase)element;\r
+                       if (definedTermBase.getPartOf() == null) {\r
+                               return definedTermBase.getVocabulary();\r
                        } else {\r
-                               return definedTerm.getPartOf();\r
-                       }\r
-               }       \r
+                               return definedTermBase.getPartOf();\r
+                       }                       \r
+               }\r
                return null;\r
+\r
        }\r
 \r
        /* (non-Javadoc)\r
         * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)\r
         */\r
        @Override\r
-       public boolean hasChildren(Object element) {\r
-               \r
-               if (getChildren(element) != null){\r
-                       \r
+       public boolean hasChildren(Object element) {            \r
+               if (getChildren(element) != null){                      \r
                        return getChildren(element).length > 0;\r
                }\r
                return false;\r
index ea647af18f22761b7eb5338c3cb1219b9a4fd9ca..7e3e8f9eb53b7493b5683dda0c8ec5de9fbf1919 100644 (file)
 package eu.etaxonomy.taxeditor.editor.definedterm;\r
 \r
 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;\r
+import org.eclipse.jface.viewers.StyledString.Styler;\r
 import org.eclipse.jface.viewers.LabelProvider;\r
+import org.eclipse.jface.viewers.StyledCellLabelProvider;\r
 import org.eclipse.jface.viewers.StyledString;\r
+import org.eclipse.jface.viewers.ViewerCell;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.custom.StyleRange;\r
+import org.eclipse.swt.graphics.Color;\r
+import org.eclipse.swt.graphics.TextStyle;\r
+import org.eclipse.swt.widgets.Display;\r
 \r
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;\r
 \r
 /**\r
  * @author l.morris\r
  * @date 9 Dec 2011\r
  *\r
  */\r
-public class TermLabelProvider extends LabelProvider implements\r
-               IStyledLabelProvider {\r
+public class TermLabelProvider extends StyledCellLabelProvider {\r
 \r
+       private static Color vocColor = Display.getCurrent().getSystemColor(\r
+                       SWT.COLOR_BLUE);\r
+       private Styler vocStyler;\r
        /* (non-Javadoc)\r
         * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)\r
         */\r
+       \r
+       /*\r
+        * (non-Javadoc)\r
+        * \r
+        * @see\r
+        * org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.\r
+        * jface.viewers.ViewerCell)\r
+        */\r
        @Override\r
+       public void update(ViewerCell cell) {\r
+               Object element = cell.getElement();\r
+               int columnIndex = cell.getColumnIndex();\r
+\r
+               String text = getText(element);                                 \r
+               cell.setText(text);\r
+               \r
+               if (element instanceof TermVocabulary) {                \r
+                       StyledString styledString = new StyledString(text, getVocabularyStyler());\r
+                       StyleRange[] styleRanges;\r
+                       styleRanges = styledString.getStyleRanges();\r
+                       cell.setStyleRanges(styleRanges);\r
+               } \r
+               super.update(cell);\r
+       }\r
+       \r
        public StyledString getStyledText(Object element) {\r
                \r
+               if(element instanceof TermVocabulary){\r
+                       new StyledString(getText(element), getVocabularyStyler());\r
+               }\r
                return  new StyledString(getText(element), StyledString.QUALIFIER_STYLER);\r
        }\r
        \r
        /* (non-Javadoc)\r
         * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)\r
         */\r
-       @Override\r
+       \r
        public String getText(Object element) {\r
                \r
                if (element instanceof TermBase){\r
-                       return ((TermBase)element).getLabel();\r
+                       return ((TermBase)element).getTitleCache();\r
                } \r
-               return super.getText(element);\r
+               //FIXME : must throw an exception here\r
+               return element.toString();\r
+       }\r
+       \r
+       private Styler getVocabularyStyler() {\r
+               if (vocStyler == null) {\r
+                       vocStyler = new Styler() {\r
+                               @Override\r
+                               public void applyStyles(TextStyle textStyle) {\r
+                                       textStyle.foreground = vocColor;\r
+                               }\r
+                       };\r
+               }\r
+               return vocStyler;\r
        }\r
 \r
 }\r
index 24a8462c58f184f64af74fe1935fd208b6025636..d60d40a78386439a93c6566578fa6ac12734cb57 100644 (file)
@@ -14,10 +14,13 @@ import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.IHandler;\r
 import org.eclipse.core.commands.common.NotDefinedException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.jface.viewers.IStructuredSelection;\r
 import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
+import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.operation.CreateDefinedTermOperation;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
@@ -43,22 +46,32 @@ public class CreateDefinedTermHandler extends AbstractHandler implements IHandle
                IPostOperationEnabled editor = (IPostOperationEnabled) HandlerUtil\r
                                .getActiveEditor(event);\r
 \r
-               IStructuredSelection selection = (IStructuredSelection) HandlerUtil\r
-                               .getCurrentSelection(event);\r
+               if (editor instanceof DefinedTermEditor){\r
+                       DefinedTermEditor dfe = (DefinedTermEditor) editor;\r
+                       IStructuredSelection selection = (IStructuredSelection) HandlerUtil\r
+                                       .getCurrentSelection(event);\r
+                       if (selection.getFirstElement() instanceof TermBase) {\r
+                               try {\r
+                                       String label = event.getCommand().getName();\r
+                                       IUndoContext undoContext = StoreUtil.getUndoContext();\r
 \r
-               TermBase selectedElement = (TermBase) selection.getFirstElement();\r
+                                       TermBase termBase = (TermBase) selection.getFirstElement();\r
 \r
-               try {\r
-                       AbstractPostOperation operation = new CreateDefinedTermOperation(\r
-                                       event.getCommand().getName(), StoreUtil.getUndoContext(),\r
-                                       selectedElement, editor);\r
-                       StoreUtil.executeOperation(operation);\r
+                                       AbstractPostOperation operation = \r
+                                                       new CreateDefinedTermOperation(label, \r
+                                                                       undoContext, \r
+                                                                       termBase, \r
+                                                                       dfe.getDefinedTermEditorInput(),\r
+                                                                       editor);\r
+                                       StoreUtil.executeOperation(operation);\r
 \r
-               } catch (NotDefinedException e) {\r
-                       StoreUtil.error(getClass(), e);\r
+                               } catch (NotDefinedException e) {\r
+                                       StoreUtil.error(getClass(), e);\r
+                               }\r
+                       }\r
                }\r
 \r
                return null;\r
        }\r
 \r
-}\r
+       }\r
index 3ad89be9e31811192ceecedff4f25eae226b8668..fb7e01f3939295bd74c84a7c6822c183b48bb6d8 100644 (file)
@@ -14,12 +14,13 @@ import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.IHandler;\r
 import org.eclipse.core.commands.common.NotDefinedException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.jface.viewers.IStructuredSelection;\r
 import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
-import eu.etaxonomy.cdm.model.common.TermBase;\r
+import eu.etaxonomy.cdm.model.common.TermType;\r
+import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
-import eu.etaxonomy.taxeditor.editor.definedterm.operation.CreateDefinedTermOperation;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.operation.CreateTermVocabularyOperation;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
@@ -41,20 +42,24 @@ public class CreateTermVocabularyHandler extends AbstractHandler implements
                IPostOperationEnabled editor = (IPostOperationEnabled) HandlerUtil\r
                                .getActiveEditor(event);\r
 \r
-               if (! (editor instanceof DefinedTermEditor)){\r
-                       return null;\r
-               }\r
-               \r
-               try {\r
-                       AbstractPostOperation operation = new CreateTermVocabularyOperation(\r
-                                       event.getCommand().getName(), StoreUtil.getUndoContext(), (DefinedTermEditor) editor);\r
-                       StoreUtil.executeOperation(operation);\r
-\r
-               } catch (NotDefinedException e) {\r
-                       StoreUtil.error(getClass(), e);\r
-               }\r
+               if (editor instanceof DefinedTermEditor){\r
+                       DefinedTermEditor dfe = (DefinedTermEditor) editor;\r
+\r
+                       try {\r
+                               String label = event.getCommand().getName();\r
+                               IUndoContext undoContext = StoreUtil.getUndoContext();\r
 \r
+                               AbstractPostOperation operation = \r
+                                               new CreateTermVocabularyOperation(label, \r
+                                                               undoContext, \r
+                                                               dfe.getDefinedTermEditorInput(), \r
+                                                               (DefinedTermEditor) editor);\r
+                               StoreUtil.executeOperation(operation);\r
+\r
+                       } catch (NotDefinedException e) {\r
+                               StoreUtil.error(getClass(), e);\r
+                       }                       \r
+               }\r
                return null;\r
        }\r
-\r
 }\r
index ec008ea411a61d69c2052f76032e185574ecfa3b..40bc987fa695fad7c7623a35f7b99f9864718761 100644 (file)
@@ -15,9 +15,11 @@ import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;\r
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.common.NotDefinedException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.jface.viewers.IStructuredSelection;\r
 import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
@@ -41,26 +43,35 @@ public class DeleteTermBaseHandler extends AbstractHandler {
                DefinedTermEditor editor = (DefinedTermEditor) HandlerUtil\r
                                .getActiveEditor(event);\r
 \r
-               IStructuredSelection selection = (IStructuredSelection) HandlerUtil\r
-                               .getCurrentSelection(event);\r
+               if (editor instanceof DefinedTermEditor){\r
+                       DefinedTermEditor dfe = (DefinedTermEditor) editor;\r
+                       try {\r
+                               String label = event.getCommand().getName();\r
+                               IUndoContext undoContext = StoreUtil.getUndoContext();\r
 \r
-               Iterator<TermBase> selectionIterator = selection.iterator();\r
+                               IStructuredSelection selection = (IStructuredSelection) HandlerUtil\r
+                                               .getCurrentSelection(event);\r
 \r
-               while (selectionIterator.hasNext()){\r
-                       \r
-                       TermBase term = selectionIterator.next();\r
-                       \r
-                       try {\r
-                               AbstractPostOperation operation = new DeleteTermBaseOperation(\r
-                                               event.getCommand().getName(), StoreUtil.getUndoContext(),\r
-                                               term, editor);\r
-                               StoreUtil.executeOperation(operation);\r
-       \r
+                               Iterator<TermBase> selectionIterator = selection.iterator();\r
+\r
+                               while (selectionIterator.hasNext()){\r
+\r
+                                       TermBase term = selectionIterator.next();\r
+\r
+\r
+                                       AbstractPostOperation operation = \r
+                                                       new DeleteTermBaseOperation(label, \r
+                                                                       undoContext,\r
+                                                                       term,\r
+                                                                       dfe.getDefinedTermEditorInput(), \r
+                                                                       editor);\r
+                                       StoreUtil.executeOperation(operation);\r
+\r
+                               }       \r
                        } catch (NotDefinedException e) {\r
                                StoreUtil.error(getClass(), e);\r
                        }\r
                }\r
-\r
                return null;\r
        }\r
 \r
index 393a3e648303327957a7d9cd814afdee8005cbed..1e71fd6bbb2d400ee3c8aa3091139b81d0c7aaf2 100644 (file)
@@ -1,19 +1,16 @@
 package eu.etaxonomy.taxeditor.editor.definedterm.handler;\r
+import java.util.UUID;\r
+\r
 import org.eclipse.core.commands.AbstractHandler;\r
 import org.eclipse.core.commands.ExecutionEvent;\r
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.IHandler;\r
-import org.eclipse.core.commands.IParameter;\r
-import org.eclipse.core.commands.common.NotDefinedException;\r
 import org.eclipse.ui.IWorkbenchPage;\r
 import org.eclipse.ui.PartInitException;\r
-import org.eclipse.ui.handlers.HandlerUtil;\r
-import org.eclipse.ui.handlers.ShowViewHandler;\r
 \r
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.common.TermType;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
-import eu.etaxonomy.taxeditor.editor.definedterm.input.DefinedTermEditorInputFactory;\r
+import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 \r
 // $Id$\r
@@ -31,28 +28,22 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @date 8 Dec 2011\r
  *\r
  */\r
-public class OpenDefinedTermEditorHandler extends AbstractHandler implements\r
-               IHandler {\r
+public class OpenDefinedTermEditorHandler extends AbstractHandler implements IHandler {\r
 \r
        /* (non-Javadoc)\r
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
         */\r
        @Override\r
        public Object execute(ExecutionEvent event) throws ExecutionException {\r
-               \r
+\r
+               String termTypeUuid = event.getParameter("eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid");\r
+               IWorkbenchPage activePage = StoreUtil.getActivePage();\r
                try {\r
-                       String parameter = event.getParameter("eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter");\r
-                       Class<? extends DefinedTermBase> clazz = (Class<? extends DefinedTermBase>) Class.forName(parameter);\r
-               \r
-                       IWorkbenchPage activePage = StoreUtil.getActivePage();\r
-                       try {\r
-                               activePage.openEditor(DefinedTermEditorInputFactory.NewInstance(clazz), DefinedTermEditor.ID);\r
-                       } catch (PartInitException e) {\r
-                               StoreUtil.error(getClass(), e);\r
-                       }\r
-               } catch (ClassNotFoundException e) {\r
+                       activePage.openEditor(new TermEditorInput(TermType.getByUuid(UUID.fromString(termTypeUuid))), DefinedTermEditor.ID);\r
+               } catch (PartInitException e) {\r
                        StoreUtil.error(getClass(), e);\r
                }\r
+\r
                return null;\r
        }\r
 \r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/OpenDefinedTermMenu.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/handler/OpenDefinedTermMenu.java
deleted file mode 100644 (file)
index 5d6e797..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$\r
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.taxeditor.editor.definedterm.handler;\r
-\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import org.eclipse.jface.action.IContributionItem;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.ui.PlatformUI;\r
-import org.eclipse.ui.actions.CompoundContributionItem;\r
-import org.eclipse.ui.menus.CommandContributionItem;\r
-import org.eclipse.ui.menus.CommandContributionItemParameter;\r
-\r
-/**\r
- * @author l.morris\r
- * @date 4 Jan 2012\r
- *\r
- */\r
-public class OpenDefinedTermMenu extends CompoundContributionItem {\r
-\r
-       /**\r
-        * \r
-        */\r
-       public OpenDefinedTermMenu() {\r
-               // TODO Auto-generated constructor stub\r
-       }\r
-\r
-       /**\r
-        * @param id\r
-        */\r
-       public OpenDefinedTermMenu(String id) {\r
-               super(id);\r
-               // TODO Auto-generated constructor stub\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()\r
-        */\r
-       @Override\r
-       protected IContributionItem[] getContributionItems() {\r
-               // TODO Auto-generated method stub\r
-               return null;\r
-       }\r
-       \r
-       /**\r
-        * @param key\r
-        * @param object\r
-        * @return\r
-        */\r
-       private IContributionItem createContributionItem(String label,\r
-                       String inputType) {\r
-               CommandContributionItemParameter parameter = new CommandContributionItemParameter(\r
-                               PlatformUI.getWorkbench().getActiveWorkbenchWindow(), null,\r
-                               "eu.etaxonomy.taxeditor.store.definedterm.menu.open", SWT.NONE);\r
-\r
-               parameter.label = label;\r
-\r
-               Map parameters = new HashMap();\r
-               parameters.put("eu.etaxonomy.taxeditor.store.definedterm.menu.open", inputType);\r
-               parameter.parameters = parameters;\r
-\r
-               return new CommandContributionItem(parameter);\r
-       }\r
-\r
-}\r
index 49cc3d43439a5f9b2ca839211631dcac8e7e4d23..c18d397be4a1c70b74517e0f507cec3ad804c39c 100644 (file)
@@ -59,13 +59,7 @@ public abstract class AbstractDefinedTermEditorInput<T extends DefinedTermBase>
        /**\r
         * @return\r
         */\r
-       public abstract List<String> getTermClasses();\r
-       \r
-       public abstract T createTermInstance();\r
-       \r
-       public Class<? extends DefinedTermBase> getTermClass() {\r
-               \r
-               return createTermInstance().getClass();\r
-       }\r
+       public abstract List<String> getTermClasses();          \r
 \r
+       \r
 }
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/DefinedTermEditorInputFactory.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/DefinedTermEditorInputFactory.java
deleted file mode 100644 (file)
index cdb5b68..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// $Id$\r
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.taxeditor.editor.definedterm.input;\r
-\r
-import org.eclipse.ui.IEditorInput;\r
-\r
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
-import eu.etaxonomy.cdm.model.common.ExtensionType;\r
-import eu.etaxonomy.cdm.model.common.MarkerType;\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.cdm.model.description.Modifier;\r
-import eu.etaxonomy.cdm.model.description.State;\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
-\r
-/**\r
- * @author l.morris\r
- * @date 3 Jan 2012\r
- *\r
- */\r
-public class DefinedTermEditorInputFactory {\r
-\r
-//     public static final String NamedArea = "eu.etaxonomy.taxeditor.editor.namedArea";\r
-\r
-       /**\r
-        * @param clazz\r
-        * @return\r
-        */\r
-       public static IEditorInput NewInstance(Class<? extends DefinedTermBase> clazz) {\r
-               if(clazz == NamedArea.class){\r
-                       return new NamedAreaEditorInput();\r
-               } \r
-               if (clazz == NamedAreaLevel.class){\r
-                       return new NamedAreaLevelEditorInput();\r
-               }\r
-               if (clazz == ExtensionType.class){\r
-                       return new ExtensionTypeEditorInput();\r
-               }\r
-               if (clazz == MarkerType.class){\r
-                       return new MarkerTypeEditorInput();\r
-               }\r
-               if (clazz == Feature.class){\r
-                       return new FeatureEditorInput();\r
-               }\r
-               if (clazz == State.class){\r
-                       return new StateEditorInput();\r
-               }\r
-               if (clazz == Modifier.class){\r
-                       return new ModifierEditorInput();\r
-               }\r
-               \r
-               return null;\r
-       }\r
-\r
-}\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ExtensionTypeEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ExtensionTypeEditorInput.java
deleted file mode 100644 (file)
index 49d597a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// $Id$\r
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.taxeditor.editor.definedterm.input;\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
-\r
-import eu.etaxonomy.cdm.model.common.ExtensionType;\r
-\r
-/**\r
- * @author l.morris\r
- * @date 6 Jan 2012\r
- *\r
- */\r
-public class ExtensionTypeEditorInput extends AbstractDefinedTermEditorInput<ExtensionType> {\r
-       \r
-       private List<String> termClasses = Arrays.asList(new String[]{\r
-                       ExtensionType.class.getName()\r
-       });\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.IEditorInput#getName()\r
-        */\r
-       @Override\r
-       public String getName() {\r
-               return "Extension Type";\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.AbstractDefinedTermEditorInput#getTermClasses()\r
-        */\r
-       @Override\r
-       public List<String> getTermClasses() {\r
-               return termClasses;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.AbstractDefinedTermEditorInput#createTermInstance()\r
-        */\r
-       @Override\r
-       public ExtensionType createTermInstance() {\r
-               return ExtensionType.NewInstance();\r
-       }\r
-\r
-}\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/FeatureEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/FeatureEditorInput.java
deleted file mode 100644 (file)
index da4c4d8..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// $Id$\r
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.taxeditor.editor.definedterm.input;\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
-\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-/**\r
- * @author l.morris\r
- * @date 11 Jan 2012\r
- *\r
- */\r
-public class FeatureEditorInput extends AbstractDefinedTermEditorInput<Feature> {\r
-\r
-       private List<String> termClasses = Arrays.asList(new String[]{\r
-                       Feature.class.getName()\r
-       });\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.IEditorInput#getName()\r
-        */\r
-       @Override\r
-       public String getName() {\r
-               return "Feature";\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#getTermClasses()\r
-        */\r
-       @Override\r
-       public List<String> getTermClasses() {\r
-               return termClasses;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#createTermInstance()\r
-        */\r
-       @Override\r
-       public Feature createTermInstance() {\r
-               return Feature.NewInstance();\r
-       }\r
-\r
-}\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/MarkerTypeEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/MarkerTypeEditorInput.java
deleted file mode 100644 (file)
index 5bc6cb5..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// $Id$\r
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.taxeditor.editor.definedterm.input;\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
-\r
-import eu.etaxonomy.cdm.model.common.MarkerType;\r
-\r
-/**\r
- * @author l.morris\r
- * @date 6 Jan 2012\r
- *\r
- */\r
-public class MarkerTypeEditorInput extends AbstractDefinedTermEditorInput<MarkerType> {\r
-       \r
-       private List<String> termClasses = Arrays.asList(new String[]{\r
-                       MarkerType.class.getName()\r
-       });\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.IEditorInput#getName()\r
-        */\r
-       @Override\r
-       public String getName() {\r
-               return "Marker Type";\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.AbstractDefinedTermEditorInput#getTermClasses()\r
-        */\r
-       @Override\r
-       public List<String> getTermClasses() {\r
-               return termClasses;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.AbstractDefinedTermEditorInput#createTermInstance()\r
-        */\r
-       @Override\r
-       public MarkerType createTermInstance() {\r
-               return new MarkerType();\r
-       }\r
-       \r
-       \r
-\r
-}\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ModifierEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ModifierEditorInput.java
deleted file mode 100644 (file)
index da3b772..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2009 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.definedterm.input;
-
-import java.util.Arrays;
-import java.util.List;
-
-import eu.etaxonomy.cdm.model.description.Modifier;
-
-
-/**
- * @author n.hoffmann
- * @date Jan 24, 2012
- *
- */
-public class ModifierEditorInput extends AbstractDefinedTermEditorInput<Modifier> {
-
-       private List<String> termClasses = Arrays.asList(new String[]{
-                       Modifier.class.getName()
-       });
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#getName()
-        */
-       @Override
-       public String getName() {
-               return "Modifier";
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#getTermClasses()
-        */
-       @Override
-       public List<String> getTermClasses() {
-               return termClasses;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#createTermInstance()
-        */
-       @Override
-       public Modifier createTermInstance() {
-               return Modifier.NewInstance();
-       }
-
-}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaEditorInput.java
deleted file mode 100644 (file)
index 2b9a529..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-// $Id$\r
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.taxeditor.editor.definedterm.input;\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
-\r
-import eu.etaxonomy.cdm.model.location.Continent;\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.location.TdwgArea;\r
-import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;\r
-\r
-/**\r
- * @author l.morris\r
- * @date 8 Dec 2011\r
- *\r
- */\r
-public class NamedAreaEditorInput extends AbstractDefinedTermEditorInput<NamedArea> {\r
-\r
-       private List<String> termClasses = Arrays.asList(new String[]{\r
-                       NamedArea.class.getName(), \r
-                       TdwgArea.class.getName(),\r
-                       WaterbodyOrCountry.class.getName(),\r
-                       Continent.class.getName()\r
-       });\r
-       \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.IEditorInput#getName()\r
-        */\r
-       @Override\r
-       public String getName() {\r
-               return "Named Area";\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.AbstractDefinedTermEditorInput#getTermClasses()\r
-        */\r
-       @Override\r
-       public List<String> getTermClasses() {\r
-               return termClasses;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.AbstractDefinedTermEditorInput#createTermInstance()\r
-        */\r
-       @Override\r
-       public NamedArea createTermInstance() {\r
-                return NamedArea.NewInstance();\r
-       }\r
-}\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaLevelEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaLevelEditorInput.java
deleted file mode 100644 (file)
index a379239..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// $Id$\r
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.taxeditor.editor.definedterm.input;\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
-\r
-import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
-\r
-/**\r
- * @author l.morris\r
- * @date 4 Jan 2012\r
- *\r
- */\r
-public class NamedAreaLevelEditorInput extends AbstractDefinedTermEditorInput<NamedAreaLevel> {\r
-\r
-       \r
-       private List<String> termClasses = Arrays.asList(new String[]{\r
-                       NamedAreaLevel.class.getName()\r
-       });\r
-       \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.IEditorInput#getName()\r
-        */\r
-       @Override\r
-       public String getName() {\r
-               return "Named Area Level";\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.AbstractDefinedTermEditorInput#getTermClasses()\r
-        */\r
-       @Override\r
-       public List<String> getTermClasses() {\r
-               return termClasses;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.AbstractDefinedTermEditorInput#createTermInstance()\r
-        */\r
-       @Override\r
-       public NamedAreaLevel createTermInstance() {\r
-               return NamedAreaLevel.NewInstance();\r
-       }\r
-\r
-}\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/StateEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/StateEditorInput.java
deleted file mode 100644 (file)
index 609dfe0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2009 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.definedterm.input;
-
-import java.util.Arrays;
-import java.util.List;
-
-import eu.etaxonomy.cdm.model.description.State;
-
-/**
- * @author n.hoffmann
- * @date Jan 24, 2012
- *
- */
-public class StateEditorInput extends AbstractDefinedTermEditorInput<State> {
-
-       private List<String> termClasses = Arrays.asList(new String[]{
-                       State.class.getName()
-       });
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IEditorInput#getName()
-        */
-       @Override
-       public String getName() {
-               return "State";
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#getTermClasses()
-        */
-       @Override
-       public List<String> getTermClasses() {
-               return termClasses;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#createTermInstance()
-        */
-       @Override
-       public State createTermInstance() {
-               return State.NewInstance();
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/TermEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/TermEditorInput.java
new file mode 100644 (file)
index 0000000..aef64fe
--- /dev/null
@@ -0,0 +1,76 @@
+// $Id$
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.definedterm.input;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+
+
+/**
+ * @author n.hoffmann
+ * @date Jan 24, 2012
+ *
+ */
+public class TermEditorInput extends AbstractDefinedTermEditorInput<DefinedTerm> {
+
+       private TermType termType;
+       private Set<TermVocabulary<DefinedTermBase>> vocabularies;
+       private List<String> termClasses = Arrays.asList(new String[]{
+                       DefinedTerm.class.getName()
+       });
+       
+       public TermEditorInput(TermType termType) {
+               this.termType = termType;
+               vocabularies = new HashSet<TermVocabulary<DefinedTermBase>>();
+               initialiseVocabularies();
+       }
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IEditorInput#getName()
+        */
+       @Override
+       public String getName() {
+               return termType.getMessage();
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#getTermClasses()
+        */
+       @Override
+       public List<String> getTermClasses() {
+               return termClasses;
+       }
+       
+       public TermType getTermType() {
+               return termType;
+       }
+       
+       public void initialiseVocabularies() {
+               if(vocabularies != null) {
+                       vocabularies.clear();
+               } 
+               List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(termType);
+               vocabularies.addAll(vocs);                      
+       }
+       
+       public Set<TermVocabulary<DefinedTermBase>> getVocabularies() {
+               return vocabularies;
+       }
+
+}
\ No newline at end of file
index cc2512f0dff4e0f6a76be72b1a25092368c4df6a..7677096e1ec1dc2fa291fc8bd4a85ca4704f39e2 100644 (file)
@@ -14,17 +14,15 @@ import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IAdaptable;\r
 import org.eclipse.core.runtime.IProgressMonitor;\r
 import org.eclipse.core.runtime.IStatus;\r
-import org.eclipse.ui.IEditorInput;\r
+import org.eclipse.core.runtime.Status;\r
 \r
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
-import eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput;\r
-import eu.etaxonomy.taxeditor.editor.definedterm.input.NamedAreaEditorInput;\r
+import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 \r
 /**\r
  * @author l.morris\r
@@ -36,7 +34,7 @@ public class CreateDefinedTermOperation extends AbstractPostOperation {
        \r
 \r
        private TermBase parentTermBase;\r
-       private AbstractDefinedTermEditorInput editorInput; \r
+       private TermEditorInput definedTermInput;\r
 \r
        /**\r
         * @param label\r
@@ -44,10 +42,13 @@ public class CreateDefinedTermOperation extends AbstractPostOperation {
         * @param postOperationEnabled\r
         */\r
        public CreateDefinedTermOperation(String label,\r
-                       IUndoContext undoContext, TermBase termBase, IPostOperationEnabled postOperationEnabled) {\r
+                       IUndoContext undoContext, \r
+                       TermBase termBase,\r
+                       TermEditorInput definedTermInput,\r
+                       IPostOperationEnabled postOperationEnabled) {\r
                super(label, undoContext, postOperationEnabled);\r
                this.parentTermBase = termBase;\r
-               editorInput = ((DefinedTermEditor)postOperationEnabled).getDefinedTermEditorInput();\r
+               this.definedTermInput = definedTermInput;\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -57,16 +58,22 @@ public class CreateDefinedTermOperation extends AbstractPostOperation {
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
                \r
-               DefinedTermBase newTerm = editorInput.createTermInstance();                             \r
-               \r
-               newTerm.setLabel("Untitled");\r
+               DefinedTermBase newTerm = definedTermInput.getTermType().getEmptyDefinedTermBase();\r
+               if (newTerm == null) {\r
+                       IStatus status = \r
+                                       new Status(IStatus.CANCEL, \r
+                                                       StoreUtil.getPluginId(), \r
+                                                       "Creation of term corresponding to type '" + definedTermInput.getTermType().getMessage() + "' is not yet supported");\r
+                       StoreUtil.warningDialog("Cannot create term", newTerm, status);\r
+                       return status;\r
+               }\r
                \r
                if (parentTermBase instanceof TermVocabulary){\r
                        TermVocabulary vocabulary = (TermVocabulary) parentTermBase;\r
                        vocabulary.addTerm(newTerm);\r
                } else if (parentTermBase instanceof DefinedTermBase) {\r
-                       DefinedTermBase parent = (DefinedTermBase) parentTermBase;\r
-                       parent.addIncludes(newTerm);\r
+                       DefinedTermBase parent = (DefinedTermBase) parentTermBase;                      \r
+                       parent.addIncludes(newTerm);                    \r
                        TermVocabulary vocabulary = parent.getVocabulary();\r
                        vocabulary.addTerm(newTerm);\r
                }\r
index a8950ee64d0b32f2a338cb765653652b195fbe4e..cad587c2b0fc97115a231414322731d1d0fbf797 100644 (file)
@@ -9,6 +9,8 @@
 */\r
 package eu.etaxonomy.taxeditor.editor.definedterm.operation;\r
 \r
+import java.net.URI;\r
+\r
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.runtime.IAdaptable;\r
@@ -16,10 +18,14 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;\r
 \r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
 import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
+import eu.etaxonomy.cdm.model.common.TermType;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
+import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
@@ -29,17 +35,19 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */\r
 public class CreateTermVocabularyOperation extends AbstractPostOperation {\r
 \r
-       private DefinedTermEditor definedTermEditor;\r
-\r
+       private TermEditorInput definedEditorInput;\r
+       \r
        /**\r
         * @param label\r
         * @param undoContext\r
         * @param postOperationEnabled\r
         */\r
        public CreateTermVocabularyOperation(String label,\r
-                       IUndoContext undoContext, DefinedTermEditor definedTermEditor) {\r
-               super(label, undoContext, definedTermEditor);\r
-               this.definedTermEditor = definedTermEditor;\r
+                       IUndoContext undoContext, \r
+                       TermEditorInput definedEditorInput, \r
+                       IPostOperationEnabled postOperationEnabled) {\r
+               super(label, undoContext, postOperationEnabled);\r
+               this.definedEditorInput = definedEditorInput;\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -48,10 +56,16 @@ public class CreateTermVocabularyOperation extends AbstractPostOperation {
        @Override\r
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
-\r
-               TermVocabulary termVocabulary = OrderedTermVocabulary.NewInstance(null, "Untitled", null, null);\r
+       \r
+               TermVocabulary termVocabulary = \r
+                                       TermVocabulary.NewInstance(definedEditorInput.getTermType(),\r
+                                               null, \r
+                                               "Untitled", \r
+                                               null, \r
+                                               null);          \r
+               \r
                CdmStore.getService(IVocabularyService.class).save(termVocabulary);\r
-               definedTermEditor.getInMemoryVocabularies().add(termVocabulary);\r
+               definedEditorInput.getVocabularies().add(termVocabulary);\r
                \r
                return postExecute(termVocabulary);\r
        }\r
index 7ce678596023257ecbc9a33514990097f6c92c0b..c5bbd9c4ec4a1f9319e4fcc8b8fd0377eb325fe7 100644 (file)
@@ -18,11 +18,14 @@ import org.eclipse.core.runtime.Status;
 \r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.common.TermBase;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
+import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 \r
@@ -33,6 +36,7 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  */\r
 public class DeleteTermBaseOperation extends AbstractPostOperation {\r
 \r
+       private TermEditorInput definedEditorInput;\r
        private TermBase termBase;\r
        private DefinedTermEditor definedTermEditor;\r
        /**\r
@@ -40,11 +44,14 @@ public class DeleteTermBaseOperation extends AbstractPostOperation {
         * @param undoContext\r
         * @param postOperationEnabled\r
         */\r
-       public DeleteTermBaseOperation(String label, IUndoContext undoContext, TermBase termBase,\r
-                       DefinedTermEditor definedTermEditor) {\r
-               super(label, undoContext, definedTermEditor);\r
+       public DeleteTermBaseOperation(String label, \r
+                       IUndoContext undoContext, \r
+                       TermBase termBase,\r
+                       TermEditorInput definedEditorInput,\r
+                       IPostOperationEnabled postOperationEnabled) {\r
+               super(label, undoContext, postOperationEnabled);\r
                this.termBase = termBase;\r
-               this.definedTermEditor = definedTermEditor;\r
+               this.definedEditorInput = definedEditorInput;           \r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -57,25 +64,39 @@ public class DeleteTermBaseOperation extends AbstractPostOperation {
                \r
                \r
                if (termBase instanceof TermVocabulary) {\r
+                       if (((TermVocabulary)termBase).getCreatedBy() == null) {\r
+                               IStatus status = new Status(IStatus.CANCEL, StoreUtil.getPluginId(), "This is a CDM system vocabulary");\r
+                               StoreUtil.warningDialog("Cannot delete vocabulary", termBase, status);\r
+                               return status;\r
+                       }\r
                        \r
                        if (!((TermVocabulary)termBase).getTerms().isEmpty()) {\r
                                IStatus status = new Status(IStatus.CANCEL, StoreUtil.getPluginId(), "Delete all terms from this vocaulary before deleting the vocabulary.");\r
                                StoreUtil.warningDialog("Vocabulary not empty", termBase, status);\r
                                return status;\r
-                       }\r
-                       definedTermEditor.getInMemoryVocabularies().remove(termBase); \r
+                       }                       \r
+\r
+                       definedEditorInput.getVocabularies().remove((TermVocabulary)termBase); \r
                        CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase);\r
                        \r
+                       \r
                } else if (termBase instanceof DefinedTermBase) {\r
                        \r
                        \r
                        DefinedTermBase definedTermBase = (DefinedTermBase) termBase;\r
+                       \r
+                       if (((DefinedTermBase)termBase).getCreatedBy() == null) {\r
+                               IStatus status = new Status(IStatus.CANCEL, StoreUtil.getPluginId(), "This is a CDM system defined term");\r
+                               StoreUtil.warningDialog("Cannot delete defined term", termBase, status);\r
+                               return status;\r
+                       }\r
                        if(!definedTermBase.getIncludes().isEmpty()){\r
                                IStatus status = new Status(IStatus.CANCEL, StoreUtil.getPluginId(), "This term includes other terms. Please delete the included terms before deleting this term.");                            \r
                                StoreUtil.warningDialog("Term has included terms", termBase, status);\r
                                return status;\r
                        } \r
                                                \r
+\r
                        DefinedTermBase partOf = definedTermBase.getPartOf();\r
                        if(partOf != null){\r
                                partOf.removeIncludes(definedTermBase);\r
index a8278c654fc451051195f3c706b4cab7fe137e44..02875a7be3c52d923c398f1d2e9b982c9201d46a 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -61,7 +61,7 @@ public class FeatureTreeContentProvider implements ITreeContentProvider {
                        List<FeatureNode> children = ((FeatureTree) parentElement).getRootChildren();
                        return children.toArray();
                }else if(parentElement instanceof FeatureNode){
-                       List<FeatureNode> children = ((FeatureNode) parentElement).getChildren();
+                       List<FeatureNode> children = ((FeatureNode) parentElement).getChildNodes();
                        return children.toArray();
                }else if(parentElement instanceof List){
                        return ((List) parentElement).toArray();
index a95f420f0d9e51db7eb4495daec89fa5800bb5d4..c2975144f35b7012631f9300aacc0a7890a0ac6b 100644 (file)
@@ -1,17 +1,21 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
 package eu.etaxonomy.taxeditor.io.wizard;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.net.URI;
 
+import org.apache.log4j.Logger;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IWorkbench;
 
@@ -28,9 +32,11 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class AbcdImportWizard extends AbstractImportWizard<Abcd206ImportConfigurator> {
 
+    private static final Logger logger = Logger.getLogger(AbcdImportWizard.class);
+
        private Abcd206ImportConfigurator configurator;
        private ImportFromFileDataSourceWizardPage dataSourcePage;
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
         */
@@ -47,23 +53,29 @@ public class AbcdImportWizard extends AbstractImportWizard<Abcd206ImportConfigur
        @Override
        public boolean performFinish() {
                URI source = dataSourcePage.getUri();
-               configurator.setSource(source);
+               try {
+            configurator.setSource(new FileInputStream(new File(source)));
+        } catch (FileNotFoundException e) {
+            logger.error("File not found!", e);
+            return false;
+        }
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-               
+
                CdmStore.getImportManager().run(configurator);
                return true;
-               
+
        }
 
        /* (non-Javadoc)
         * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
         */
        /** {@inheritDoc} */
-       public void init(IWorkbench workbench, IStructuredSelection selection) {
+       @Override
+    public void init(IWorkbench workbench, IStructuredSelection selection) {
                super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().AbcdConfigurator();
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.io.AbstractImportWizard#addPages()
         */
@@ -71,7 +83,7 @@ public class AbcdImportWizard extends AbstractImportWizard<Abcd206ImportConfigur
        @Override
        public void addPages() {
                super.addPages();
-               
+
                dataSourcePage = ImportFromFileDataSourceWizardPage.XML();
                addPage(dataSourcePage);
        }
index 3072f460e780d09b9192018d6021e66136bce989..308d27587fd5277578bd2ac18c39862e718ce562 100644 (file)
@@ -49,7 +49,6 @@ import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
 import org.eclipse.ui.themes.ITheme;
 import org.eclipse.ui.themes.IThemeManager;
 
-import eu.etaxonomy.cdm.model.common.TermBase;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
index 328f57a227ff68de1d8e68e25783ffa19dfac312..1fc1cfd18f7aabb93f571d1deb53c7c7e0f859f0 100644 (file)
@@ -19,7 +19,6 @@ import eu.etaxonomy.cdm.api.service.DefaultCategoricalDescriptionBuilder;
 import eu.etaxonomy.cdm.api.service.DefaultQuantitativeDescriptionBuilder;
 import eu.etaxonomy.cdm.api.service.DescriptionBuilder;
 import eu.etaxonomy.cdm.common.CdmUtils;
-import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.ISourceable;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
@@ -33,6 +32,7 @@ import eu.etaxonomy.cdm.model.description.CategoricalData;
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
index 900665e9e54e599c08c09e78cc862039c3863490..ce88d1cbc473a87d87bbc713427f5b12d65a5ef7 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -35,11 +35,11 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
  * @version 1.0
  */
 public class FeatureNodeContainer{
-       
-       
-       
+
+
+
        private FeatureNodeContainer parent;
-       
+
 
 
        private FeatureNode featureNode;
@@ -48,35 +48,35 @@ public class FeatureNodeContainer{
 
        private FeatureNodeContainerTree containerTree;
 
-       
+
        /**
         * @param description
         */
        protected FeatureNodeContainer(FeatureNodeContainerTree containerTree) {
-               this.containerTree = containerTree; 
+               this.containerTree = containerTree;
                this.containerTree.addContainer(this);
        }
-       
-       
+
+
        /**
-        * Recursively traverse a branch of a feature tree and check if there are 
-        * 
+        * Recursively traverse a branch of a feature tree and check if there are
+        *
         * @param featureNode
-        * @param description 
+        * @param description
         * @return
         */
        protected void findLeaves(FeatureNode featureNode) {
                if(featureNode.isLeaf()){
                        buildLeaf(featureNode);
                }else{
-                       for(FeatureNode childNode : featureNode.getChildren()){
+                       for(FeatureNode childNode : featureNode.getChildNodes()){
                                findLeaves(childNode);
                        }
                }
        }
-       
+
        /**
-        * 
+        *
         * @param featureNode
         * @param description
         * @return
@@ -85,12 +85,12 @@ public class FeatureNodeContainer{
                if(featureNode.getFeature() == null){
                        throw new IllegalArgumentException("The given feature node does not have a feature.");
                }
-               
+
                Feature feature = (Feature) HibernateProxyHelper.deproxy(featureNode.getFeature());
-               
+
                // get feature node container for the given feature
                FeatureNodeContainer container = containerTree.getFeatureNodeContainer(feature);
-               
+
                // get description elements for the given feature
                List<DescriptionElementBase> elements = containerTree.getDescriptionsElementsForFeature(feature);
                // no description elements, so we should also remove the feature node container
@@ -108,12 +108,12 @@ public class FeatureNodeContainer{
                                container.buildBranch();
                        }
                        // add description elements to the feature node container
-                       container.setDescriptionElements(elements);             
+                       container.setDescriptionElements(elements);
                }
        }
-       
+
        /**
-        * 
+        *
         */
        private void remove() {
                if(getParent() != null){
@@ -134,15 +134,15 @@ public class FeatureNodeContainer{
 
 
        /**
-        * Recursively 
-        * 
+        * Recursively
+        *
         * @param featureNodeMap
         * @return
         */
-       private void buildBranch(){     
+       private void buildBranch(){
                if(getParent() == null){
                        FeatureNode parentFeatureNode = getFeatureNode().getParent();
-                       
+
                        if(parentFeatureNode.isRoot()){
                                containerTree.getRoot().addChild(this);
                        }else{
@@ -151,15 +151,15 @@ public class FeatureNodeContainer{
                                        parentContainer = new FeatureNodeContainer(containerTree);
                                        parentContainer.setFeatureNode(parentFeatureNode);
                                }
-                               
+
                                parentContainer.addChild(this);
-                               
+
                                parentContainer.buildBranch();
-                               
+
                        }
                }
        }
-       
+
        /**
         * <p>Getter for the field <code>children</code>.</p>
         *
@@ -182,7 +182,7 @@ public class FeatureNodeContainer{
                        throw new IllegalStateException("Container may not have a description element set when setting children.");
                }
        }
-       
+
        /**
         * Adds a child container to the list of this containers children
         *
@@ -201,11 +201,11 @@ public class FeatureNodeContainer{
        public void addDescriptionElement(DescriptionElementBase descriptionElement){
                descriptionElements.add(descriptionElement);
        }
-       
+
        public void removeDescriptionElement(DescriptionElementBase descriptionElement){
                descriptionElements.remove(descriptionElement);
        }
-       
+
        /**
         * If {@link #isLeaf()} is true, i.e. this container should have elements, returns the list of description elements.
         *
@@ -225,7 +225,7 @@ public class FeatureNodeContainer{
        public List<DescriptionElementBase> getDescriptionElementsForEntireBranch(){
                return getDescriptionElementsRecursively(new ArrayList<DescriptionElementBase>());
        }
-       
+
        private List<DescriptionElementBase> getDescriptionElementsRecursively(List<DescriptionElementBase> descriptionElements){
                if(isLeaf()){
                        descriptionElements.addAll(getDescriptionElements());
@@ -236,20 +236,20 @@ public class FeatureNodeContainer{
                }
                return descriptionElements;
        }
-       
+
        protected List<FeatureNodeContainer> getLeafs(){
                List<FeatureNodeContainer> leafs = new ArrayList<FeatureNodeContainer>();
-               
+
                if(isLeaf()){
                        leafs.add(this);
                }else{
                        for(FeatureNodeContainer container : getChildren()){
                                leafs.addAll(container.getLeafs());
-                       }                       
+                       }
                }
                return leafs;
        }
-       
+
        /**
         * Set the description element
         *
@@ -263,7 +263,7 @@ public class FeatureNodeContainer{
                        throw new IllegalStateException("Container may not contain child container when adding description elements.");
                }
        }
-       
+
        /**
         * If the container is a leaf, it will hold a description element and no child containers
         *
@@ -272,7 +272,7 @@ public class FeatureNodeContainer{
        public boolean isLeaf(){
                return ! descriptionElements.isEmpty() && children.isEmpty();
        }
-       
+
        /**
         * <p>Setter for the field <code>featureNode</code>.</p>
         *
@@ -290,7 +290,7 @@ public class FeatureNodeContainer{
        public FeatureNode getFeatureNode() {
                return featureNode;
        }
-       
+
        /**
         * <p>getFeature</p>
         *
@@ -311,14 +311,14 @@ public class FeatureNodeContainer{
        public DescriptionBase getDescription(){
                return containerTree.getDescription();
        }
-       
+
        public FeatureNodeContainerTree getContainerTree(){
                return containerTree;
        }
 
 
        /**
-        * 
+        *
         */
        public void clear() {
                children.clear();
index f06ac99b7cfa65d205f249851831312c6a907d91..86c47a77f12ffd13f05e5983ed39275d367276e5 100644 (file)
@@ -21,7 +21,6 @@ import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.resource.ImageRegistry;
 import org.eclipse.swt.graphics.Image;
 
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
index 0930a3bdf80e834f863c0ff1e14a93d75531a09f..2bfcb79393531922391a697c7bd95ed96566b01b 100644 (file)
@@ -55,7 +55,7 @@ public class NomenclaturalCodeHelper {
         * @return
         */
        private static boolean isSupported(NomenclaturalCode code) {
-               if (code.equals(NomenclaturalCode.ICBN) || code.equals(NomenclaturalCode.ICZN)) {
+               if (code.equals(NomenclaturalCode.ICNAFP ) || code.equals(NomenclaturalCode.ICZN)) {
                        return true;
                } else {
                        return false;
@@ -73,8 +73,8 @@ public class NomenclaturalCodeHelper {
                if (code.equals(NomenclaturalCode.ICNB)) {
                        return "International Code of Nomenclature of Bacteria (ICNB)";
                }
-               if (code.equals(NomenclaturalCode.ICBN)) {
-                       return "International Code of Botanical Nomenclature (ICBN)";
+               if (code.equals(NomenclaturalCode.ICNAFP )) {
+                       return "International Code of Botanical Nomenclature (ICNAFP )";
                }
                if (code.equals(NomenclaturalCode.ICNCP)) {
                        return "International Code of Cultivated Plants (ICNCP)";
@@ -94,6 +94,6 @@ public class NomenclaturalCodeHelper {
         * @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
         */
        public static NomenclaturalCode getDefaultCode() {
-               return NomenclaturalCode.ICBN;
+               return NomenclaturalCode.ICNAFP ;
        }
 }
index d132f0544eb0b3beb48ff8a99753768ec1dd666d..8ddca70ed37560264b2412554c245b348f9c8968 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -13,14 +13,19 @@ package eu.etaxonomy.taxeditor.newWizard;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
-import eu.etaxonomy.cdm.model.occurrence.Specimen;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationGeneralWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenGeneralWizardPage;
 
 /**
  * <p>NewDerivedUnitBaseWizard class.</p>
@@ -29,39 +34,64 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralWizardPage;
  * @created Jun 16, 2010
  * @version 1.0
  */
-public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUnitBase> {
-       
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               addPage(new GeneralWizardPage(formFactory, getConversationHolder(), getFacade()));
-               addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), getFacade()));
-               addPage(new FieldObservationWizardPage(formFactory, getConversationHolder(), getFacade()));
-               addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), getFacade()));
+public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOrObservationBase<?>> {
+       private SpecimenOrObservationType specOrObsType = null;
+
+       public NewDerivedUnitBaseWizard() {
+               super();
        }
-       
-       /**
-        * @return
-        */
-       private DerivedUnitFacade getFacade() {
-               try {
-                       return DerivedUnitFacade.NewInstance(getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
-               } catch (DerivedUnitFacadeNotSupportedException e) {
-                       // w should never get here
-                       throw new IllegalStateException();
-               }
+
+       public NewDerivedUnitBaseWizard(SpecimenOrObservationType specOrObsType) {
+               super();
+               this.specOrObsType = specOrObsType;
        }
+       /** {@inheritDoc} */
+       @Override
+    public void addPages() {
+        DerivedUnitFacade derivedUnitFacade = null;
+        try {
+            if (getEntity() != null) {
+                if(getEntity() instanceof FieldUnit){
+                    derivedUnitFacade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit)getEntity());
+
+                    addPage(new FieldObservationGeneralWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+                    addPage(new GatheringEventDetailsWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+                    addPage(new FieldObservationDetailsWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+                }
+                else if(getEntity() instanceof DerivedUnit){
+                    derivedUnitFacade = DerivedUnitFacade.NewInstance((DerivedUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
+
+                    addPage(new SpecimenGeneralWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+                    addPage(new SpecimenDetailsWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+                    addPage(new DerivedUnitDetailsWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+                }
+            }
+        } catch (DerivedUnitFacadeNotSupportedException e) {
+            // we should never get here
+            throw new IllegalStateException();
+        }
+
+    }
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
         */
        /** {@inheritDoc} */
        @Override
-       protected DerivedUnitBase createNewEntity() {
-               // TODO we do want to create different derivates of DerivedUnitBase but go with specimen for testing 
-               // at the moment
-               // FIXME add wizard page that handles the selection of derived unit type
-               return Specimen.NewInstance();
+       protected SpecimenOrObservationBase<?> createNewEntity() {
+               if(specOrObsType == null) {
+                       return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+               } else {
+                       if(SpecimenOrObservationType.Media.equals(specOrObsType) ||
+                                       ((specOrObsType.getKindOf() != null) &&
+                                       specOrObsType.getKindOf().equals(SpecimenOrObservationType.Media))) {
+                               return MediaSpecimen.NewInstance(SpecimenOrObservationType.Media);
+                       } else if(specOrObsType == SpecimenOrObservationType.FieldUnit){
+                           return FieldUnit.NewInstance();
+                       } else {
+                               return DerivedUnit.NewInstance(specOrObsType);
+                       }
+               }
        }
 
        /* (non-Javadoc)
@@ -77,6 +107,6 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUni
        protected String getEntityName() {
                return "Specimen";
        }
-       
-       
+
+
 }
index 925aead2a171bf33a16efd6bd1a18ad22050cf27..4ceb80fd3d7e3a71ef67c1773cf1b051ae84e17a 100644 (file)
@@ -11,7 +11,7 @@
 package eu.etaxonomy.taxeditor.newWizard;
 
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.model.occurrence.FieldObservation;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -21,14 +21,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created Jun 17, 2010
  * @version 1.0
  */
-public class NewFieldObservationWizard extends AbstractNewEntityWizard<FieldObservation> {
+public class NewFieldObservationWizard extends AbstractNewEntityWizard<FieldUnit> {
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
         */
        /** {@inheritDoc} */
        @Override
-       protected FieldObservation createNewEntity() {
+       protected FieldUnit createNewEntity() {
                return null;
        }
 
index 351583132eafee6b037247bd7d4057f580d0a01d..d14e60819095bb07201120674d8c3be2daae0fe1 100644 (file)
 package eu.etaxonomy.taxeditor.newWizard;
 
 import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;
-import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailWizardPage;
 
 /**
  * @author a.kohlbecker
index 9ab033f49d32d61679c873dd9ec5d0cc357084e5..6e6ec088643f8ea272f1983d83a6d03f7ecac373 100644 (file)
@@ -38,7 +38,7 @@ public class NewNonViralNameWizard extends AbstractNewEntityWizard<NonViralName>
        @Override
        protected NonViralName createNewEntity() {
                NomenclaturalCode code = PreferencesUtil.getPreferredNomenclaturalCode();
-               if(code.equals(NomenclaturalCode.ICBN)){
+               if(code.equals(NomenclaturalCode.ICNAFP )){
                        return BotanicalName.NewInstance(null);
                }else if(code.equals(NomenclaturalCode.ICZN)){
                        return ZoologicalName.NewInstance(null);
index f0e65cbd5134ab5f0ac512e08deb4e2c2c07da35..194bc3c7a66cc560dd971e896e9b39c094a462e4 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.newWizard;
 
@@ -10,7 +10,7 @@ import org.apache.commons.lang.StringUtils;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -24,7 +24,7 @@ import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeWizardPage;
  * @created Sep 15, 2009
  * @version 1.0
  */
-public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
+public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
 
        private TaxonNodeWizardPage taxonNodePage;
        private boolean openEmptyEditor;
@@ -35,17 +35,17 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
                taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity());
                addPage(taxonNodePage);
        }
-       
+
        @Override
        protected void saveEntity() {
                if(taxonNodePage.getTaxon() == null || StringUtils.isEmpty(taxonNodePage.getTaxon().getName().getFullTitleCache())){
                        openEmptyEditor = true;
                }else{
                        getConversationHolder().bind();
-                       ITreeNode parent = getParentTreeNode();
+                       ITaxonTreeNode parent = getParentTreeNode();
                        Taxon taxon = taxonNodePage.getTaxon();
                        try{
-                               TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference(), null);
+                               TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
                                generatedTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).saveOrUpdate(taxonNode);
                        }catch(IllegalArgumentException e){
                                StoreUtil.warningDialog("Taxon already exists in classfication", getClass(), e.getMessage());
@@ -54,12 +54,12 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
        }
 
        @Override
-       protected ITreeNode createNewEntity() {         
+       protected ITaxonTreeNode createNewEntity() {
                if(getSelection() != null){
                        Object selectedObject = getSelection().getFirstElement();
-                       if(selectedObject instanceof ITreeNode){
-                               ITreeNode treeNode = (ITreeNode) selectedObject;
-                               
+                       if(selectedObject instanceof ITaxonTreeNode){
+                           ITaxonTreeNode treeNode = (ITaxonTreeNode) selectedObject;
+
                                if(treeNode instanceof Classification){
                                        return CdmStore.getService(IClassificationService.class).load(treeNode.getUuid());
                                }
@@ -68,10 +68,10 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
                                }
                        }
                }
-               
+
                return null;
        }
-       
+
        /**
         * <p>openInEditor</p>
         *
@@ -80,7 +80,7 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
        public boolean openInEditor(){
                return taxonNodePage.openInEditor();
        }
-       
+
        /**
         * <p>openEmpty</p>
         *
@@ -89,7 +89,7 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
        public boolean openEmpty(){
                return openInEditor() && openEmptyEditor;
        }
-       
+
        /**
         * <p>getTaxonNode</p>
         *
@@ -97,12 +97,12 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
         */
        public TaxonNode getTaxonNode(){
                if(generatedTaxonNodeUuid != null){
-                       return CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);                       
+                       return CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
                }
                return null;
        }
-       
-       public ITreeNode getParentTreeNode(){
+
+       public ITaxonTreeNode getParentTreeNode(){
                return taxonNodePage.getParentTreeNode();
        }
 
@@ -110,5 +110,5 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
        protected String getEntityName() {
                return "Taxon";
        }
-       
+
 }
\ No newline at end of file
index c4248413cede4919ff5940f006c0588161632b9d..4a795985a4b0679c43ba13f278ef38a6c8d96fbd 100644 (file)
@@ -5,9 +5,9 @@ package eu.etaxonomy.taxeditor.newWizard;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailElement;
 
index ad9a0a9ab0ae7a256dec9b359d49b604a3229cc3..0b2f6f0f21a8cd5e65083a6e8fa4736432b93948 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -16,7 +16,7 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 
 /**
@@ -32,9 +32,9 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
  */
 public abstract class AbstractPersistentPostOperation extends AbstractPostOperation {
        private IConversationEnabled conversationEnabled;
-       
-       protected ITreeNode parentNode;
-       
+
+       protected ITaxonTreeNode parentNode;
+
        /**
         * <p>Constructor for AbstractPersistentPostOperation.</p>
         *
@@ -49,7 +49,7 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostOperat
                super(label, undoContext, postOperationEnabled);
                this.conversationEnabled = conversationEnabled;
        }
-       
+
        /**
         * <p>Constructor for AbstractPersistentPostOperation.</p>
         *
@@ -66,7 +66,7 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostOperat
                super(label, undoContext, taxonNode, postOperationEnabled);
                this.conversationEnabled = conversationEnabled;
        }
-       
+
        /**
         * <p>Constructor for AbstractPersistentPostOperation.</p>
         *
@@ -74,10 +74,10 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostOperat
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} 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.
+        * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
         */
        public AbstractPersistentPostOperation(String label,
-                       IUndoContext undoContext, ITreeNode parentNode,
+                       IUndoContext undoContext, ITaxonTreeNode parentNode,
                        IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled);
@@ -89,21 +89,22 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostOperat
         * @see eu.etaxonomy.taxeditor.operations.AbstractPostOperation#postExecute(eu.etaxonomy.cdm.model.common.CdmBase)
         */
        /** {@inheritDoc} */
-       protected IStatus postExecute(CdmBase objectAffectedByOperation) {      
+       @Override
+    protected IStatus postExecute(CdmBase objectAffectedByOperation) {
                Assert.isNotNull(conversationEnabled, "Operation has to have a valid conversation attached.");
-               
+
                conversationEnabled.getConversationHolder().commit(true);
-               
+
                IStatus status = super.postExecute(objectAffectedByOperation);
-               
+
                return status;
        }
-       
+
        /**
         * Binds the conversation that was attached to this operation.
         */
        public void bind(){
-               conversationEnabled.getConversationHolder().bind();     
+               conversationEnabled.getConversationHolder().bind();
        }
 
 }
index a2382fcee91a24f331026d4332437805fae1d18d..7254819d9880116e879ac70dbe829eaf4f4cf69a 100644 (file)
@@ -11,7 +11,6 @@
 package eu.etaxonomy.taxeditor.preference;
 
 import eu.etaxonomy.cdm.model.common.IDefinedTerm;
-import eu.etaxonomy.cdm.model.occurrence.FieldObservation;
 
 /**
  * <p>IPreferenceKeys interface.</p>
index cf0133919fc607a35cea903ddcfb07d87babc20a..81ba19af39e3aca1d78c05140a68e652cba14968 100644 (file)
@@ -30,6 +30,7 @@ import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IDefinedTerm;
+import eu.etaxonomy.cdm.model.common.ISimpleTerm;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.TermBase;
@@ -229,6 +230,25 @@ public class PreferencesUtil implements IPreferenceKeys {
                }
                return key;
        }
+       
+       /**
+        * Construct a unique key using the CdmBase object's uuid
+        * 
+        * @param cdmBase
+        * @return
+        */
+       public static String getPreferenceKey(ISimpleTerm simpleTerm) {
+               simpleTerm = (ISimpleTerm) HibernateProxyHelper.deproxy(simpleTerm);
+               String key = simpleTerm.getClass().getName().concat(".")
+                               .concat(simpleTerm.getUuid().toString());
+               if (key.contains("javassist")) {
+                       StoreUtil.warn(PreferencesUtil.class,
+                                       "Trying to persist a preference based on a proxy class.");
+               }
+               return key;
+       }
+       
+       
 
        /**
         * Construct a unique key using the CdmBase object's uuid
index 82c3707254f082f19411f3fc67eae019241a9261..566e9a7364a6df9fa90ec1164f62c9fa562bc79e 100644 (file)
@@ -10,7 +10,8 @@
 
 package eu.etaxonomy.taxeditor.preference.menu;
 
-import eu.etaxonomy.cdm.model.description.Stage;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+
 
 /**
  * <p>StageMenuPreferences class.</p>
@@ -19,7 +20,7 @@ import eu.etaxonomy.cdm.model.description.Stage;
  * @created Jun 25, 2010
  * @version 1.0
  */
-public class StageMenuPreferences extends AbstractMenuPreferences<Stage> {
+public class StageMenuPreferences extends AbstractMenuPreferences<DefinedTerm> {
        
        /**
         * <p>Constructor for StageMenuPreferences.</p>
@@ -35,8 +36,8 @@ public class StageMenuPreferences extends AbstractMenuPreferences<Stage> {
         */
        /** {@inheritDoc} */
        @Override
-       protected Class<Stage> getTermClass() {
-               return Stage.class;
+       protected Class<DefinedTerm> getTermClass() {
+               return DefinedTerm.class;
        }
 
 }
index 2d514fa8a617dff234efd3ee57b65c89c71d0d6d..8c15ccbc5a9781a79aa14522b07d715fc7046897 100644 (file)
@@ -34,7 +34,7 @@ import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
@@ -150,7 +150,7 @@ public class SearchManager {
                // by default we do not show field observations. This may be configured via preferences
                boolean showFieldObservations = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.BULK_EDITOR_OCCURRENCE_SHOW_FIELD_OBSERVATIONS);
                if(! showFieldObservations){
-                       configurator.setClazz(DerivedUnitBase.class);
+                       configurator.setClazz(DerivedUnit.class);
                }
                if(checkLargeResult(CdmStore.getService(IOccurrenceService.class).countByTitle(configurator))){
                        return CdmStore.getService(IOccurrenceService.class).findByTitle(configurator).getRecords();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ComboDefinedTermController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ComboDefinedTermController.java
new file mode 100644 (file)
index 0000000..3d25ed1
--- /dev/null
@@ -0,0 +1,402 @@
+// $Id$
+/**
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Listener;
+
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.store.TermManager;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
+import eu.etaxonomy.taxeditor.ui.element.ISelectable;
+
+/**
+ * @author pplitzner
+ * @date 15.08.2013
+ *
+ */
+public class ComboDefinedTermController<T extends DefinedTermBase> extends AbstractCdmFormElement implements SelectionListener, DisposeListener, IEnableableFormElement, ISelectable {
+
+    private static final int DEFAULT_VISIBLE_ITEMS = 10;
+
+    private T selection;
+
+    private T emptyElement;
+    private static String EMPTY_ELEMENT_LABEL = "";
+
+//    protected Label label;
+    private Combo combo;
+
+    private ArrayList<T> terms;
+
+    private Comparator<T> termComparator;
+
+    private Class<T> termClass;
+
+    private List<T> customPreferredTerms;
+
+    /**
+     * <p>
+     * Constructor for AbstractTermComboElement.
+     * </p>
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     * @param style
+     *            a int.
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param labelString
+     *            a {@link java.lang.String} object.
+     * @param selection
+     *            a T object.
+     * @param visibleItems
+     *            a int.
+     * @param <T>
+     *            a T object.
+     */
+    public ComboDefinedTermController(Combo combo, CdmFormFactory formFactory, ICdmFormElement parentElement, Class<T> termClass, T selection, int style) {
+        super(formFactory, parentElement);
+
+        this.termClass = termClass;
+        setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
+        formFactory.addPropertyChangeListener(this);
+//        if (labelString != null) {
+//            label = formFactory.createLabel(getLayoutComposite(), labelString);
+//            addControl(label);
+//        }
+
+        // create combo
+        this.combo = combo;//new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
+        addControl(combo);
+//        combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+        combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+
+        populateTerms(getPreferredTerms());
+
+        combo.addSelectionListener(this);
+        combo.addDisposeListener(this);
+        PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+
+        if (selection != null) {
+            setSelection(selection);
+        }
+    }
+
+    /**
+     * <p>
+     * Getter for the field <code>selection</code>.
+     * </p>
+     *
+     * @return a T object.
+     */
+    public T getSelection() {
+        return selection;
+    }
+
+    /**
+     * <p>
+     * Sets the selection of the combo to the given T object.
+     * </p>
+     * <p>
+     * Passing <code>null</code> to this method will set the selection to the
+     * empty element and effectively clear the selection
+     * </p>
+     *
+     * @param selection
+     *            a T object or <code>null</code> to clear the selection
+     */
+    public void setSelection(T selection) {
+        this.selection = selection;
+
+        this.selection = selection;
+
+        Listener[] listeners = combo.getListeners(SWT.Selection);
+
+        for (Listener listener : listeners) {
+            combo.removeListener(SWT.Selection, listener);
+        }
+        int selectedIndex;
+        if (selection == null) {
+            // set selection to the emptyElement
+            selectedIndex = 0;
+        } else {
+            selectedIndex = terms.indexOf(selection);
+            if (selectedIndex == -1) {
+                createTermNotInPreferredTerms(selection);
+                selectedIndex = terms.indexOf(selection);
+            }
+        }
+        combo.select(selectedIndex);
+
+        for (Listener listener : listeners) {
+            combo.addListener(SWT.Selection, listener);
+        }
+    }
+
+    /**
+     * Fills the combo with elements and sets up the convenience functions for
+     * selection index
+     *
+     * @param preferredTerms
+     */
+    private void populateTerms(List<T> preferredTerms) {
+
+        combo.removeAll();
+
+        terms = new ArrayList<T>();
+
+        int i = 1;
+        int index = 0;
+
+        // Add an empty element for when nothing was selected yet
+        combo.add(EMPTY_ELEMENT_LABEL);
+        terms.add(emptyElement);
+
+        if (termComparator != null) {
+            Collections.sort(preferredTerms, termComparator);
+        }
+        for (T term : preferredTerms) {
+            String label = getLabel(term);
+            if (label == null) {
+                if (term.getTitleCache() != null) {
+                    label = term.getTitleCache();
+                    StoreUtil.warn(getClass(), "Term does not have a representation: " + term + ", " + term.getUuid());
+                } else {
+                    label = "Unknown";
+                    StoreUtil.warn(getClass(), "Representation Label and TitleCache empty for term: " + term + ", " + term.getUuid());
+                }
+
+            }
+
+            combo.add(label);
+            terms.add(term);
+
+            i++;
+            if (selection != null) {
+                if (selection.equals(term)) {
+                    index = i;
+                }
+            }
+        }
+
+        if (selection != null && index == 0) {
+            createTermNotInPreferredTerms(selection);
+        }
+
+        combo.select(index);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void setEnabled(boolean enabled) {
+        combo.setEnabled(enabled);
+    }
+
+    /**
+     * <p>
+     * preferredTerms
+     * </p>
+     *
+     * @return a {@link java.util.List} object.
+     */
+    protected List<T> getPreferredTerms() {
+        if (customPreferredTerms != null) {
+            return customPreferredTerms;
+        }
+        return getTermManager().getPreferredTerms(termClass);
+    }
+
+    /**
+     * May be overridden by derived classes if the desired label string does not
+     * reside in term.getLabel();
+     *
+     * @param term
+     *            a T object.
+     * @return a {@link java.lang.String} object.
+     */
+    protected String getLabel(T term) {
+        return term.getLabel(CdmStore.getDefaultLanguage());
+    }
+
+    /**
+     *
+     *
+     * @param term
+     */
+    private void createTermNotInPreferredTerms(T term) {
+        List<T> preferredTerms = getPreferredTerms();
+
+        preferredTerms.add(term);
+
+        populateTerms(preferredTerms);
+    }
+
+    /**
+     * <p>
+     * addSelectionListener
+     * </p>
+     *
+     * @param listener
+     *            a {@link org.eclipse.swt.events.SelectionListener} object.
+     */
+    public void addSelectionListener(SelectionListener listener) {
+        combo.addSelectionListener(listener);
+    }
+
+    /**
+     * <p>
+     * removeSelectionListener
+     * </p>
+     *
+     * @param listener
+     *            a {@link org.eclipse.swt.events.SelectionListener} object.
+     */
+    public void removeSelectionListener(SelectionListener listener) {
+        combo.removeSelectionListener(listener);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
+     * .events.SelectionEvent)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        selection = terms.get(combo.getSelectionIndex());
+        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see java.beans.PropertyChangeListener#propertyChange(java.beans.
+     * PropertyChangeEvent)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void propertyChange(PropertyChangeEvent event) {
+        super.propertyChange(event);
+        if (event != null && PreferencesUtil.PREFERRED_TERMS_CHANGE.equals(event.getProperty())) {
+            populateTerms(getPreferredTerms());
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setSelected(boolean selected) {
+        setBackground(selected ? SELECTED : getPersistentBackground());
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void widgetDisposed(DisposeEvent e) {
+        PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);
+    }
+
+    // not used
+    /** {@inheritDoc} */
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setIrrelevant(boolean irrelevant) {
+        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND;
+
+        Color color = StoreUtil.getColor(colorId);
+        combo.setBackground(color);
+    }
+
+//    /** {@inheritDoc} */
+//    @Override
+//    public void setBackground(Color color) {
+//        if (label != null)
+//            label.setBackground(color);
+//    }
+
+    /**
+*
+*/
+    protected TermManager getTermManager() {
+        return CdmStore.getTermManager();
+    }
+
+    /**
+     *
+     * @return
+     */
+    public int getVisibleItemCount() {
+        return combo.getVisibleItemCount();
+    }
+
+    /**
+     *
+     * @param count
+     */
+    public void setVisibleItemCount(int count) {
+        combo.setVisibleItemCount(count);
+    }
+
+    /**
+     * <p>
+     * A {@link List} of term objects may be passed to this combo box. In this
+     * case, the default behaviour of displaying the preferred terms for the T
+     * type will be overridden and the combo will only display the given terms.
+     * Also, any previous selection will be reseted.
+     * </p>
+     *
+     * <p>
+     * To return to the default of displaying the preferred terms, simply pass
+     * <code>null</code>.
+     * </p>
+     *
+     * @param terms
+     *            a {@link List} of T objects or <code>null</code> for default
+     *            preferred terms
+     */
+    public void setTerms(List<T> terms) {
+        setSelection(null);
+        customPreferredTerms = terms;
+        populateTerms(customPreferredTerms);
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntityCollectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntityCollectionElement.java
new file mode 100644 (file)
index 0000000..37590d9
--- /dev/null
@@ -0,0 +1,79 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.wb.swt.ResourceManager;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+/**
+ * @author pplitzner
+ * @date 16.08.2013
+ *
+ */
+public class EntityCollectionElement extends ExpandableComposite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public EntityCollectionElement(Composite parent, int style) {
+        super(parent, style);
+        setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+        setExpanded(true);
+
+        ToolBar toolBar = new ToolBar(this, SWT.FLAT | SWT.RIGHT);
+        setTextClient(toolBar);
+
+        Label label = formToolkit.createLabel(this, "", SWT.NONE);
+        setClient(label);
+
+        ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
+
+        Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
+            /* (non-Javadoc)
+             * @see org.eclipse.jface.action.Action#run()
+             */
+            @Override
+            public void run() {
+//                ELEMENT element = createNewElement();
+//                if(element != null){
+//                    addElement(element);
+//                    if(! getSection().isExpanded()) {
+//                        getSection().setExpanded(true);
+//                    }
+//                    internalUpdateSection(true);
+//                }
+            }
+        };
+        addAction.setImageDescriptor(ResourceManager.getPluginImageDescriptor("eu.etaxonomy.taxeditor.store", "icons/add_no_bg2.gif"));
+//        addAction.setToolTipText(getTooltipString());
+
+        toolBarManager.add(addAction);
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntitySelectionField.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntitySelectionField.java
new file mode 100644 (file)
index 0000000..0c60974
--- /dev/null
@@ -0,0 +1,100 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.eclipse.wb.swt.ResourceManager;
+
+/**
+ * @author pplitzner
+ * @date 13.08.2013
+ *
+ */
+public class EntitySelectionField extends Composite {
+    private FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Label text;
+    private Button button_selection;
+    private Button button_edit;
+    private Button button_remove;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public EntitySelectionField(Composite parent, int style) {
+        super(parent, style);
+        setBackgroundMode(SWT.INHERIT_DEFAULT);
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.verticalSpacing = 0;
+            tableWrapLayout.topMargin = 0;
+            tableWrapLayout.rightMargin = 0;
+            tableWrapLayout.numColumns = 4;
+            tableWrapLayout.leftMargin = 0;
+            tableWrapLayout.horizontalSpacing = 0;
+            tableWrapLayout.bottomMargin = 0;
+            setLayout(tableWrapLayout);
+        }
+
+        text = formToolkit.createLabel(this, "", SWT.WRAP);
+        TableWrapData twd_text = new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1);
+        twd_text.align = TableWrapData.LEFT;
+        text.setLayoutData(twd_text);
+
+        button_selection = formToolkit.createButton(this, "", SWT.NONE);
+        button_selection.setToolTipText("Browse existing");
+        button_selection.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/prj_obj.gif"));
+
+        button_edit = formToolkit.createButton(this, "", SWT.NONE);
+        button_edit.setToolTipText("Edit");
+        button_edit.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/text.gif"));
+
+        button_remove = formToolkit.createButton(this, "", SWT.NONE);
+        button_remove.setToolTipText("Remove");
+        button_remove.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+    public Label getText() {
+        return text;
+    }
+    public Button getButton_selection() {
+        return button_selection;
+    }
+    public Button getButton_edit() {
+        return button_edit;
+    }
+    public Button getButton_remove() {
+        return button_remove;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
+     */
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        text.setEnabled(enabled);
+        button_selection.setEnabled(enabled);
+        button_edit.setEnabled(enabled);
+        button_remove.setEnabled(enabled);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntitySelectionFieldController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/EntitySelectionFieldController.java
new file mode 100644 (file)
index 0000000..62d7b6c
--- /dev/null
@@ -0,0 +1,430 @@
+// $Id$
+/**
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.springframework.security.core.GrantedAuthority;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.IEntitySelectionElement;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
+import eu.etaxonomy.taxeditor.ui.selection.EditFromSelectionWizard;
+
+/**
+ * @author pplitzner
+ * @date 13.08.2013
+ *
+ */
+public class EntitySelectionFieldController<T extends ICdmBase> extends AbstractCdmFormElement implements IEntitySelectionElement<T>{
+
+    /**
+     * Bitmask for configuring functionality of selection element
+     */
+    public static final int NOTHING = 0; // 000
+    public static final int EDITABLE = 1 << 0; // 001
+    public static final int DELETABLE = 1 << 1; // 010
+    public static final int SELECTABLE = 1 << 2; // 100
+    public static final int ALL = EDITABLE | DELETABLE | SELECTABLE; // 111
+
+    protected T entity;
+
+    //TODO also control "label" with this class?
+//    protected Label label;
+    protected Label text;
+    protected Button button_selection;
+
+    private SelectionArbitrator selectionArbitrator;
+
+    protected Button button_edit;
+
+//    private final String labelString;
+
+    private Composite selectableComposite;
+
+    private Button button_remove;
+
+    private final boolean isEditable;
+
+    private final boolean isDeletable;
+
+    private final ConversationHolder conversation;
+    private Class<T> clazz;
+
+    /**
+     * <p>
+     * Constructor for AbstractSelectionElement.
+     * </p>
+     *
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param conversation
+     *            TODO
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     * @param labelString
+     *            a {@link java.lang.String} object.
+     * @param entity
+     *            a T object.
+     * @param isEditable
+     *            a boolean.
+     * @param isSelectable
+     *            a boolean.
+     * @param isDeletable
+     *            a boolean.
+     * @param style
+     *            a int.
+     * @param <T>
+     *            a T object.
+     */
+    public EntitySelectionFieldController(EntitySelectionField entitySelectionField, CdmFormFactory formFactory, ConversationHolder conversation, ICdmFormElement parentElement, T entity, int mode) {
+        super(formFactory, parentElement);
+
+        setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
+        formFactory.addPropertyChangeListener(this);
+
+        this.isEditable = (mode & EDITABLE) == EDITABLE;
+        this.isDeletable = (mode & DELETABLE) == DELETABLE;
+        boolean isSelectable = (mode & SELECTABLE) == SELECTABLE;
+
+//        this.labelString = labelString;
+
+        this.conversation = conversation;
+
+        if (isSelectable && formFactory.getSelectionProvider() != null) {
+            selectionArbitrator = formFactory.createSelectionArbitrator(this);
+        }
+
+        createControls(entitySelectionField);
+
+        setEntity(entity);
+    }
+
+    public EntitySelectionFieldController(EntitySelectionField entitySelectionField, CdmFormFactory formFactory, ConversationHolder conversation, ICdmFormElement parentElement, Class<T> clazz, T entity, int mode) {
+        this(entitySelectionField, formFactory, conversation, parentElement, entity, mode);
+        this.clazz = clazz;
+    }
+
+    private void createControls(EntitySelectionField entitySelectionField) {
+
+//        label = formFactory.createLabel(getLayoutComposite(), labelString, SWT.NULL);
+//
+//        addControl(label);
+
+        selectableComposite = entitySelectionField;
+
+        int columns = 2;
+        if (isEditable) {
+            columns += 1;
+        }
+        if (isDeletable) {
+            columns += 1;
+        }
+
+        selectableComposite.setLayout(LayoutConstants.LAYOUT(columns, false));
+        selectableComposite.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+
+        addControl(selectableComposite);
+
+        text = entitySelectionField.getText();
+        addControl(text);
+
+        text.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+        text.setBackground(AbstractUtility.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
+
+        button_selection = entitySelectionField.getButton_selection();
+        button_selection.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
+        button_selection.setToolTipText("Browse existing");
+
+        addControl(button_selection);
+        button_selection.addSelectionListener(this);
+
+        button_edit = entitySelectionField.getButton_edit();
+        if (isEditable) {
+            addControl(button_edit);
+            button_edit.addSelectionListener(new EditListener(this));
+        }
+        else{
+            button_edit.setVisible(false);
+        }
+
+        button_remove = entitySelectionField.getButton_remove();
+        if (isDeletable) {
+            addControl(button_remove);
+            button_remove.addSelectionListener(new DeleteListener(this));
+        }
+        else{
+            button_remove.setVisible(false);
+        }
+    }
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        T selection = SelectionDialogFactory.getSelectionFromDialog(clazz, getShell(), getConversationHolder(), getEntity());
+        setSelectionInternal(selection);
+    }
+
+    /**
+     * Return the selected object
+     *
+     * @return a T object.
+     */
+    public T getSelection() {
+        return entity;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void setEnabled(boolean enabled) {
+        button_selection.setEnabled(enabled);
+        if (isEditable) {
+            button_edit.setEnabled(enabled && entity != null);
+        }
+    }
+
+    /**
+     * <p>
+     * setSelectionInternal
+     * </p>
+     *
+     * @param selection
+     *            a T object.
+     */
+    protected void setSelectionInternal(T selection) {
+        if (selection != null && !selection.equals(this.entity)) {
+            setEntity(selection);
+            firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+        }
+    }
+
+    /**
+     * <p>
+     * Setter for the field <code>entity</code>.
+     * </p>
+     *
+     * @param selection
+     *            a T object.
+     */
+    public void setEntity(T selection) {
+        this.entity = selection;
+        updateElement();
+    }
+
+    /**
+     * Updates this elements view
+     */
+    protected void updateElement() {
+        String title = CdmUtils.Nz(getTitle());
+        // we have to duplicate ampersands otherwise they are treated as
+        // mnenomic (see Label.setText() documentation)
+        title = title.replace("&", "&&");
+        text.setText(title); // title can be null
+        if (isEditable) {
+            button_edit.setEnabled(entity != null);
+        }
+    }
+
+    @Override
+    public void updateFromWizard() {
+        updateElement();
+        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+    }
+
+    /**
+     * <p>
+     * getTitle
+     * </p>
+     *
+     * @return a {@link java.lang.String} object.
+     */
+    protected String getTitle() {
+        if (entity != null) {
+            if (entity instanceof IIdentifiableEntity) {
+                return ((IIdentifiableEntity) entity).getTitleCache();
+            } else if (entity instanceof Group) {
+                return ((Group) entity).getName();
+            } else if (entity instanceof GrantedAuthority) {
+                return ((GrantedAuthority) entity).getAuthority();
+            }
+        }
+        return "";
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setSelected(boolean selected) {
+        setBackground(selected ? SELECTED : getPersistentBackground());
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see eu.etaxonomy.taxeditor.forms.IEntityElement#getEntity()
+     */
+    /**
+     * <p>
+     * Getter for the field <code>entity</code>.
+     * </p>
+     *
+     * @return a T object.
+     */
+    @Override
+    public T getEntity() {
+        return entity;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see eu.etaxonomy.taxeditor.forms.section.cdmdetail.ISelectableElement#
+     * getSelectionArbitrator()
+     */
+    /**
+     * <p>
+     * Getter for the field <code>selectionArbitrator</code>.
+     * </p>
+     *
+     * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}
+     *         object.
+     */
+    @Override
+    public SelectionArbitrator getSelectionArbitrator() {
+        return selectionArbitrator;
+    }
+
+    @Override
+    public Shell getShell() {
+        return getLayoutComposite().getShell();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setIrrelevant(boolean irrelevant) {
+        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_TEXT_DISABLED_BACKGROUND;
+
+        Color color = AbstractUtility.getColor(colorId);
+        text.setBackground(color);
+    }
+
+    private class DeleteListener extends SelectionAdapter {
+
+        private final EntitySelectionFieldController<T> selectionElement;
+
+        public DeleteListener(EntitySelectionFieldController<T> selectionElement) {
+            this.selectionElement = selectionElement;
+        }
+
+        @Override
+        public void widgetSelected(SelectionEvent e) {
+            setEntity(null);
+            firePropertyChangeEvent(new CdmPropertyChangeEvent(selectionElement, null));
+        }
+    }
+
+    private class EditListener extends SelectionAdapter {
+
+        private final IEntitySelectionElement<T> selectionElement;
+
+        public EditListener(IEntitySelectionElement<T> selectionElement) {
+            this.selectionElement = selectionElement;
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public void widgetSelected(SelectionEvent e) {
+            WizardDialog dialog = new WizardDialog(selectionElement.getShell(), new EditFromSelectionWizard(selectionElement));
+            if (dialog.open() == IStatus.OK) {
+                selectionElement.updateFromWizard();
+            }
+        }
+    }
+
+    // not used
+    /** {@inheritDoc} */
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+    }
+
+    /**
+     * <p>
+     * getConversationHolder
+     * </p>
+     *
+     * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
+     *         object.
+     */
+    @Override
+    public ConversationHolder getConversationHolder() {
+        return conversation;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setBackground(Color color) {
+//        label.setBackground(color);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setLabel(String labelString) {
+//        if (label != null) {
+//            label.setText(labelString);
+//        }
+    }
+
+    /**
+     * <p>
+     * Getter for the field <code>label</code>.
+     * </p>
+     *
+     * @return a {@link java.lang.String} object.
+     */
+    @Override
+    public String getLabel() {
+//        if (label != null) {
+//            return label.getText();
+//        }
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void update(CdmDataChangeMap changeEvents) {
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/LanguageTextFieldController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/LanguageTextFieldController.java
new file mode 100644 (file)
index 0000000..fc656f7
--- /dev/null
@@ -0,0 +1,100 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+
+/**
+ * @author pplitzner
+ * @date 15.08.2013
+ *
+ */
+public class LanguageTextFieldController extends TextFieldController{
+
+    private LanguageString languageString;
+
+    /**
+     * <p>Constructor for LanguageStringWithLabelElement.</p>
+     *
+     * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+     * @param labelString a {@link java.lang.String} object.
+     * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
+     * @param style a int.
+     */
+    public LanguageTextFieldController(Text controlledText, CdmFormFactory formFactory,
+            ICdmFormElement parentElement,
+            LanguageString languageString) {
+        this(controlledText, formFactory, parentElement, languageString, null);
+    }
+
+    /**
+     * <p>Constructor for LanguageStringWithLabelElement.</p>
+     *
+     * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+     * @param labelString a {@link java.lang.String} object.
+     * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
+     * @param height a int.
+     * @param style a int.
+     */
+    protected LanguageTextFieldController(Text controlledText, CdmFormFactory formFactory,
+            ICdmFormElement parentElement,
+            LanguageString languageString, Integer height) {
+        super(controlledText, formFactory, parentElement, null, height);
+
+        setLanguageString(languageString);
+    }
+
+    /**
+     * <p>Getter for the field <code>languageString</code>.</p>
+     *
+     * @return a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
+     */
+    public LanguageString getLanguageString() {
+        return languageString;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void modifyText(ModifyEvent e) {
+        if(languageString == null){
+            languageString = LanguageString.NewInstance("", CdmStore.getDefaultLanguage());
+        }
+
+        languageString.setText(text.getText());
+        super.modifyText(e);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setText(String text) {
+        if(text != null && languageString!=null){
+            languageString.setText(text);
+            super.setText(text);
+        }
+    }
+
+    /**
+     * <p>Setter for the field <code>languageString</code>.</p>
+     *
+     * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
+     */
+    public void setLanguageString(LanguageString languageString) {
+        this.languageString = languageString;
+        super.setText(languageString != null ? languageString.getText() : "");
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NamedAreaFieldController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NamedAreaFieldController.java
new file mode 100644 (file)
index 0000000..f78e941
--- /dev/null
@@ -0,0 +1,94 @@
+// $Id$
+/**
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author pplitzner
+ * @date 15.08.2013
+ *
+ */
+public class NamedAreaFieldController extends AbstractEntityCollectionElement<NamedArea> {
+
+    private EntitySelectionFieldController<NamedArea> selection_namedArea;
+
+    /**
+     * <p>
+     * Constructor for CollectingAreasDetailElement.
+     * </p>
+     *
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param section
+     *            a
+     *            {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
+     *            object.
+     * @param entity
+     *            a {@link eu.etaxonomy.cdm.model.location.NamedArea} object.
+     * @param removeListener
+     *            a {@link org.eclipse.swt.events.SelectionListener} object.
+     * @param style
+     *            a int.
+     */
+    public NamedAreaFieldController(CdmFormFactory formFactory, AbstractFormSection section, NamedArea entity, SelectionListener removeListener, int style) {
+        super(formFactory, section, entity, removeListener, null, style);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#setEntity
+     * (java.lang.Object)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void setEntity(NamedArea entity) {
+        selection_namedArea.setEntity(entity);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#createControls
+     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void createControls(ICdmFormElement formElement, int style) {
+        selection_namedArea = new EntitySelectionFieldController<NamedArea>(new EntitySelectionField(formElement.getLayoutComposite(), SWT.NONE), getFormFactory(), getConversationHolder(), formElement, NamedArea.class, null, EntitySelectionElement.NOTHING);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent
+     * (java.lang.Object)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource == selection_namedArea) {
+            setEntity(selection_namedArea.getSelection());
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NumberFieldController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/NumberFieldController.java
new file mode 100644 (file)
index 0000000..34d7415
--- /dev/null
@@ -0,0 +1,171 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+
+/**
+ * @author pplitzner
+ * @date 12.08.2013
+ *
+ */
+public class NumberFieldController extends TextFieldController {
+    private Float start;
+    private Float end;
+
+    private NumberFormatException exception;
+
+    /**
+     * <p>Constructor for NumberWithLabelElement.</p>
+     *
+     * @param toolkit a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+     * @param labelString a {@link java.lang.String} object.
+     * @param initialNumber a {@link java.lang.Integer} object.
+     * @param style a int.
+     */
+    public NumberFieldController(Text controlledText, CdmFormFactory formFactory, ICdmFormElement parentElement, Number initialNumber){
+        super(controlledText, formFactory, parentElement, null, null);
+        //WindowBuilder exception handling
+        if(initialNumber==null){
+            initialNumber = 0;
+        }
+        setNumber(initialNumber);
+    }
+
+    /**
+     * <p>setInteger</p>
+     *
+     * @param number a {@link java.lang.Integer} object.
+     */
+    public void setInteger(Integer number) {
+        super.setText(getStringRepresentation(number));
+    }
+
+    /**
+        * <p>setNumber</p>
+     *
+        * @param number a {@link java.lang.Number} object.
+     */
+       public void setNumber(Number number) {
+        super.setText(getStringRepresentation(number));
+    }
+
+    /**
+     * <p>getInteger</p>
+     *
+     * @return a {@link java.lang.Integer} object.
+     */
+    public Integer getInteger() {
+        String text = super.getText().trim();
+        return text.equals("") ? 0 : new Integer(text);
+    }
+
+    /**
+     * <p>getFloat</p>
+     *
+     * @return a {@link java.lang.Float} object.
+     */
+    public Float getFloat(){
+        String text = super.getText();
+        return new Float(text);
+    }
+
+       /**
+        * <p>getDouble</p>
+        *
+        * @return a {@link java.lang.Float} object.
+        */
+       public Double getDouble(){
+               String text = super.getText();
+               return new Double(text);
+       }
+
+    private String getStringRepresentation(Object number){
+        if(number != null){
+            return number.toString();
+        }
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void modifyText(ModifyEvent event) {
+        String value = text.getText();
+        if(CdmUtils.isEmpty(value)){
+            text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
+            return;
+        }
+
+        try{
+
+            Float number = Float.parseFloat(value);
+
+            if((start != null && number < start) || (end != null && number > end)){
+                throw new NumberFormatException("You entered a number that is not within the allowed bounds.");
+            }
+
+        }catch(NumberFormatException e){
+            text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+            firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+            exception = e;
+            return;
+        }
+
+        exception = null;
+        text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
+
+        super.modifyText(event);
+    }
+
+    /**
+     * <p>setLimits</p>
+     *
+     * @param numberOfDigits a int.
+     * @param start a {@link java.lang.Integer} object.
+     * @param end a {@link java.lang.Integer} object.
+     */
+    public void setLimits(int numberOfDigits, Integer start, Integer end){
+        setLimits(numberOfDigits, start.floatValue(), end.floatValue());
+    }
+
+    /**
+     * <p>setLimits</p>
+     *
+     * @param numberOfDigits a int.
+     * @param start a {@link java.lang.Float} object.
+     * @param end a {@link java.lang.Float} object.
+     */
+    public void setLimits(int numberOfDigits, Float start, Float end){
+        text.setTextLimit(numberOfDigits);
+        this.start = start;
+        this.end = end;
+    }
+
+    /**
+     * <p>Getter for the field <code>exception</code>.</p>
+     *
+     * @return the exception
+     */
+    public NumberFormatException getException() {
+        return exception;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/PointField.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/PointField.java
new file mode 100644 (file)
index 0000000..9e12ff6
--- /dev/null
@@ -0,0 +1,112 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+/**
+ * @author pplitzner
+ * @date 15.08.2013
+ *
+ */
+public class PointField extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Text text_latitude;
+    private Text text_latitudeParsed;
+    private Text text_longitude;
+    private Text text_longitudeParsed;
+    private Text number_errorRadius;
+    private Combo combo_referenceSystem;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public PointField(Composite parent, int style) {
+        super(parent, style);
+        {
+            setLayout(new TableWrapLayout());
+        }
+
+        text_latitude = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_latitude.setText("");
+        text_latitude.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        text_latitudeParsed = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_latitudeParsed.setEnabled(false);
+        text_latitudeParsed.setText("");
+        text_latitudeParsed.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        text_longitude = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_longitude.setText("");
+        text_longitude.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        text_longitudeParsed = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_longitudeParsed.setEnabled(false);
+        text_longitudeParsed.setText("");
+        text_longitudeParsed.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        number_errorRadius = formToolkit.createText(this, "New Text", SWT.NONE);
+        number_errorRadius.setText("");
+        number_errorRadius.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        combo_referenceSystem = new Combo(this, SWT.READ_ONLY);
+        combo_referenceSystem.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(combo_referenceSystem);
+        formToolkit.paintBordersFor(combo_referenceSystem);
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public Text getText_latitude() {
+        return text_latitude;
+    }
+    public Text getText_latitudeParsed() {
+        return text_latitudeParsed;
+    }
+    public Text getText_longitude() {
+        return text_longitude;
+    }
+    public Text getText_longitudeParsed() {
+        return text_longitudeParsed;
+    }
+    public Text getNumber_errorRadius() {
+        return number_errorRadius;
+    }
+    public Combo getCombo_referenceSystem() {
+        return combo_referenceSystem;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
+     */
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        text_latitude.setEnabled(enabled);
+        text_latitudeParsed.setEnabled(enabled);
+        text_longitude.setEnabled(enabled);
+        text_longitudeParsed.setEnabled(enabled);
+        number_errorRadius.setEnabled(enabled);
+        combo_referenceSystem.setEnabled(enabled);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/PointFieldController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/PointFieldController.java
new file mode 100644 (file)
index 0000000..3788716
--- /dev/null
@@ -0,0 +1,187 @@
+// $Id$
+/**
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import java.text.ParseException;
+
+import org.eclipse.jface.util.PropertyChangeEvent;
+
+import eu.etaxonomy.cdm.model.location.Point;
+import eu.etaxonomy.cdm.model.location.ReferenceSystem;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
+
+/**
+ * @author pplitzner
+ * @date 15.08.2013
+ *
+ */
+public class PointFieldController extends AbstractCdmFormElement implements IEntityElement<Point> {
+
+    private Point point;
+
+    private final TextFieldController text_latitude;
+    private final TextFieldController text_longitude;
+    private final NumberFieldController number_errorRadius;
+    private final ComboDefinedTermController<ReferenceSystem> combo_referenceSystem;
+
+    private final TextFieldController text_latitudeParsed;
+
+    private final TextFieldController text_longitudeParsed;
+
+    /**
+     * <p>
+     * Constructor for PointElement.
+     * </p>
+     *
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param formElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     * @param point
+     *            a {@link eu.etaxonomy.cdm.model.location.Point} object.
+     * @param style
+     *            a int.
+     */
+    public PointFieldController(PointField pointField, CdmFormFactory formFactory, ICdmFormElement formElement, Point point, final int style) {
+        super(formFactory, formElement);
+
+        setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
+        formFactory.addPropertyChangeListener(this);
+
+        text_latitude = new TextFieldController(pointField.getText_latitude(), getFormFactory(), formElement, null, style);
+        text_latitudeParsed = new TextFieldController(pointField.getText_latitudeParsed(), getFormFactory(), formElement, null, style);
+        text_longitude = new TextFieldController(pointField.getText_longitude(), getFormFactory(), formElement, null, style);
+        text_longitudeParsed = new TextFieldController(pointField.getText_longitudeParsed(), getFormFactory(), formElement, null, style);
+        number_errorRadius = new NumberFieldController(pointField.getNumber_errorRadius(), getFormFactory(), formElement, (Integer)null);
+        combo_referenceSystem = new ComboDefinedTermController<ReferenceSystem>(pointField.getCombo_referenceSystem(), getFormFactory(), formElement, ReferenceSystem.class, null, style);
+
+        setPoint(point);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org
+     * .eclipse.jface.util.PropertyChangeEvent)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void propertyChange(PropertyChangeEvent event) {
+        if (event == null) {
+            return;
+        }
+
+        boolean propagate = false;
+
+        Object eventSource = event.getSource();
+        if (eventSource == text_latitude) {
+            try {
+                getPoint().setLatitudeByParsing(text_latitude.getText());
+                text_latitudeParsed.setText(point.getLatitudeSexagesimal().toString(false));
+                text_latitude.setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
+                propagate = true;
+            } catch (ParseException e) {
+                text_latitude.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
+            }
+        } else if (eventSource == text_longitude) {
+            try {
+                getPoint().setLongitudeByParsing(text_longitude.getText());
+                text_longitudeParsed.setText(point.getLongitudeSexagesimal().toString(false));
+                text_longitude.setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
+                propagate = true;
+            } catch (ParseException e) {
+                text_longitude.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
+            }
+        } else if (eventSource == number_errorRadius) {
+            getPoint().setErrorRadius(number_errorRadius.getInteger());
+            propagate = true;
+        } else if (eventSource == combo_referenceSystem) {
+            getPoint().setReferenceSystem(combo_referenceSystem.getSelection());
+            propagate = true;
+        }
+
+        if (propagate) {
+            firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see eu.etaxonomy.taxeditor.forms.IEntityElement#getEntity()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public Point getEntity() {
+        return getPoint();
+    }
+
+    /**
+     * <p>
+     * setEntity
+     * </p>
+     *
+     * @param point
+     *            a {@link eu.etaxonomy.cdm.model.location.Point} object.
+     */
+    public void setEntity(Point point) {
+        setPoint(point);
+    }
+
+    /**
+     * <p>
+     * Setter for the field <code>point</code>.
+     * </p>
+     *
+     * @param point
+     *            the point to set
+     */
+    public void setPoint(Point point) {
+        this.point = point;
+        if (point != null) {
+            String latitude = point.getLatitudeSexagesimal() == null ? "" : point.getLatitudeSexagesimal().toString(false);
+            String longitude = point.getLongitudeSexagesimal() == null ? "" : point.getLongitudeSexagesimal().toString(false);
+            text_latitude.setText(latitude);
+            text_latitudeParsed.setText(latitude);
+            text_longitude.setText(longitude);
+            text_longitudeParsed.setText(longitude);
+            number_errorRadius.setInteger(point.getErrorRadius());
+            combo_referenceSystem.setSelection(point.getReferenceSystem());
+        }
+    }
+
+    /**
+     * <p>
+     * Getter for the field <code>point</code>.
+     * </p>
+     *
+     * @return the point
+     */
+    public Point getPoint() {
+        if (point == null) {
+            point = Point.NewInstance();
+        }
+
+        return point;
+    }
+
+    @Override
+    public void setSelected(boolean selected) {
+        setBackground(selected ? SELECTED : getPersistentBackground());
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/TextFieldController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/TextFieldController.java
new file mode 100644 (file)
index 0000000..a306b0e
--- /dev/null
@@ -0,0 +1,210 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
+import eu.etaxonomy.taxeditor.ui.element.ISelectable;
+
+/**
+ * @author pplitzner
+ * @date 09.08.2013
+ *
+ */
+public class TextFieldController extends AbstractCdmFormElement implements ModifyListener, IEnableableFormElement, ISelectable{
+
+    protected Text text;
+
+    /** Constant <code>MAX_HEIGHT=0</code> */
+    public static final int MAX_HEIGHT = 0;
+    /** Constant <code>SINGLE=-1</code> */
+    public static final int SINGLE = -1;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     * @param initialText
+     * @param textHeight
+     */
+    public TextFieldController(Text controlledText, CdmFormFactory formFactory, ICdmFormElement parentFormElement, String initialText, Integer textHeight) {
+        super(formFactory, parentFormElement);
+        setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+
+        //vvvvvvvvvvvvv
+
+        setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
+        formFactory.addPropertyChangeListener(this);
+
+        initialText = initialText==null?"":initialText;
+//
+//        int scrollStyle = textHeight == null ? SWT.NULL : (SWT.V_SCROLL | SWT.MULTI);
+//
+//        int combinedStyle = style | SWT.BORDER | scrollStyle;
+//
+//        // SWT.PASSWORD does not work when SWT.WRAP is set.
+//        if (style != SWT.PASSWORD) {
+//            combinedStyle = combinedStyle | SWT.WRAP;
+//        }
+        //^^^^^^^^^^^^^^
+
+        this.text = controlledText;
+//        TableWrapData twd_text_1 = new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP);
+//        twd_text_1.grabHorizontal = true;
+        setText(initialText);
+//        text.setLayoutData(twd_text_1);
+
+
+        //vvvvvvvvvvvvvvvvvv
+        if (textHeight == null) {
+            text.addKeyListener(new KeyAdapter() {
+                @Override
+                public void keyPressed(KeyEvent e) {
+                    if (e.character == SWT.CR) {
+                        // Don't accept carriage returns as input when in single
+                        // line mode
+                        e.doit = false;
+                    } else if (e.character == SWT.TAB) {
+                        // traverse is not working for wrapped text widgets so
+                        // we reintroduce it here
+                        e.doit = false;
+                        TextFieldController.this.text.traverse(SWT.TRAVERSE_TAB_NEXT);
+                    }
+                }
+            });
+        }
+
+//        if (textHeight != null && textHeight > 0) {
+//            TableWrapData layoutData = LayoutConstants.FILL();
+//            (layoutData).heightHint = textHeight;
+//            text.setLayoutData(layoutData);
+//        }
+
+        text.addModifyListener(this);
+
+        addControl(text);
+
+    }
+
+    /**
+     * Get the text of this composites text composite
+     *
+     * @return a {@link java.lang.String} object.
+     */
+    public String getText() {
+        return text.getText();
+    }
+
+    /**
+     * Set the text of this composites text composite
+     *
+     * @param string
+     *            a {@link java.lang.String} object.
+     */
+    public void setText(String string) {
+        Listener[] listeners = text.getListeners(SWT.Modify);
+
+        for (Listener listener : listeners) {
+            text.removeListener(SWT.Modify, listener);
+        }
+
+        text.setText(CdmUtils.Nz(string));
+
+        for (Listener listener : listeners) {
+            text.addListener(SWT.Modify, listener);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events
+     * .ModifyEvent)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void modifyText(ModifyEvent e) {
+        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setEnabled(boolean enabled) {
+        text.setEnabled(enabled);
+        String symbolicName = enabled ? Resources.COLOR_FONT_DEFAULT : Resources.COLOR_TEXT_DISABLED;
+        text.setForeground(getColor(symbolicName));
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setIrrelevant(boolean irrelevant) {
+        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND;
+
+        Color color = getColor(colorId);
+        text.setBackground(color);
+    }
+
+    @Override
+    public void setSelected(boolean selected) {
+        setBackground(selected ? SELECTED : getPersistentBackground());
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#setFocus()
+     */
+    /** {@inheritDoc}
+     * @return */
+    @Override
+    public void setFocus() {
+        text.setFocus();
+    }
+
+    /**
+     * <p>
+     * getMainControl
+     * </p>
+     *
+     * @return a {@link org.eclipse.swt.widgets.Control} object.
+     */
+    public Control getMainControl() {
+        return text;
+    }
+
+    /**
+     * <p>
+     * setTextLimit
+     * </p>
+     *
+     * @param limit
+     *            a int.
+     */
+    public void setTextLimit(int limit) {
+        text.setTextLimit(limit);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextField.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextField.java
new file mode 100644 (file)
index 0000000..55ed58a
--- /dev/null
@@ -0,0 +1,72 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+/**
+ * @author pplitzner
+ * @date 14.08.2013
+ *
+ */
+public class ToggleableTextField extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Text text;
+    private Button editButton;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public ToggleableTextField(Composite parent, int style) {
+        super(parent, style);
+        setBackgroundMode(SWT.INHERIT_DEFAULT);
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.numColumns = 2;
+            tableWrapLayout.verticalSpacing = 0;
+            tableWrapLayout.topMargin = 0;
+            tableWrapLayout.rightMargin = 0;
+            tableWrapLayout.leftMargin = 0;
+            tableWrapLayout.horizontalSpacing = 0;
+            tableWrapLayout.bottomMargin = 0;
+            setLayout(tableWrapLayout);
+        }
+
+        text = formToolkit.createText(this, "New Text", SWT.WRAP);
+        text.setText("");
+        TableWrapData twd_text = new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1);
+        twd_text.grabVertical = true;
+        text.setLayoutData(twd_text);
+
+        editButton = formToolkit.createButton(this, "Edit", SWT.TOGGLE);
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public Text getText() {
+        return text;
+    }
+    public Button getEditButton() {
+        return editButton;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java
new file mode 100644 (file)
index 0000000..1307f04
--- /dev/null
@@ -0,0 +1,218 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.basicFields;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
+import eu.etaxonomy.taxeditor.ui.element.ISelectable;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+
+/**
+ * @author pplitzner
+ * @date 14.08.2013
+ *
+ */
+public class ToggleableTextFieldController extends AbstractCdmFormElement implements SelectionListener, ModifyListener, IEnableableFormElement, ISelectable {
+
+    private ToggleableTextField toggleableTextField;
+
+    private boolean state;
+    private Set<SelectionListener> selectionListener = new HashSet<SelectionListener>();
+    //TODO also connect label
+//    private Label label;
+
+    /**
+     * <p>Constructor for ToggleableTextElement.</p>
+     *
+     * @param style a int.
+     * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+     * @param labelString a {@link java.lang.String} object.
+     * @param initialText a {@link java.lang.String} object.
+     * @param initialState a boolean.
+     */
+    public ToggleableTextFieldController(ToggleableTextField toggleableTextField, CdmFormFactory formFactory, ICdmFormElement parentElement,
+            String initialText, boolean initialState, int style) {
+        super(formFactory, parentElement);
+        setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
+        formFactory.addPropertyChangeListener(this);
+
+        this.toggleableTextField = toggleableTextField;
+
+//        label = formFactory.createLabel(getLayoutComposite(), labelString, style);
+//        addControl(label);
+
+        Text text = toggleableTextField.getText();
+        addControl(text);
+        text.addModifyListener(this);
+        text.setLayoutData(LayoutConstants.FILL());
+
+        // Don't accept carriage returns as input
+        text.addKeyListener( new KeyAdapter(){
+            @Override
+            public void keyPressed(KeyEvent e) {
+            if(e.character == SWT.CR) {
+                e.doit = false;
+            }
+            }
+        });
+
+        Button editButton = toggleableTextField.getEditButton();
+        addControl(editButton);
+        editButton.addSelectionListener(this);
+
+        setState(initialState);
+    }
+
+    /**
+     * <p>setText</p>
+     *
+     * @param text a {@link java.lang.String} object.
+     */
+    public void setText(String text){
+        if(text != null){
+            // store current caret position
+            Text textField = toggleableTextField.getText();
+            int caretPosition = textField.getCaretPosition();
+
+            Listener[] listeners = textField.getListeners(SWT.Modify);
+            for (Listener listener : listeners) {
+                textField.removeListener(SWT.Modify, listener);
+            }
+            textField.setText(CdmUtils.Nz(text));
+            for (Listener listener : listeners) {
+                textField.addListener(SWT.Modify, listener);
+            }
+
+            // restore caret position
+            textField.setSelection(caretPosition);
+        }
+    }
+
+    /**
+     * <p>getText</p>
+     *
+     * @return a {@link java.lang.String} object.
+     */
+    public String getText(){
+        return toggleableTextField.getText().getText();
+    }
+
+    /**
+     * <p>Setter for the field <code>state</code>.</p>
+     *
+     * @param state a boolean.
+     */
+    public void setState(boolean state) {
+        this.state = state;
+        setEnabled(state);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setEnabled(boolean enabled) {
+        toggleableTextField.getText().setEnabled(enabled);
+        String symbolicName = enabled ? Resources.COLOR_FONT_DEFAULT : Resources.COLOR_TEXT_DISABLED;
+        toggleableTextField.getText().setForeground(StoreUtil.getColor(symbolicName));
+        toggleableTextField.getEditButton().setSelection(enabled);
+    }
+
+    /**
+     * <p>Getter for the field <code>state</code>.</p>
+     *
+     * @return a boolean.
+     */
+    public boolean getState(){
+        return state;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        setState(toggleableTextField.getEditButton().getSelection());
+        for(SelectionListener listener : selectionListener){
+            listener.widgetSelected(e);
+        }
+        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+    }
+
+    /**
+     * <p>addSelectionListener</p>
+     *
+     * @param listener a {@link org.eclipse.swt.events.SelectionListener} object.
+     */
+    public void addSelectionListener(SelectionListener listener){
+        selectionListener.add(listener);
+    }
+
+    /**
+     * <p>removeSelectionListener</p>
+     *
+     * @param listener a {@link org.eclipse.swt.events.SelectionListener} object.
+     */
+    public void removeSelectionListener(SelectionListener listener){
+        selectionListener.remove(listener);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {}
+
+    /** {@inheritDoc} */
+    @Override
+    public void modifyText(ModifyEvent e) {
+        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setIrrelevant(boolean irrelevant) {
+        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND;
+
+        Color color = getColor(colorId);
+        toggleableTextField.getText().setBackground(color);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setBackground(Color color) {
+//        label.setBackground(color);
+        toggleableTextField.setBackground(color);
+    }
+
+    @Override
+    public void setSelected(boolean selected) {
+        setBackground(selected ? SELECTED : getPersistentBackground());
+    }
+}
similarity index 86%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICdmFormElement.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/compatibility/ICdmFormElement.java
index a85aecfe7a158f56dc20fa50d1fe352ed7f132ff..504a677b55d6ff3aa55d26f295c9eaf0ea7b587d 100644 (file)
@@ -1,4 +1,4 @@
-package eu.etaxonomy.taxeditor.ui.element;
+package eu.etaxonomy.taxeditor.ui.campanula.compatibility;
 
 
 import java.util.List;
@@ -9,6 +9,9 @@ import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.IPropertyChangeEmitter;
+
 /**
  * <p>ICdmFormElement interface.</p>
  *
@@ -31,47 +34,47 @@ public interface ICdmFormElement extends IPropertyChangeEmitter, IPropertyChange
         */
        public abstract void setPropertyChangeListeners(
                        List<IPropertyChangeListener> propertyChangeListeners);
-       
+
        /**
         * <p>getControls</p>
         *
         * @return a {@link java.util.Set} object.
         */
        public abstract Set<Control> getControls();
-       
+
        /**
         * <p>getElements</p>
         *
         * @return a {@link java.util.Set} object.
         */
        public abstract Set<ICdmFormElement> getElements();
-       
+
        /**
         * <p>addElement</p>
         *
         * @param element a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         */
        public abstract void addElement(ICdmFormElement element);
-       
+
        /**
         * <p>getParentElement</p>
         *
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         */
        public abstract ICdmFormElement getParentElement();
-               
+
        /**
         * <p>removeElements</p>
         */
        public abstract void removeElements();
-       
+
        /**
         * <p>getLayoutComposite</p>
         *
         * @return a {@link org.eclipse.swt.widgets.Composite} object.
         */
        public abstract Composite getLayoutComposite();
-       
+
        /**
         * <p>containsFormElement</p>
         *
@@ -79,29 +82,29 @@ public interface ICdmFormElement extends IPropertyChangeEmitter, IPropertyChange
         * @return a boolean.
         */
        public boolean containsFormElement(ICdmFormElement formElement);
-       
+
        /**
         * <p>setBackground</p>
         *
         * @param color a {@link org.eclipse.swt.graphics.Color} object.
         */
        public void setBackground(Color color);
-       
+
        /**
         * Sets a background color for this element and stores this background color
         * for future reference
-        * 
+        *
         * @param color
         */
        public void setPersistentBackground(Color color);
-       
+
        /**
         * Get the background color that is associated with this element.
-        * 
+        *
         * @return
         */
        public Color getPersistentBackground();
-       
+
        /**
         * Refreshes the layout of this form element.
         *
@@ -109,4 +112,11 @@ public interface ICdmFormElement extends IPropertyChangeEmitter, IPropertyChange
         * changes and the current element needs to display that changes
         */
        public void refresh();
+
+    /**
+     * <p>Getter for the field <code>formFactory</code>.</p>
+     *
+     * @return a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     */
+    public CdmFormFactory getFormFactory();
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/compatibility/IEntitySelectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/compatibility/IEntitySelectionElement.java
new file mode 100644 (file)
index 0000000..2acc168
--- /dev/null
@@ -0,0 +1,42 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.compatibility;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
+import eu.etaxonomy.taxeditor.ui.element.ILabeledElement;
+import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
+
+/**
+ * @author pplitzner
+ * @date 15.08.2013
+ *
+ */
+public interface IEntitySelectionElement<T extends ICdmBase> extends SelectionListener, IEnableableFormElement, ISelectableElement, IEntityElement<T>, ILabeledElement, IConversationEnabled {
+    /**
+     * Convenient access to current shell
+     *
+     * @return a {@link org.eclipse.swt.widgets.Shell} object.
+     */
+    public abstract Shell getShell();
+
+    /**
+     * <p>
+     * updateFromWizard
+     * </p>
+     */
+    public abstract void updateFromWizard();
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsElement.java
new file mode 100644 (file)
index 0000000..4fe05d3
--- /dev/null
@@ -0,0 +1,97 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+/**
+ * @author pplitzner
+ * @date 15.08.2013
+ *
+ */
+public class FieldObservationDetailsElement extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Text text_ecology;
+    private Text text_plantDescription;
+    private Text text_FieldNotes;
+    private Text text_IndividualCount;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public FieldObservationDetailsElement(Composite parent, int style) {
+        super(parent, style);
+        setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.numColumns = 2;
+            tableWrapLayout.verticalSpacing = 0;
+            tableWrapLayout.topMargin = 0;
+            tableWrapLayout.rightMargin = 0;
+            tableWrapLayout.leftMargin = 0;
+            tableWrapLayout.horizontalSpacing = 0;
+            tableWrapLayout.bottomMargin = 0;
+            setLayout(tableWrapLayout);
+        }
+
+        Label lblEcology = formToolkit.createLabel(this, "Ecology", SWT.NONE);
+
+        text_ecology = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_ecology.setText("");
+        text_ecology.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblPlantDescription = formToolkit.createLabel(this, "Plant Description", SWT.NONE);
+
+        text_plantDescription = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_plantDescription.setText("");
+        text_plantDescription.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblFieldNotes = formToolkit.createLabel(this, "Field Notes", SWT.NONE);
+
+        text_FieldNotes = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_FieldNotes.setText("");
+        text_FieldNotes.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblIndividualCount = formToolkit.createLabel(this, "Individual Count", SWT.NONE);
+
+        text_IndividualCount = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_IndividualCount.setText("");
+        text_IndividualCount.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public Text getText_ecology() {
+        return text_ecology;
+    }
+    public Text getText_plantDescription() {
+        return text_plantDescription;
+    }
+    public Text getText_FieldNotes() {
+        return text_FieldNotes;
+    }
+    public Text getText_IndividualCount() {
+        return text_IndividualCount;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsElementController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsElementController.java
new file mode 100644 (file)
index 0000000..151e7bb
--- /dev/null
@@ -0,0 +1,83 @@
+// $Id$
+/**
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.NumberFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.TextFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 15.08.2013
+ *
+ */
+public class FieldObservationDetailsElementController extends AbstractCdmDetailElement<DerivedUnitFacade> {
+
+    private FieldObservationDetailsElement fieldObservationDetailsElement;
+
+    private TextFieldController text_ecology;
+
+    private TextFieldController text_plantDescription;
+
+    private TextFieldController text_fieldObjectDefinition;
+
+    private TextFieldController text_fieldNotes;
+
+    private NumberFieldController number_individualCount;
+
+    /**
+     * <p>
+     * Constructor for FieldObservationDetailElement.
+     * </p>
+     *
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param formElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     */
+    public FieldObservationDetailsElementController(FieldObservationDetailsElement fieldObservationDetailsElement, CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+        this.fieldObservationDetailsElement = fieldObservationDetailsElement;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+//        text_ecology = new TextFieldController(fieldObservationDetailsElement.getText_ecology(), getFormFactory(), formElement, entity.getEcology(CdmStore.getDefaultLanguage()), null);
+//        text_plantDescription = new TextFieldController(fieldObservationDetailsElement.getText_plantDescription(), getFormFactory(), formElement, entity.getPlantDescription(CdmStore.getDefaultLanguage()), style);
+        // Disable for now
+        // text_fieldObjectDefinition = formFactory.createTextWithLabelElement(formElement, "Field Object Definition", entity.getFieldObjectDefinition(CdmStore.getDefaultLanguage()), style);
+        text_fieldNotes = new TextFieldController(fieldObservationDetailsElement.getText_FieldNotes(), getFormFactory(), formElement, entity.getFieldNotes(), style);
+
+        number_individualCount = new NumberFieldController(fieldObservationDetailsElement.getText_IndividualCount(), getFormFactory(), formElement, entity.getIndividualCount());
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void handleEvent(Object eventSource) {
+//        if (eventSource == text_ecology) {
+//            getEntity().setEcology(text_ecology.getText());
+//        } else if (eventSource == text_plantDescription) {
+//            getEntity().setPlantDescription(text_plantDescription.getText());
+//        } else if (eventSource == text_fieldObjectDefinition) {
+//            getEntity().addFieldObjectDefinition(text_fieldObjectDefinition.getText(), CdmStore.getDefaultLanguage());
+//        } else
+            if (eventSource == text_fieldNotes) {
+            getEntity().setFieldNotes(text_fieldNotes.getText());
+        } else if (eventSource == number_individualCount) {
+            getEntity().setIndividualCount(number_individualCount.getInteger());
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsSection.java
new file mode 100644 (file)
index 0000000..c417edd
--- /dev/null
@@ -0,0 +1,57 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 21.08.2013
+ *
+ */
+public class FieldObservationDetailsSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+
+    /**
+     * <p>Constructor for FieldObservationDetailSection.</p>
+     *
+     * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+     * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+     * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
+     * @param style a int.
+     */
+    public FieldObservationDetailsSection(CdmFormFactory formFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement,
+            ISelectionProvider selectionProvider, int style) {
+        super(formFactory, conversation, parentElement, selectionProvider, style);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String getHeading() {
+        return "Field Observation Details";
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
+     */
+    @Override
+    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+        return formFactory.createFieldObservationDetailsElementController(parentElement);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsView.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationDetailsView.java
new file mode 100644 (file)
index 0000000..8a46c9e
--- /dev/null
@@ -0,0 +1,88 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+/**
+ * @author pplitzner
+ * @date 07.08.2013
+ *
+ */
+public class FieldObservationDetailsView extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public FieldObservationDetailsView(Composite parent, int style) {
+        super(parent, style);
+        setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.numColumns = 1;
+            setLayout(tableWrapLayout);
+        }
+
+        ExpandableComposite xpndblcmpstNewExpandablecomposite = formToolkit.createExpandableComposite(this, ExpandableComposite.TWISTIE);
+        TableWrapData twd_xpndblcmpstNewExpandablecomposite = new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP, 1, 1);
+        twd_xpndblcmpstNewExpandablecomposite.grabHorizontal = true;
+        xpndblcmpstNewExpandablecomposite.setLayoutData(twd_xpndblcmpstNewExpandablecomposite);
+        formToolkit.paintBordersFor(xpndblcmpstNewExpandablecomposite);
+        xpndblcmpstNewExpandablecomposite.setText("FieldObservation");
+        xpndblcmpstNewExpandablecomposite.setExpanded(true);
+
+        FieldObservationGeneralElement fieldObservationGeneralElement = new FieldObservationGeneralElement(xpndblcmpstNewExpandablecomposite, SWT.NONE);
+        formToolkit.adapt(fieldObservationGeneralElement);
+        formToolkit.paintBordersFor(fieldObservationGeneralElement);
+        xpndblcmpstNewExpandablecomposite.setClient(fieldObservationGeneralElement);
+
+        ExpandableComposite xpndblcmpstNewExpandablecomposite_1 = formToolkit.createExpandableComposite(this, ExpandableComposite.TWISTIE);
+        TableWrapData twd_xpndblcmpstNewExpandablecomposite_1 = new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP, 1, 1);
+        twd_xpndblcmpstNewExpandablecomposite_1.grabHorizontal = true;
+        xpndblcmpstNewExpandablecomposite_1.setLayoutData(twd_xpndblcmpstNewExpandablecomposite_1);
+        formToolkit.paintBordersFor(xpndblcmpstNewExpandablecomposite_1);
+        xpndblcmpstNewExpandablecomposite_1.setText("Gathering Event Details");
+        xpndblcmpstNewExpandablecomposite_1.setExpanded(true);
+
+        GatheringEventDetailsElement gatheringEventDetailsElement = new GatheringEventDetailsElement(xpndblcmpstNewExpandablecomposite_1, SWT.NONE);
+        formToolkit.adapt(gatheringEventDetailsElement);
+        formToolkit.paintBordersFor(gatheringEventDetailsElement);
+        xpndblcmpstNewExpandablecomposite_1.setClient(gatheringEventDetailsElement);
+
+        ExpandableComposite xpndblcmpstFieldObservationDetails = formToolkit.createExpandableComposite(this, ExpandableComposite.TWISTIE);
+        TableWrapData twd_xpndblcmpstFieldObservationDetails = new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP, 1, 1);
+        twd_xpndblcmpstFieldObservationDetails.grabHorizontal = true;
+        xpndblcmpstFieldObservationDetails.setLayoutData(twd_xpndblcmpstFieldObservationDetails);
+        formToolkit.paintBordersFor(xpndblcmpstFieldObservationDetails);
+        xpndblcmpstFieldObservationDetails.setText("Field Observation Details");
+        xpndblcmpstFieldObservationDetails.setExpanded(true);
+
+        FieldObservationDetailsElement fieldObservationDetailsElement = new FieldObservationDetailsElement(xpndblcmpstFieldObservationDetails, SWT.NONE);
+        formToolkit.adapt(fieldObservationDetailsElement);
+        formToolkit.paintBordersFor(fieldObservationDetailsElement);
+        xpndblcmpstFieldObservationDetails.setClient(fieldObservationDetailsElement);
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralElement.java
new file mode 100644 (file)
index 0000000..e3de5d0
--- /dev/null
@@ -0,0 +1,227 @@
+// $Id$
+/**
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.EntitySelectionField;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.PointField;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.ToggleableTextField;
+
+/**
+ * @author pplitzner
+ * @date 07.08.2013
+ *
+ */
+public class FieldObservationGeneralElement extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private final Text textLocality;
+    private final Text textElevation;
+    private final Text textCollectingNumber;
+    private EntitySelectionField countrySelectionField;
+    private EntitySelectionField collectorSelectionField;
+    private ToggleableTextField toggleableTextField;
+    private PointField pointField;
+    private Text textAccessionNumber;
+    private EntitySelectionField collectionSelectionField;
+    private Label lblCollection;
+    private Label lblAccesionNumber;
+    private Label lblCountry;
+    private Label lblLocality;
+    private Label lblLatitude;
+    private Label lblLongitude;
+    private Label lblErrorRadiusm;
+    private Label lblReferenceSystem;
+    private Label lblAbsoluteElevationm;
+    private Label lblDate;
+    private Label lblCollector;
+    private Label lblCollectingNumber;
+
+    /**
+     * Create the composite.
+     *
+     * @param parent
+     * @param style
+     */
+    public FieldObservationGeneralElement(Composite parent, int style) {
+        super(parent, SWT.NONE);
+        setBackgroundMode(SWT.INHERIT_DEFAULT);
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.numColumns = 2;
+            setLayout(tableWrapLayout);
+        }
+
+        Label lblTitleCache = formToolkit.createLabel(this, "Title Cache", SWT.NONE);
+
+        toggleableTextField = new ToggleableTextField(this, SWT.NONE);
+        toggleableTextField.setBackgroundMode(SWT.INHERIT_DEFAULT);
+        TableWrapData twd_toggleableTextField = new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP, 1, 1);
+        twd_toggleableTextField.grabHorizontal = true;
+        toggleableTextField.setLayoutData(twd_toggleableTextField);
+        formToolkit.adapt(toggleableTextField);
+        formToolkit.paintBordersFor(toggleableTextField);
+
+        lblCountry = new Label(this, SWT.NONE);
+        formToolkit.adapt(lblCountry, true, true);
+        lblCountry.setText("Country");
+
+        countrySelectionField = new EntitySelectionField(this, SWT.NONE);
+        countrySelectionField.setBackgroundMode(SWT.INHERIT_DEFAULT);
+        countrySelectionField.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(countrySelectionField);
+        formToolkit.paintBordersFor(countrySelectionField);
+
+        lblLocality = formToolkit.createLabel(this, "Locality", SWT.NONE);
+
+        textLocality = formToolkit.createText(this, "New Text", SWT.NONE);
+        textLocality.setText("");
+        textLocality.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        lblLatitude = formToolkit.createLabel(this, "Latitude", SWT.NONE);
+
+        pointField = new PointField(this, SWT.NONE);
+        TableWrapLayout twl_pointField = (TableWrapLayout) pointField.getLayout();
+        twl_pointField.verticalSpacing = 0;
+        twl_pointField.topMargin = 0;
+        twl_pointField.rightMargin = 0;
+        twl_pointField.leftMargin = 0;
+        twl_pointField.horizontalSpacing = 0;
+        twl_pointField.bottomMargin = 0;
+        pointField.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP, 6, 1));
+        formToolkit.adapt(pointField);
+        formToolkit.paintBordersFor(pointField);
+        new Label(this, SWT.NONE);
+
+        lblLongitude = formToolkit.createLabel(this, "Longitude", SWT.NONE);
+        new Label(this, SWT.NONE);
+
+        lblErrorRadiusm = formToolkit.createLabel(this, "Error Radius (m)", SWT.NONE);
+
+        lblReferenceSystem = formToolkit.createLabel(this, "Reference System", SWT.NONE);
+
+        lblAbsoluteElevationm = formToolkit.createLabel(this, "Absolute Elevation (m)", SWT.NONE);
+
+        textElevation = formToolkit.createText(this, "New Text", SWT.NONE);
+        textElevation.setText("");
+        textElevation.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        lblDate = formToolkit.createLabel(this, "Date", SWT.NONE);
+        new Label(this, SWT.NONE);
+
+        lblCollector = formToolkit.createLabel(this, "Collector", SWT.NONE);
+
+        collectorSelectionField = new EntitySelectionField(this, SWT.NONE);
+        collectorSelectionField.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(collectorSelectionField);
+        formToolkit.paintBordersFor(collectorSelectionField);
+
+                        lblCollectingNumber = formToolkit.createLabel(this, "Collecting Number", SWT.NONE);
+
+                        textCollectingNumber = formToolkit.createText(this, "New Text", SWT.NONE);
+                        textCollectingNumber.setText("");
+                        textCollectingNumber.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        lblCollection = formToolkit.createLabel(this, "Collection", SWT.NONE);
+
+        collectionSelectionField = new EntitySelectionField(this, SWT.NONE);
+        formToolkit.adapt(collectionSelectionField);
+        formToolkit.paintBordersFor(collectionSelectionField);
+
+        lblAccesionNumber = formToolkit.createLabel(this, "Accesion Number", SWT.NONE);
+
+        textAccessionNumber = formToolkit.createText(this, "New Text", SWT.NONE);
+        textAccessionNumber.setText("");
+        textAccessionNumber.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public EntitySelectionField getCountrySelectionField() {
+        return countrySelectionField;
+    }
+
+    public EntitySelectionField getCollectorSelectionField() {
+        return collectorSelectionField;
+    }
+
+    public Text getTextElevation() {
+        return textElevation;
+    }
+
+    public Text getTextLocality() {
+        return textLocality;
+    }
+
+    public Text getTextCollectingNumber() {
+        return textCollectingNumber;
+    }
+
+    public ToggleableTextField getToggleableTextField() {
+        return toggleableTextField;
+    }
+
+    public PointField getPointField() {
+        return pointField;
+    }
+    public EntitySelectionField getCollectionSelectionField() {
+        return collectionSelectionField;
+    }
+    public Text getTextAccessionNumber() {
+        return textAccessionNumber;
+    }
+    public Label getLblCollection() {
+        return lblCollection;
+    }
+    public Label getLblAccesionNumber() {
+        return lblAccesionNumber;
+    }
+    public Label getLblCountry() {
+        return lblCountry;
+    }
+    public Label getLblLocality() {
+        return lblLocality;
+    }
+    public Label getLblLatitude() {
+        return lblLatitude;
+    }
+    public Label getLblLongitude() {
+        return lblLongitude;
+    }
+    public Label getLblErrorRadiusm() {
+        return lblErrorRadiusm;
+    }
+    public Label getLblReferenceSystem() {
+        return lblReferenceSystem;
+    }
+    public Label getLblAbsoluteElevation() {
+        return lblAbsoluteElevationm;
+    }
+    public Label getLblDate() {
+        return lblDate;
+    }
+    public Label getLblCollector() {
+        return lblCollector;
+    }
+    public Label getLblCollectingNumber() {
+        return lblCollectingNumber;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralElementController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralElementController.java
new file mode 100644 (file)
index 0000000..c5b8d36
--- /dev/null
@@ -0,0 +1,168 @@
+// $Id$
+/**
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.EntitySelectionFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.LanguageTextFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.NumberFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.PointFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.TextFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.ToggleableTextFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author pplitzner
+ * @date 13.08.2013
+ *
+ */
+public class FieldObservationGeneralElementController extends AbstractCdmDetailElement<DerivedUnitFacade> {
+
+    private FieldObservationGeneralElement fieldObservationGeneralElement;
+
+    private ToggleableTextFieldController toggleableText_titleCache;
+    private EntitySelectionFieldController<NamedArea> selection_country;
+    private LanguageTextFieldController languageText_locality;
+    private PointFieldController element_point;
+    private NumberFieldController number_elevation;
+    private TimePeriodElement element_date;//TODO convert
+    private EntitySelectionFieldController<AgentBase> selection_collector;
+    private TextFieldController text_collectingNumber;
+    private EntitySelectionFieldController<Collection> selectionCollection;
+    private TextFieldController textAccessionNumber;
+
+    boolean isSpecimen;
+    boolean isWizard;
+
+    /**
+     * @param formFactory
+     * @param formElement
+     */
+    public FieldObservationGeneralElementController(FieldObservationGeneralElement fieldObservationGeneralElement, CdmFormFactory formFactory, ICdmFormElement formElement, boolean isSpecimen, boolean isWizard) {
+        super(formFactory, formElement);
+        this.fieldObservationGeneralElement = fieldObservationGeneralElement;
+        this.isSpecimen = isSpecimen;
+        this.isWizard = isWizard;
+        setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
+        formFactory.addPropertyChangeListener(this);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
+     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
+     */
+    @Override
+    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+        toggleableText_titleCache = new ToggleableTextFieldController(fieldObservationGeneralElement.getToggleableTextField(), getFormFactory(), formElement, entity.getTitleCache(), entity.isProtectedTitleCache(), style);
+
+        selection_country = new EntitySelectionFieldController<NamedArea>(fieldObservationGeneralElement.getCountrySelectionField(), getFormFactory(), getConversationHolder(), formElement, NamedArea.class, entity.getCountry(), EntitySelectionElement.NOTHING);
+        languageText_locality = new LanguageTextFieldController(fieldObservationGeneralElement.getTextLocality(), getFormFactory(), formElement, entity.getLocality());
+        element_point = new PointFieldController(fieldObservationGeneralElement.getPointField(),getFormFactory(), formElement, entity.getExactLocation(), style);
+        number_elevation = new NumberFieldController(fieldObservationGeneralElement.getTextElevation(), getFormFactory(), formElement, entity.getAbsoluteElevation());
+        element_date = formFactory.createTimePeriodElement(formElement, "Date", entity.getGatheringPeriod(), style);
+        selection_collector = new EntitySelectionFieldController<AgentBase>(fieldObservationGeneralElement.getCollectorSelectionField(), getFormFactory(), getConversationHolder(), formElement, AgentBase.class, entity.getCollector(), EntitySelectionElement.ALL);
+        text_collectingNumber = new TextFieldController(fieldObservationGeneralElement.getTextCollectingNumber(), getFormFactory(), formElement, entity.getFieldNumber(), null);
+        if(isWizard){
+            if(!isSpecimen){
+                fieldObservationGeneralElement.getLblCollection().setVisible(false);
+                fieldObservationGeneralElement.getCollectionSelectionField().setVisible(false);
+                fieldObservationGeneralElement.getLblAccesionNumber().setVisible(false);
+                fieldObservationGeneralElement.getTextAccessionNumber().setVisible(false);
+            }
+            else{
+                selectionCollection = new EntitySelectionFieldController<Collection>(fieldObservationGeneralElement.getCollectionSelectionField(), getFormFactory(), getConversationHolder(), formElement, Collection.class, entity.getCollection(), EntitySelectionElement.ALL);
+                textAccessionNumber = new TextFieldController(fieldObservationGeneralElement.getTextAccessionNumber(), getFormFactory(), formElement, entity.getAccessionNumber(), null);
+            }
+        }
+        else{
+            if(isSpecimen){
+                selectionCollection = new EntitySelectionFieldController<Collection>(fieldObservationGeneralElement.getCollectionSelectionField(), getFormFactory(), getConversationHolder(), formElement, Collection.class, entity.getCollection(), EntitySelectionElement.ALL);
+                textAccessionNumber = new TextFieldController(fieldObservationGeneralElement.getTextAccessionNumber(), getFormFactory(), formElement, entity.getAccessionNumber(), null);
+                fieldObservationGeneralElement.getLblCountry().setEnabled(false);
+                fieldObservationGeneralElement.getCountrySelectionField().setEnabled(false);
+                fieldObservationGeneralElement.getLblLocality().setEnabled(false);
+                fieldObservationGeneralElement.getTextLocality().setEnabled(false);
+
+                fieldObservationGeneralElement.getPointField().setEnabled(false);
+                //            fieldObservationGeneralElement.getPointField().getText_latitude().setEnabled(false);
+                fieldObservationGeneralElement.getLblLatitude().setEnabled(false);
+                //            fieldObservationGeneralElement.getPointField().getText_longitude().setEnabled(false);
+                fieldObservationGeneralElement.getLblLongitude().setEnabled(false);
+                //            fieldObservationGeneralElement.getPointField().getNumber_errorRadius().setEnabled(false);
+                fieldObservationGeneralElement.getLblErrorRadiusm().setEnabled(false);
+                //            fieldObservationGeneralElement.getPointField().getCombo_referenceSystem().setEnabled(false);
+                fieldObservationGeneralElement.getLblReferenceSystem().setEnabled(false);
+
+                fieldObservationGeneralElement.getLblAbsoluteElevation().setEnabled(false);
+                fieldObservationGeneralElement.getTextElevation().setEnabled(false);
+                fieldObservationGeneralElement.getLblDate().setEnabled(false);
+
+                fieldObservationGeneralElement.getLblCollector().setEnabled(false);
+                fieldObservationGeneralElement.getCollectorSelectionField().setEnabled(false);
+                fieldObservationGeneralElement.getLblCollectingNumber().setEnabled(false);
+                fieldObservationGeneralElement.getTextCollectingNumber().setEnabled(false);
+            }
+            else{
+                fieldObservationGeneralElement.getLblCollection().setVisible(false);
+                fieldObservationGeneralElement.getCollectionSelectionField().setVisible(false);
+                fieldObservationGeneralElement.getLblAccesionNumber().setVisible(false);
+                fieldObservationGeneralElement.getTextAccessionNumber().setVisible(false);
+            }
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
+     * .lang.Object)
+     */
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource == toggleableText_titleCache) {
+            getEntity().setTitleCache(toggleableText_titleCache.getText(), toggleableText_titleCache.getState());
+        } else if (eventSource == selection_country) {
+            getEntity().setCountry(selection_country.getSelection());
+        } else if (eventSource == languageText_locality) {
+            LanguageString locality = languageText_locality.getLanguageString();
+            getEntity().setLocality(locality);
+        } else if (eventSource == element_point) {
+            getEntity().setExactLocation(element_point.getPoint());
+        } else if (eventSource == number_elevation) {
+            getEntity().setAbsoluteElevation(number_elevation.getInteger());
+        } else if (eventSource == element_date) {
+            getEntity().setGatheringPeriod(element_date.getTimePeriod());
+        } else if (eventSource == selection_collector) {
+            getEntity().setCollector(selection_collector.getSelection());
+        } else if (eventSource == text_collectingNumber) {
+            getEntity().setFieldNumber(text_collectingNumber.getText());
+        } else if (eventSource == selectionCollection) {
+            getEntity().setCollection(selectionCollection.getSelection());
+        } else if (eventSource == textAccessionNumber) {
+            getEntity().setAccessionNumber(textAccessionNumber.getText());
+        }
+        if (eventSource != toggleableText_titleCache) {
+            toggleableText_titleCache.setText(getEntity().getTitleCache());
+        }
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/FieldObservationGeneralSection.java
new file mode 100644 (file)
index 0000000..e9d459b
--- /dev/null
@@ -0,0 +1,57 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 16.08.2013
+ *
+ */
+public class FieldObservationGeneralSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+
+    /**
+     * <p>Constructor for FieldObservationDetailSection.</p>
+     *
+     * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+     * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+     * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
+     * @param style a int.
+     */
+    public FieldObservationGeneralSection(CdmFormFactory formFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement,
+            ISelectionProvider selectionProvider, int style) {
+        super(formFactory, conversation, parentElement, selectionProvider, style);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String getHeading() {
+        return "Field Observation";
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
+     */
+    @Override
+    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+        return formFactory.createFieldObservationGeneralElementController(parentElement);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElement.java
new file mode 100644 (file)
index 0000000..d1d436e
--- /dev/null
@@ -0,0 +1,127 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+/**
+ * @author pplitzner
+ * @date 07.08.2013
+ *
+ */
+public class GatheringEventDetailsElement extends Composite {
+    private FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Text textElevationError;
+    private Text text_ElevationMinimum;
+    private Text text_ElevationMaximum;
+    private Text text_CollectingMethod;
+    private Text text_DistanceToGround;
+    private Text text_DistanceToWaterSurface;
+    private Text text_GatheringEventDescription;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public GatheringEventDetailsElement(Composite parent, int style) {
+        super(parent, style);
+        setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.verticalSpacing = 0;
+            tableWrapLayout.topMargin = 0;
+            tableWrapLayout.rightMargin = 0;
+            tableWrapLayout.leftMargin = 0;
+            tableWrapLayout.horizontalSpacing = 0;
+            tableWrapLayout.bottomMargin = 0;
+            tableWrapLayout.numColumns = 2;
+            setLayout(tableWrapLayout);
+        }
+
+        Label lblElevationError = formToolkit.createLabel(this, "Elevation Error", SWT.NONE);
+
+        textElevationError = formToolkit.createText(this, "New Text", SWT.NONE);
+        textElevationError.setText("");
+        textElevationError.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblElevationMinimumm = formToolkit.createLabel(this, "Elevation Minimum (m)", SWT.NONE);
+
+        text_ElevationMinimum = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_ElevationMinimum.setText("");
+        text_ElevationMinimum.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblElevationMaximumm = formToolkit.createLabel(this, "Elevation Maximum (m)", SWT.NONE);
+
+        text_ElevationMaximum = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_ElevationMaximum.setText("");
+        text_ElevationMaximum.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblCollectingMethod = formToolkit.createLabel(this, "Collecting Method", SWT.NONE);
+
+        text_CollectingMethod = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_CollectingMethod.setText("");
+        text_CollectingMethod.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblDistanceToGround = formToolkit.createLabel(this, "Distance To Ground (m)", SWT.NONE);
+
+        text_DistanceToGround = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_DistanceToGround.setText("");
+        text_DistanceToGround.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblDistanceToWater = formToolkit.createLabel(this, "Distance To Water Surface (m)", SWT.NONE);
+
+        text_DistanceToWaterSurface = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_DistanceToWaterSurface.setText("");
+        text_DistanceToWaterSurface.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblGatheringEventDescription = formToolkit.createLabel(this, "Gathering Event Description", SWT.NONE);
+
+        text_GatheringEventDescription = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_GatheringEventDescription.setText("");
+        text_GatheringEventDescription.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public Text getTextElevationError() {
+        return textElevationError;
+    }
+    public Text getText_ElevationMinimum() {
+        return text_ElevationMinimum;
+    }
+    public Text getText_ElevationMaximum() {
+        return text_ElevationMaximum;
+    }
+    public Text getText_CollectingMethod() {
+        return text_CollectingMethod;
+    }
+    public Text getText_DistanceToGround() {
+        return text_DistanceToGround;
+    }
+    public Text getText_DistanceToWaterSurface() {
+        return text_DistanceToWaterSurface;
+    }
+    public Text getText_GatheringEventDescription() {
+        return text_GatheringEventDescription;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElementController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventDetailsElementController.java
new file mode 100644 (file)
index 0000000..56f1045
--- /dev/null
@@ -0,0 +1,115 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.NumberFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.TextFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectingAreasDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 14.08.2013
+ *
+ */
+public class GatheringEventDetailsElementController extends AbstractCdmDetailElement<DerivedUnitFacade> {
+
+    private GatheringEventDetailsElement gatheringEventDetailsElement;
+
+//    private NumberFieldController number_absoluteElevationError;
+
+//    private NumberFieldController number_absoluteElevationMinimum;
+
+    private NumberFieldController number_absoluteElevationMaximum;
+
+    private TextFieldController text_collectingMethod;
+
+    private NumberFieldController number_distanceToGround;
+
+    private NumberFieldController number_distanceToWaterSurface;
+
+    private TextFieldController text_gatheringEventDescription;
+
+    private CollectingAreasDetailSection section_collectingAreas;
+
+    /**
+     * <p>
+     * Constructor for GatheringEventDetailElement.
+     * </p>
+     *
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param formElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     */
+    public GatheringEventDetailsElementController(GatheringEventDetailsElement gatheringEventDetailsElement, CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+        this.gatheringEventDetailsElement = gatheringEventDetailsElement;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+
+//        number_absoluteElevationError = new NumberFieldController(gatheringEventDetailsElement.getTextElevationError(), formFactory, this, entity.getAbsoluteElevation());
+//        number_absoluteElevationMinimum = new NumberFieldController(gatheringEventDetailsElement.getText_ElevationMinimum(), formFactory, this, entity.getAbsoluteElevationMinimum());
+        number_absoluteElevationMaximum = new NumberFieldController(gatheringEventDetailsElement.getText_ElevationMaximum(), formFactory, this, entity.getAbsoluteElevationMaximum());
+        text_collectingMethod = new TextFieldController(gatheringEventDetailsElement.getText_CollectingMethod(), formFactory, this, entity.getCollectingMethod(), null);
+        number_distanceToGround = new NumberFieldController(gatheringEventDetailsElement.getText_DistanceToGround(), formFactory, this, entity.getDistanceToGround());
+        number_distanceToWaterSurface = new NumberFieldController(gatheringEventDetailsElement.getText_DistanceToWaterSurface(), formFactory, this, entity.getDistanceToWaterSurface());
+        text_gatheringEventDescription = new TextFieldController(gatheringEventDetailsElement.getText_GatheringEventDescription(), formFactory, this, entity.getGatheringEventDescription(), null);
+        section_collectingAreas = formFactory.createCollectingAreasDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
+        section_collectingAreas.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        section_collectingAreas.setEntity(entity);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void handleEvent(Object eventSource) {
+//        if (eventSource == number_absoluteElevationError) {
+//            getEntity().setAbsoluteElevationError(number_absoluteElevationError.getDouble());
+//        }
+//        else if (eventSource == number_absoluteElevationMinimum) {
+//            try {
+//                getEntity().setAbsoluteElevationRange(number_absoluteElevationMinimum.getInteger(), number_absoluteElevationMaximum.getInteger());
+//                number_absoluteElevationMinimum.setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
+//            } catch (IllegalArgumentException e) {
+//                number_absoluteElevationMinimum.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
+//                AbstractUtility.warn(getClass(), e.getLocalizedMessage());
+//            }
+//        }
+//        else if (eventSource == number_absoluteElevationMaximum) {
+//            try {
+//                getEntity().setAbsoluteElevationRange(number_absoluteElevationError.getInteger(), number_absoluteElevationMaximum.getInteger());
+//                number_absoluteElevationMaximum.setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
+//            } catch (IllegalArgumentException e) {
+//                number_absoluteElevationMaximum.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
+//                AbstractUtility.warn(getClass(), e.getLocalizedMessage());
+//            }
+//        } else
+            if (eventSource == text_collectingMethod) {
+            getEntity().setCollectingMethod(text_collectingMethod.getText());
+        } else if (eventSource == number_distanceToGround) {
+            getEntity().setDistanceToGround(number_distanceToGround.getDouble());
+        } else if (eventSource == number_distanceToWaterSurface) {
+            getEntity().setDistanceToWaterSurface(number_distanceToWaterSurface.getDouble());
+        } else if (eventSource == text_gatheringEventDescription) {
+            getEntity().setGatheringEventDescription(text_gatheringEventDescription.getText());
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/fieldObservation/GatheringEventSection.java
new file mode 100644 (file)
index 0000000..d548812
--- /dev/null
@@ -0,0 +1,61 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 21.08.2013
+ *
+ */
+public class GatheringEventSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+
+    /**
+     * <p>Constructor for GatheringEventDetailSection.</p>
+     *
+     * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+     * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+     * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
+     * @param style a int.
+     */
+    public GatheringEventSection(CdmFormFactory formFactory,
+            ConversationHolder conversation, ICdmFormElement parentElement,
+            ISelectionProvider selectionProvider, int style) {
+        super(formFactory, conversation, parentElement, selectionProvider, style);
+    }
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public String getHeading() {
+        return "Gathering Event Details";
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
+     */
+    @Override
+    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+        return formFactory.createGatheringEventDetailsElementController(parentElement);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsElement.java
new file mode 100644 (file)
index 0000000..db4c70d
--- /dev/null
@@ -0,0 +1,105 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.EntitySelectionField;
+
+/**
+ * @author pplitzner
+ * @date 29.08.2013
+ *
+ */
+public class DerivedUnitDetailsElement extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Text textBarcode;
+    private Text textCatalogNumber;
+    private Text txtExsiccatum;
+    private Combo comboPreservationMethod;
+    private EntitySelectionField storedUnderSelectionField;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public DerivedUnitDetailsElement(Composite parent, int style) {
+        super(parent, style);
+        setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.numColumns = 2;
+            setLayout(tableWrapLayout);
+        }
+
+        Label lblBarcode = formToolkit.createLabel(this, "Barcode", SWT.NONE);
+
+        textBarcode = formToolkit.createText(this, "New Text", SWT.NONE);
+        textBarcode.setText("");
+        textBarcode.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblCatalognumber = formToolkit.createLabel(this, "CatalogNumber", SWT.NONE);
+
+        textCatalogNumber = formToolkit.createText(this, "New Text", SWT.NONE);
+        textCatalogNumber.setText("");
+        textCatalogNumber.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblPreservationMethod = formToolkit.createLabel(this, "Preservation Method", SWT.NONE);
+
+        comboPreservationMethod = new Combo(this, SWT.NONE);
+        comboPreservationMethod.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(comboPreservationMethod);
+        formToolkit.paintBordersFor(comboPreservationMethod);
+
+        Label lblStoredUnder = formToolkit.createLabel(this, "Stored Under", SWT.NONE);
+
+        storedUnderSelectionField = new EntitySelectionField(this, SWT.NONE);
+        formToolkit.adapt(storedUnderSelectionField);
+        formToolkit.paintBordersFor(storedUnderSelectionField);
+
+        Label lblExsiccatum = formToolkit.createLabel(this, "Exsiccatum", SWT.NONE);
+
+        txtExsiccatum = formToolkit.createText(this, "New Text", SWT.NONE);
+        txtExsiccatum.setText("");
+        txtExsiccatum.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public Text getTextBarcode() {
+        return textBarcode;
+    }
+    public Text getTextCatalogNumber() {
+        return textCatalogNumber;
+    }
+    public Combo getComboPreservationMethod() {
+        return comboPreservationMethod;
+    }
+    public EntitySelectionField getStoredUnderSelectionField() {
+        return storedUnderSelectionField;
+    }
+    public Text getTxtExsiccatum() {
+        return txtExsiccatum;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsElementController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsElementController.java
new file mode 100644 (file)
index 0000000..22c3439
--- /dev/null
@@ -0,0 +1,110 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen;
+
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.api.facade.MethodNotSupportedByDerivedUnitTypeException;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.EntitySelectionFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.TextFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SourceCollectionDetailSection;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author pplitzner
+ * @date 29.08.2013
+ *
+ */
+public class DerivedUnitDetailsElementController extends AbstractCdmDetailElement<DerivedUnitFacade> {
+
+    private DerivedUnitDetailsElement derivedUnitDetailsElement;
+
+    private TextFieldController barCode;
+    private TextFieldController catalogNumber;
+//    private ComboDefinedTermController<PreservationMethod> preservationMethod;
+    private EntitySelectionFieldController<TaxonNameBase> storedUnder;
+    private TextFieldController exsiccatum;
+
+    private SourceCollectionDetailSection section_source;
+
+
+    public DerivedUnitDetailsElementController(DerivedUnitDetailsElement derivedUnitDetailsElement, CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+        this.derivedUnitDetailsElement = derivedUnitDetailsElement;
+        setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
+        formFactory.addPropertyChangeListener(this);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement, java.lang.Object, int)
+     */
+    @Override
+    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+        barCode = new TextFieldController(derivedUnitDetailsElement.getTextBarcode(), getFormFactory(), formElement, entity.getBarcode(), null);
+        catalogNumber = new TextFieldController(derivedUnitDetailsElement.getTextCatalogNumber(), getFormFactory(), formElement, entity.getCatalogNumber(), null);
+        PreservationMethod entityPreservationMethod;
+        try {
+            entityPreservationMethod = entity.getPreservationMethod();
+        } catch (MethodNotSupportedByDerivedUnitTypeException e) {
+            // we ignore this
+            AbstractUtility.info(e.getMessage());
+            entityPreservationMethod = null;
+        }
+//        preservationMethod = new ComboDefinedTermController<PreservationMethod>(derivedUnitDetailsElement.getComboPreservationMethod(), getFormFactory(), formElement, PreservationMethod.class, entityPreservationMethod, style);
+        storedUnder = new EntitySelectionFieldController<TaxonNameBase>(derivedUnitDetailsElement.getStoredUnderSelectionField(), getFormFactory(), getConversationHolder(), formElement, TaxonNameBase.class, entity.getStoredUnder(), EntitySelectionElement.ALL);
+        String entitiyExsiccatum;
+        try {
+            entitiyExsiccatum = entity.getExsiccatum();
+        } catch (MethodNotSupportedByDerivedUnitTypeException e) {
+            // we ignore this
+            AbstractUtility.info(e.getMessage());
+            entitiyExsiccatum = null;
+        }
+        exsiccatum = new TextFieldController(derivedUnitDetailsElement.getTxtExsiccatum(), getFormFactory(), formElement, entitiyExsiccatum, null);
+
+        section_source = formFactory.createSourceCollectionDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
+        section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        section_source.setEntity(entity);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
+     */
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource == barCode) {
+            getEntity().setBarcode(barCode.getText());
+        } else if (eventSource == catalogNumber) {
+            getEntity().setCatalogNumber(catalogNumber.getText());
+//        } else if (eventSource == preservationMethod) {
+//            try {
+//                getEntity().setPreservationMethod(preservationMethod.getSelection());
+//            } catch (MethodNotSupportedByDerivedUnitTypeException e) {
+//                AbstractUtility.errorDialog("MethodNotSupportedByDerivedUnitTypeException", this, "MethodNotSupportedByDerivedUnitTypeException when trying to set preservation method for derive unit", e);
+//            }
+        } else if (eventSource == storedUnder) {
+            getEntity().setStoredUnder(storedUnder.getEntity());
+        } else if (eventSource == exsiccatum) {
+            try {
+                getEntity().setExsiccatum(exsiccatum.getText());
+            } catch (Exception e) {
+                AbstractUtility.error(this.getClass(), e);
+            }
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/DerivedUnitDetailsSection.java
new file mode 100644 (file)
index 0000000..db2f504
--- /dev/null
@@ -0,0 +1,48 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 29.08.2013
+ *
+ */
+public class DerivedUnitDetailsSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection {
+
+    public DerivedUnitDetailsSection(CdmFormFactory formFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement,
+            ISelectionProvider selectionProvider, int style) {
+        super(formFactory, conversation, parentElement, selectionProvider, style);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String getHeading() {
+        return "Derived Unit Details";
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
+     */
+    @Override
+    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+        return formFactory.createDerivedUnitDetailsElementController(parentElement);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsElement.java
new file mode 100644 (file)
index 0000000..bcd5432
--- /dev/null
@@ -0,0 +1,104 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+/**
+ * @author pplitzner
+ * @date 29.08.2013
+ *
+ */
+public class SpecimenDetailsElement extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Text text_IndividualEcology;
+    private Text text_PlantDesriptionDetails;
+    private Text text_IndividualFieldNotes;
+    private Combo comboLiveStage;
+    private Combo combo_Sex;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public SpecimenDetailsElement(Composite parent, int style) {
+        super(parent, style);
+        setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.numColumns = 2;
+            setLayout(tableWrapLayout);
+        }
+
+        Label lblNewLabel = formToolkit.createLabel(this, "Individual Ecology", SWT.NONE);
+
+        text_IndividualEcology = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_IndividualEcology.setText("");
+        text_IndividualEcology.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblPlantDescriptionDetails = formToolkit.createLabel(this, "Plant Description Details", SWT.NONE);
+
+        text_PlantDesriptionDetails = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_PlantDesriptionDetails.setText("");
+        text_PlantDesriptionDetails.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblIndividualFieldNotes = formToolkit.createLabel(this, "Individual Field Notes", SWT.NONE);
+
+        text_IndividualFieldNotes = formToolkit.createText(this, "New Text", SWT.NONE);
+        text_IndividualFieldNotes.setText("");
+        text_IndividualFieldNotes.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+        Label lblLiveStage = formToolkit.createLabel(this, "Live Stage", SWT.NONE);
+
+        comboLiveStage = new Combo(this, SWT.NONE);
+        comboLiveStage.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(comboLiveStage);
+        formToolkit.paintBordersFor(comboLiveStage);
+
+        Label lblSex = formToolkit.createLabel(this, "Sex", SWT.NONE);
+
+        combo_Sex = new Combo(this, SWT.NONE);
+        combo_Sex.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(combo_Sex);
+        formToolkit.paintBordersFor(combo_Sex);
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public Text getText_IndividualEcology() {
+        return text_IndividualEcology;
+    }
+    public Text getText_PlantDesriptionDetails() {
+        return text_PlantDesriptionDetails;
+    }
+    public Text getText_IndividualFieldNotes() {
+        return text_IndividualFieldNotes;
+    }
+    public Combo getComboLiveStage() {
+        return comboLiveStage;
+    }
+    public Combo getCombo_Sex() {
+        return combo_Sex;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsElementController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsElementController.java
new file mode 100644 (file)
index 0000000..4041487
--- /dev/null
@@ -0,0 +1,75 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.ComboDefinedTermController;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.TextFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 29.08.2013
+ *
+ */
+public class SpecimenDetailsElementController extends AbstractCdmDetailElement<DerivedUnitFacade>  {
+
+    private SpecimenDetailsElement specimenDetailsElement;
+    private TextFieldController individualEcology;
+    private TextFieldController plantDescriptionDetails;
+    private TextFieldController individualFieldNotes;
+    private ComboDefinedTermController<DefinedTerm> liveStage;
+    private ComboDefinedTermController<DefinedTerm> sex;
+
+
+    public SpecimenDetailsElementController(SpecimenDetailsElement specimenDetailsElement, CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+        this.specimenDetailsElement = specimenDetailsElement;
+        setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
+        formFactory.addPropertyChangeListener(this);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement, java.lang.Object, int)
+     */
+    @Override
+    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+        individualEcology = new TextFieldController(specimenDetailsElement.getText_IndividualEcology(), getFormFactory(), formElement, entity.getEcology(), null);
+        plantDescriptionDetails = new TextFieldController(specimenDetailsElement.getText_PlantDesriptionDetails(), getFormFactory(), formElement, entity.getPlantDescription(), null);
+        plantDescriptionDetails = new TextFieldController(specimenDetailsElement.getText_IndividualFieldNotes(), getFormFactory(), formElement, entity.getFieldNotes(), null);
+        liveStage = new ComboDefinedTermController<DefinedTerm>(specimenDetailsElement.getComboLiveStage(), getFormFactory(), formElement, DefinedTerm.class, entity.getLifeStage(), style);
+        sex = new ComboDefinedTermController<DefinedTerm>(specimenDetailsElement.getCombo_Sex(), getFormFactory(), formElement, DefinedTerm.class, entity.getSex(), style);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
+     */
+    @Override
+    public void handleEvent(Object eventSource) {
+        if(eventSource == individualEcology){
+            getEntity().setEcology(individualEcology.getText());
+        }
+        else if(eventSource == plantDescriptionDetails){
+            getEntity().setPlantDescription(plantDescriptionDetails.getText());
+        }
+        else if(eventSource == individualFieldNotes){
+            getEntity().setFieldNotes(individualFieldNotes.getText());
+        }
+        else if(eventSource == liveStage){
+            getEntity().setLifeStage(liveStage.getSelection());
+        }
+        else if(eventSource == sex){
+            getEntity().setSex(sex.getSelection());
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenDetailsSection.java
new file mode 100644 (file)
index 0000000..4854f72
--- /dev/null
@@ -0,0 +1,48 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 29.08.2013
+ *
+ */
+public class SpecimenDetailsSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection {
+
+    public SpecimenDetailsSection(CdmFormFactory formFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement,
+            ISelectionProvider selectionProvider, int style) {
+        super(formFactory, conversation, parentElement, selectionProvider, style);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String getHeading() {
+        return "Specimen Details";
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
+     */
+    @Override
+    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+        return formFactory.createSpecimenDetailsElementController(parentElement);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenGeneralSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/detailViews/specimen/SpecimenGeneralSection.java
new file mode 100644 (file)
index 0000000..e20e819
--- /dev/null
@@ -0,0 +1,48 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 16.08.2013
+ *
+ */
+public class SpecimenGeneralSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+
+    public SpecimenGeneralSection(CdmFormFactory formFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement,
+            ISelectionProvider selectionProvider, int style) {
+        super(formFactory, conversation, parentElement, selectionProvider, style);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String getHeading() {
+        return "Specimen";
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
+     */
+    @Override
+    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+        return formFactory.createSpecimenGeneralElementController(parentElement);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchComposite.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchComposite.java
new file mode 100644 (file)
index 0000000..2eef4f1
--- /dev/null
@@ -0,0 +1,140 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.specimenSearch;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+/**
+ * @author pplitzner
+ * @date 03.09.2013
+ *
+ */
+public class SpecimenSearchComposite extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Text textTaxonName;
+    private Text textCollector;
+    private Text textCollectorNumber;
+    private Text textAccessionNumber;
+    private Text textLocality;
+    private Combo comboHerbarium;
+    private Combo comboCountry;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public SpecimenSearchComposite(Composite parent, int style) {
+        super(parent, style);
+        setBackgroundMode(SWT.INHERIT_DEFAULT);
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            tableWrapLayout.numColumns = 2;
+            setLayout(tableWrapLayout);
+        }
+
+        Label lblTaxonName = formToolkit.createLabel(this, "Taxon Name", SWT.NONE);
+
+        textTaxonName = new Text(this, SWT.BORDER);
+        textTaxonName.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(textTaxonName, true, true);
+
+        Label lblCollectors = new Label(this, SWT.NONE);
+        formToolkit.adapt(lblCollectors, true, true);
+        lblCollectors.setText("Collector(s)");
+
+        textCollector = new Text(this, SWT.BORDER);
+        textCollector.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(textCollector, true, true);
+
+        Label lblCollectorsNumber = new Label(this, SWT.NONE);
+        formToolkit.adapt(lblCollectorsNumber, true, true);
+        lblCollectorsNumber.setText("Collector(s) Number");
+
+        textCollectorNumber = new Text(this, SWT.BORDER);
+        textCollectorNumber.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(textCollectorNumber, true, true);
+
+        Label lblAccessionNumber = new Label(this, SWT.NONE);
+        formToolkit.adapt(lblAccessionNumber, true, true);
+        lblAccessionNumber.setText("Accession Number");
+
+        textAccessionNumber = new Text(this, SWT.BORDER);
+        textAccessionNumber.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(textAccessionNumber, true, true);
+
+        Label lblHerbarium = new Label(this, SWT.NONE);
+        formToolkit.adapt(lblHerbarium, true, true);
+        lblHerbarium.setText("Herbarium");
+
+        comboHerbarium = new Combo(this, SWT.NONE);
+        comboHerbarium.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(comboHerbarium);
+        formToolkit.paintBordersFor(comboHerbarium);
+
+        Label lblCountry = new Label(this, SWT.NONE);
+        formToolkit.adapt(lblCountry, true, true);
+        lblCountry.setText("Country");
+
+        comboCountry = new Combo(this, SWT.NONE);
+        comboCountry.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(comboCountry);
+        formToolkit.paintBordersFor(comboCountry);
+
+        Label lblLocality = new Label(this, SWT.NONE);
+        formToolkit.adapt(lblLocality, true, true);
+        lblLocality.setText("Locality");
+
+        textLocality = new Text(this, SWT.BORDER);
+        textLocality.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+        formToolkit.adapt(textLocality, true, true);
+
+        Label lblCollectionDate = new Label(this, SWT.NONE);
+        formToolkit.adapt(lblCollectionDate, true, true);
+        lblCollectionDate.setText("Collection Date");
+        new Label(this, SWT.NONE);
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+
+    public Text getTextTaxonName() {
+        return textTaxonName;
+    }
+    public Text getTextCollector() {
+        return textCollector;
+    }
+    public Text getTextCollectorNumber() {
+        return textCollectorNumber;
+    }
+    public Text getTextAccessionNumber() {
+        return textAccessionNumber;
+    }
+    public Combo getComboHerbarium() {
+        return comboHerbarium;
+    }
+    public Combo getComboCountry() {
+        return comboCountry;
+    }
+    public Text getTextLocality() {
+        return textLocality;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchController.java
new file mode 100644 (file)
index 0000000..8e57176
--- /dev/null
@@ -0,0 +1,38 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.specimenSearch;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author pplitzner
+ * @date 03.09.2013
+ *
+ */
+public class SpecimenSearchController {
+
+    private SpecimenSearchComposite specimenSearchComposite;
+
+    /**
+     * @param specimenSearchComposite
+     */
+    public SpecimenSearchController(Composite parent) {
+        this.specimenSearchComposite = new SpecimenSearchComposite(parent, SWT.NONE);
+    }
+
+    public Composite getComposite() {
+        return specimenSearchComposite;
+    }
+
+    private void runQuery(){
+
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchResultsComposite.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchResultsComposite.java
new file mode 100644 (file)
index 0000000..ef1bf26
--- /dev/null
@@ -0,0 +1,53 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.specimenSearch;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+/**
+ * @author pplitzner
+ * @date 12.09.2013
+ *
+ */
+public class SpecimenSearchResultsComposite extends Composite {
+    private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+    private Text txtNewText;
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public SpecimenSearchResultsComposite(Composite parent, int style) {
+        super(parent, style);
+        {
+            TableWrapLayout tableWrapLayout = new TableWrapLayout();
+            setLayout(tableWrapLayout);
+        }
+
+        txtNewText = formToolkit.createText(this, "New Text", SWT.NONE);
+        txtNewText.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+    public Text getTxtNewText() {
+        return txtNewText;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchResultsController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/specimenSearch/SpecimenSearchResultsController.java
new file mode 100644 (file)
index 0000000..9c29fbb
--- /dev/null
@@ -0,0 +1,35 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.campanula.specimenSearch;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author pplitzner
+ * @date 12.09.2013
+ *
+ */
+public class SpecimenSearchResultsController {
+
+    private SpecimenSearchResultsComposite specimenSearchResultsComposite;
+
+    public SpecimenSearchResultsController(Composite parent) {
+        this.specimenSearchResultsComposite = new SpecimenSearchResultsComposite(parent, SWT.NONE);
+    }
+
+    public Composite getComposite(){
+        return specimenSearchResultsComposite;
+    }
+
+    public void setText(String text){
+        specimenSearchResultsComposite.getTxtNewText().setText(text);
+    }
+}
index addb64ae527100013ec29a88c48570907063b58f..99c227519e13d0b8b474dd22bc16ad4b3e377276 100644 (file)
@@ -23,14 +23,17 @@ import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.model.common.IDefinedTerm;
+import eu.etaxonomy.cdm.model.common.IEnumTerm;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.cdm.model.reference.ReferenceType;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectable;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
@@ -44,7 +47,7 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
  * @created Mar 16, 2010
  * @version 1.0
  */
-public class EnumComboElement<T extends IDefinedTerm> extends
+public class EnumComboElement<T extends IEnumTerm> extends
                AbstractCdmFormElement implements SelectionListener,
                IEnableableFormElement, ISelectable {
 
@@ -84,7 +87,44 @@ public class EnumComboElement<T extends IDefinedTerm> extends
                                return ReferenceType.class;
                        }
                        
+               },
+               new CdmEnumDataHolder<SpecimenOrObservationType>(){
+
+                       @Override
+                       public String getName() {
+                               return "Specimen / Observation Type";
+                       }
+
+                       @Override
+                       public Collection<SpecimenOrObservationType> getElements() {
+                               return Arrays.asList(SpecimenOrObservationType.values());
+                       }
+
+                       @Override
+                       public Class<SpecimenOrObservationType> getClazz() {
+                               return SpecimenOrObservationType.class;
+                       }
+                       
+               },
+               new CdmEnumDataHolder<OriginalSourceType>(){
+
+                       @Override
+                       public String getName() {
+                               return "Original Source Type";
+                       }
+
+                       @Override
+                       public Collection<OriginalSourceType> getElements() {
+                               return Arrays.asList(OriginalSourceType.values());
+                       }
+
+                       @Override
+                       public Class<OriginalSourceType> getClazz() {
+                               return OriginalSourceType.class;
+                       }
+                       
                }
+               
        };
        
        private static final int DEFAULT_VISIBLE_ITEMS = 10;
@@ -135,8 +175,12 @@ public class EnumComboElement<T extends IDefinedTerm> extends
        private String getDefaultLabelString() {
                if(enumType.equals(ReferenceType.class)){
                        return "Reference Type";
-               }else if (enumType.equals(NomenclaturalCode.class)){
+               } else if (enumType.equals(NomenclaturalCode.class)){
                        return "Nomenclatural Code";
+               } else if(enumType.equals(OriginalSourceType.class)) {
+                       return "Orig. Source Type";
+               } else if(enumType.equals(SpecimenOrObservationType.class)) {
+                       return "Spec./Obs. Type";
                }
                return "No Label";
        }
index c43ac73e0ab1ec0b7118a81bb0bfff538c154c94..663792a260fc2669dcdd70d40c91f6186e46d1f5 100644 (file)
@@ -19,16 +19,18 @@ import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
 
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.store.TermManager;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectable;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
@@ -65,6 +67,56 @@ public class TermComboElement<T extends DefinedTermBase>
 
        private List<T> customPreferredTerms;
 
+       /**
+        * <p>
+        * Constructor for AbstractTermComboElement.
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param style
+        *            a int.
+        * @param formFactory
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param selection
+        *            a T object.
+        * @param visibleItems
+        *            a int.
+        * @param <T>
+        *            a T object.
+        */
+       public TermComboElement(CdmFormFactory formFactory,
+                       ICdmFormElement parentElement, TermType termType, String labelString, T selection,
+                       int style) {
+               super(formFactory, parentElement);
+               
+               this.termClass =  (Class<T>) DefinedTerm.class;
+               
+               if (labelString != null) {
+                       label = formFactory.createLabel(getLayoutComposite(), labelString);
+                       addControl(label);
+               }
+
+               // create combo
+               combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
+               addControl(combo);
+               combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+               combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+
+               populateTerms(filterDefinedTermByTermType(getPreferredTerms(), termType));
+
+               combo.addSelectionListener(this);
+               combo.addDisposeListener(this);
+               PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+
+               if (selection != null) {
+                       setSelection(selection);
+               }
+       }
 
        /**
         * <p>
@@ -392,4 +444,14 @@ public class TermComboElement<T extends DefinedTermBase>
                customPreferredTerms = terms;
                populateTerms(customPreferredTerms);
        }
+       
+       private List<T> filterDefinedTermByTermType(List<T> terms, TermType termType) {
+               List<T> definedTerms = new ArrayList<T>();
+               for(T term : terms){
+                       if(term.getTermType().equals(termType)) {
+                               definedTerms.add(term);
+                       }
+               }               
+               return definedTerms;
+       }
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.java
new file mode 100644 (file)
index 0000000..641193b
--- /dev/null
@@ -0,0 +1,428 @@
+//$Id$
+
+package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+import java.lang.reflect.Field;
+import java.text.Collator;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.IEnumTerm;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+
+/**
+* <p>Abstract AbstractFilteredCdmEnumSelectionDialog class.</p>
+*
+* @author c.mathew
+* @created 18.07.2013
+* @version 1.0
+*/
+public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm> extends
+               FilteredItemsSelectionDialog implements IConversationEnabled {
+
+       private ConversationHolder conversation;
+
+       protected List<T> model;        
+       private String settings;        
+       
+       
+       
+       /**
+        * <p>Constructor for AbstractFilteredCdmResourceSelectionDialog.</p>
+        *
+        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+        * @param conversation 
+        * @param title a {@link java.lang.String} object.
+        * @param multi a boolean.
+        * @param settings a {@link java.lang.String} object.
+        * @param cdmEnum a T object.
+        * @param <T> a T object.
+        */
+       protected AbstractFilteredCdmEnumSelectionDialog(Shell shell, 
+                       ConversationHolder conversation, 
+                       String title, 
+                       boolean multi, 
+                       String settings,
+                       T cdmEnum) {
+               super(shell, multi);
+               setTitle(title);
+               setMessage("Use * for wildcard, or ? to see all entries");
+               this.settings = settings;
+               
+               this.conversation = conversation;
+               
+               init();
+               
+               initModel();
+               
+               String objectTitle = getTitle(cdmEnum);
+               if (objectTitle != null) {
+                       setInitialPattern(objectTitle);
+               }
+               
+               setListLabelProvider(createListLabelProvider());
+               setDetailsLabelProvider(createDetailsLabelProvider());
+               
+               setSelectionHistory(new ResourceSelectionHistory());
+       }
+       
+       /**
+        * By default, we are returning the standard list label provider
+        * 
+        * Override in subclasses if you want different behavior 
+        * 
+        * @return
+        */
+       protected ILabelProvider createDetailsLabelProvider() {
+               return createListLabelProvider();
+       }
+
+       /**
+        * 
+        * @return
+        */
+       protected ILabelProvider createListLabelProvider() {
+               return new FilteredCdmResourceLabelProvider();
+       }
+
+       /**
+        * Override in subclasses.
+        * Will run before initModel()
+        */
+       protected void init() {
+               
+       }
+       
+       /**
+        * <p>getSelectionFromDialog</p>
+        *
+        * @param dialog a {@link eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog} object.
+        * @param <TYPE> a TYPE object.
+        * @return a TYPE object.
+        */
+       protected static <TYPE extends IEnumTerm> TYPE getSelectionFromDialog(AbstractFilteredCdmEnumSelectionDialog<TYPE> dialog) {
+               
+               int result = dialog.open();
+               
+               if (result == Window.CANCEL) {
+                       return null;
+               }
+               
+               return dialog.getSelectedEnumTerm();
+       }
+
+
+       /**
+        * <p>getTitle</p>
+        *
+        * @param cdmObject a T object.
+        * @return a {@link java.lang.String} object.
+        */
+       protected String getTitle(T cdmEnum) {
+               return cdmEnum.getMessage();
+       }
+       
+
+       /** {@inheritDoc} */
+       @Override
+       public void refresh() {
+               initModel();            
+               super.refresh();
+       }
+       
+       /**
+        * <p>initModel</p>
+        */
+       abstract protected void initModel();
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected ItemsFilter createFilter() {
+               return new ItemsFilter() {
+
+                       /**
+                        * Always returns false to enforce refiltering even if the pattern is equal
+                        */
+                       @Override
+                       public boolean equalsFilter(ItemsFilter filter) {
+                               return false;
+                       }
+                       
+                       @Override
+                       public boolean isConsistentItem(Object item) {
+                               return false;
+                       }
+
+                       @Override
+                       public boolean matchItem(Object item) {
+                               String text = null;
+                               if(item instanceof IEnumTerm){
+                                       text = ((IEnumTerm) item).getMessage();
+                               }else if(item instanceof String){
+                                       text = (String) item;
+                               }
+                               return text != null ? matches(text) : false;
+                       }
+                       
+               };
+       }
+       
+
+       /**
+        * Set the filter input to the Agent's title cache
+        *
+        * @param cdmObject a T object.
+        */
+       protected void setPattern(T cdmObject) {
+               // FilteredSelection does some very tricky caching to make sure it 
+               // runs with high performance. 
+               // This works for most use cases, but we want to change the model while the dialog is open
+               // and all the clever caching prevents the content provider from knowing that the model has changed
+               // I am aware, that this is a hack, but the FilteredSelectionDialog API does not offer a convenient 
+               // way to solve the problem.
+               try {
+                       Field lastCompletedFilter = this.getClass().getSuperclass().getSuperclass().getDeclaredField("lastCompletedFilter");
+                       lastCompletedFilter.setAccessible(true);
+                       lastCompletedFilter.set(this, null);
+               } catch (SecurityException e) {
+                       StoreUtil.error(getClass(), e);
+               } catch (NoSuchFieldException e) {
+                       StoreUtil.error(getClass(), e);
+               } catch (IllegalArgumentException e) {
+                       StoreUtil.error(getClass(), e);
+               } catch (IllegalAccessException e) {
+                       StoreUtil.error(getClass(), e);
+               }
+               
+               // this also is not the nicest way to do it. 
+               // I am still amazed, that FilteredSelectionDialog does not offer any methods to change its data
+               // once it was opened. Am I doing it wrong?
+               String pattern = getTitle(cdmObject);
+               ((Text) getPatternControl()).setText(pattern);
+       }
+       
+       /* (non-Javadoc)
+       * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
+       */
+       /** {@inheritDoc} */
+       @Override
+       protected void fillContentProvider(AbstractContentProvider contentProvider,
+               ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
+               throws CoreException {
+               try {
+                       if(model != null){                              
+                               progressMonitor.beginTask("Looking for entities", model.size());
+                               for(T element : model){
+                                       contentProvider.add(element, itemsFilter);
+                                       if (progressMonitor.isCanceled()) {
+                                               throw new OperationCanceledException();
+                                       }
+                                       progressMonitor.worked(1);
+                               }
+                       }else{
+                               StoreUtil.warn(getClass(), "Model for Filtered Selection is null:" + this.getClass().getSimpleName());
+                       }
+               }
+               finally {
+                       progressMonitor.done();
+               }
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getDialogSettings()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected IDialogSettings getDialogSettings() {
+               IDialogSettings settings = TaxeditorStorePlugin.getDefault().getDialogSettings().getSection(getSettings());
+
+               if (settings == null) {
+                       settings = TaxeditorStorePlugin.getDefault().getDialogSettings().addNewSection(getSettings());
+               }
+               return settings;
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getElementName(java.lang.Object)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public String getElementName(Object item) {
+               return ((IEnumTerm) item).getMessage();
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getItemsComparator()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected Comparator getItemsComparator() {
+               return new Comparator<IEnumTerm>() {
+                       public int compare(IEnumTerm entity1,
+                                       IEnumTerm entity2) {
+                               Collator collator = Collator.getInstance();
+                               return collator.compare(entity1.getMessage(), entity2.getMessage());
+                       }
+               };
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#validateItem(java.lang.Object)
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected IStatus validateItem(Object item) {
+               return Status.OK_STATUS;
+       }
+       
+       /**
+        * <p>getSelectedUuidAndTitleCache</p>
+        *
+        * @return a {@link eu.etaxonomy.cdm.model.common.UuidAndTitleCache} object.
+        */
+       protected T getSelectedEnumTerm() {
+               Object[] result = getResult();
+               return result[0] == null ? null : (T) result[0];
+       }
+       
+       /**
+        * <p>Getter for the field <code>settings</code>.</p>
+        *
+        * @return a {@link java.lang.String} object.
+        */
+       public String getSettings()  {
+               if(settings == null){
+                       throw new IllegalStateException("No SETTINGS set.");
+               }
+               return settings;
+       }
+       
+       /**
+        * 
+        * @author n.hoffmann
+        * @created Oct 19, 2009
+        * @version 1.0
+        */
+       private class ResourceSelectionHistory extends SelectionHistory {
+           /*
+           * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#restoreItemFromMemento(org.eclipse.ui.IMemento)
+               */
+               protected Object restoreItemFromMemento(IMemento element) {
+                       return element.getString("resource"); //$NON-NLS-1$
+               }
+               /*
+                * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#storeItemToMemento(java.lang.Object,
+                *      org.eclipse.ui.IMemento)
+                */
+               protected void storeItemToMemento(Object item, IMemento element) {
+                       element.putString("resource", item.toString()); //$NON-NLS-1$
+               }
+       }
+       
+       /**
+        * <p>getNewWizardLinkText</p>
+        *
+        * @return a {@link java.lang.String} object.
+        */
+       protected abstract String getNewWizardLinkText();
+       
+       /**
+        * <p>getNewEntityWizard</p>
+        * @param parameter 
+        * @return a {@link eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard} object.
+        */
+       protected abstract AbstractNewEntityWizard getNewEntityWizard(String parameter);
+       
+       public class FilteredCdmResourceLabelProvider extends LabelProvider {
+               public String getText(Object element) {
+                       if (element == null) {
+                               return null;
+                       }
+                       return ((IEnumTerm) element).getMessage();
+               }                       
+       };
+
+       /* (non-Javadoc)
+       * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea(org.eclipse.swt.widgets.Composite)
+       */
+       /** {@inheritDoc} */
+       @Override
+       protected Control createExtendedContentArea(Composite parent) {
+               if(getNewWizardLinkText() != null){
+                       Link link = new Link(parent, SWT.NONE);
+                       link.setText(getNewWizardLinkText());
+                       link.addSelectionListener(getNewWizardLinkSelectionListener());
+                       return link;
+               }
+               return null;
+       }
+       
+       protected SelectionListener getNewWizardLinkSelectionListener(){
+               return new SelectionAdapter() {
+                       
+                       /* (non-Javadoc)
+                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+                        */
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               
+                               AbstractNewEntityWizard wizard = getNewEntityWizard(e.text);
+                               wizard.init(null, null);
+                               WizardDialog dialog = new WizardDialog(getShell(), wizard);
+                               int status = dialog.open();
+                               
+                               if (status == IStatus.OK) {
+                                       
+                                       T entity = (T) wizard.getEntity();
+
+                                       refresh();
+                                       setPattern(entity);
+                                       getConversationHolder().bind();
+                               }
+                       }
+               };
+       }
+       
+       /**
+        * <p>getConversationHolder</p>
+        *
+        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        */
+       public ConversationHolder getConversationHolder() {
+               return conversation;
+       }
+       
+       /** {@inheritDoc} */
+       public void update(CdmDataChangeMap changeEvents) {}
+
+}
index 95a87cf5211b2cac8862c27141dcf26204e0d64c..d9727902a7c5f96df5b847f9231a47a4d9ae4fbe 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy 
 * http://www.e-taxonomy.eu
-*
+* 
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -66,14 +66,14 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        protected List<UuidAndTitleCache<T>> model;
        private final Set<T> transientCdmObjects = new HashSet<T>();
        private final String settings;
-
+       
        protected T cdmBaseToBeFiltered;
-
+       
        /**
         * <p>Constructor for AbstractFilteredCdmResourceSelectionDialog.</p>
         *
         * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation
+        * @param conversation 
         * @param title a {@link java.lang.String} object.
         * @param multi a boolean.
         * @param settings a {@link java.lang.String} object.
@@ -85,29 +85,29 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                setTitle(title);
                setMessage("Use * for wildcard, or ? to see all entries");
                this.settings = settings;
-
+               
                this.conversation = conversation;
-
+               
                init();
-
+               
                initModel();
-
+               
                String objectTitle = getTitle(cdmObject);
                if (objectTitle != null) {
                        setInitialPattern(objectTitle);
                }
-
+               
                setListLabelProvider(createListLabelProvider());
                setDetailsLabelProvider(createDetailsLabelProvider());
-
+               
                setSelectionHistory(new ResourceSelectionHistory());
        }
-
+       
        /**
         * By default, we are returning the standard list label provider
-        *
-        * Override in subclasses if you want different behavior
-        *
+        * 
+        * Override in subclasses if you want different behavior 
+        * 
         * @return
         */
        protected ILabelProvider createDetailsLabelProvider() {
@@ -115,7 +115,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        }
 
        /**
-        *
+        * 
         * @return
         */
        protected ILabelProvider createListLabelProvider() {
@@ -127,9 +127,9 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
         * Will run before initModel()
         */
        protected void init() {
-
+               
        }
-
+       
        /**
         * <p>getSelectionFromDialog</p>
         *
@@ -140,18 +140,18 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        protected static <TYPE extends CdmBase> TYPE getSelectionFromDialog(AbstractFilteredCdmResourceSelectionDialog<TYPE> dialog) {
                //dialog.setInitialPattern("");
                int result = dialog.open();
-
+               
                if (result == Window.CANCEL) {
                        return null;
                }
-
+               
                UUID uuid = dialog.getSelectedUuidAndTitleCache().getUuid();
                if(uuid == null){
                        return null;
-               }
+               }       
                return dialog.getCdmObjectByUuid(uuid);
        }
-
+       
        /**
         * Check if object was created during the life of this dialog. If not,
         * retrieve it from the CdmStore.
@@ -167,7 +167,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                }
                return getPersistentObject(cdmUuid);
        }
-
+       
        /**
         * <p>getPersistentObject</p>
         *
@@ -204,16 +204,16 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                if(cdmObject == null){
                        return "";
                }
-
+               
                if (cdmObject instanceof IIdentifiableEntity) {
-                       return ((IIdentifiableEntity) cdmObject).getTitleCache();
+                       return ((IIdentifiableEntity) cdmObject).getTitleCache();                       
                }
-
+               
                throw new IllegalArgumentException("Generic method only" +
                                " supports cdmObject of type IIdentifiableEntity." +
                                " Please implement specific method in subclass.");
        }
-
+       
 
        /** {@inheritDoc} */
        @Override
@@ -222,7 +222,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                filterExcludedObjects();
                super.refresh();
        }
-
+       
        /**
         * <p>initModel</p>
         */
@@ -243,7 +243,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                        public boolean equalsFilter(ItemsFilter filter) {
                                return false;
                        }
-
+                       
                        @Override
                        public boolean isConsistentItem(Object item) {
                                return false;
@@ -259,10 +259,10 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                                }
                                return text != null ? matches(text) : false;
                        }
-
+                       
                };
        }
-
+       
 
        /**
         * Set the filter input to the Agent's title cache
@@ -270,11 +270,11 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
         * @param cdmObject a T object.
         */
        protected void setPattern(T cdmObject) {
-               // FilteredSelection does some very tricky caching to make sure it
-               // runs with high performance.
+               // FilteredSelection does some very tricky caching to make sure it 
+               // runs with high performance. 
                // This works for most use cases, but we want to change the model while the dialog is open
                // and all the clever caching prevents the content provider from knowing that the model has changed
-               // I am aware, that this is a hack, but the FilteredSelectionDialog API does not offer a convenient
+               // I am aware, that this is a hack, but the FilteredSelectionDialog API does not offer a convenient 
                // way to solve the problem.
                try {
                        Field lastCompletedFilter = this.getClass().getSuperclass().getSuperclass().getDeclaredField("lastCompletedFilter");
@@ -289,14 +289,14 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                } catch (IllegalAccessException e) {
                        AbstractUtility.error(getClass(), e);
                }
-
-               // this also is not the nicest way to do it.
+               
+               // this also is not the nicest way to do it. 
                // I am still amazed, that FilteredSelectionDialog does not offer any methods to change its data
                // once it was opened. Am I doing it wrong?
                String pattern = getTitle(cdmObject);
                ((Text) getPatternControl()).setText(pattern);
        }
-
+       
        /* (non-Javadoc)
        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
        */
@@ -306,7 +306,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
                throws CoreException {
                try {
-                       if(model != null){
+                       if(model != null){                              
                                progressMonitor.beginTask("Looking for entities", model.size());
                                for(UuidAndTitleCache<T> element : model){
                                        contentProvider.add(element, itemsFilter);
@@ -355,7 +355,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        protected Comparator getItemsComparator() {
                return new Comparator<UuidAndTitleCache>() {
                        @Override
-            public int compare(UuidAndTitleCache entity1,
+                       public int compare(UuidAndTitleCache entity1,
                                        UuidAndTitleCache entity2) {
                                Collator collator = Collator.getInstance();
                                return collator.compare(entity1.getTitleCache(), entity2.getTitleCache());
@@ -371,7 +371,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        protected IStatus validateItem(Object item) {
                return Status.OK_STATUS;
        }
-
+       
        /**
         * <p>getSelectedUuidAndTitleCache</p>
         *
@@ -381,7 +381,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                Object[] result = getResult();
                return result[0] == null ? null : (UuidAndTitleCache) result[0];
        }
-
+       
        /**
         * <p>Getter for the field <code>settings</code>.</p>
         *
@@ -393,9 +393,9 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                }
                return settings;
        }
-
+       
        /**
-        *
+        * 
         * @author n.hoffmann
         * @created Oct 19, 2009
         * @version 1.0
@@ -405,7 +405,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
            * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#restoreItemFromMemento(org.eclipse.ui.IMemento)
                */
                @Override
-        protected Object restoreItemFromMemento(IMemento element) {
+               protected Object restoreItemFromMemento(IMemento element) {
                        return element.getString("resource"); //$NON-NLS-1$
                }
                /*
@@ -413,33 +413,33 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                 *      org.eclipse.ui.IMemento)
                 */
                @Override
-        protected void storeItemToMemento(Object item, IMemento element) {
+               protected void storeItemToMemento(Object item, IMemento element) {
                        element.putString("resource", item.toString()); //$NON-NLS-1$
                }
        }
-
+       
        /**
         * <p>getNewWizardLinkText</p>
         *
         * @return a {@link java.lang.String} object.
         */
        protected abstract String getNewWizardLinkText();
-
+       
        /**
         * <p>getNewEntityWizard</p>
-        * @param parameter
+        * @param parameter 
         * @return a {@link eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard} object.
         */
        protected abstract AbstractNewEntityWizard getNewEntityWizard(String parameter);
-
+       
        public class FilteredCdmResourceLabelProvider extends LabelProvider {
                @Override
-        public String getText(Object element) {
+               public String getText(Object element) {
                        if (element == null) {
                                return null;
                        }
                        return ((UuidAndTitleCache) element).getTitleCache();
-               }
+               }                       
        };
 
        /* (non-Javadoc)
@@ -457,10 +457,10 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                }
                return null;
        }
-
+       
        protected SelectionListener getNewWizardLinkSelectionListener(){
                return new SelectionAdapter() {
-
+                       
                        /* (non-Javadoc)
                         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
                         */
@@ -468,52 +468,53 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                        public void widgetSelected(SelectionEvent e) {
 
                                AbstractNewEntityWizard wizard = getNewEntityWizard(e.text);
-                               wizard.init(null, null);
-                               WizardDialog dialog = new WizardDialog(getShell(), wizard);
-                               int status = dialog.open();
 
-                               if (status == IStatus.OK) {
+                               wizard.init(null, null);
+                               if(wizard.getEntity() != null) {
+                                       WizardDialog dialog = new WizardDialog(getShell(), wizard);
+                                       int status = dialog.open();
 
-                                       T entity = (T) wizard.getEntity();
+                                       if (status == IStatus.OK) {
 
-//                                     addObjectToModel(teamOrPerson);
-                                       refresh();
-                                       setPattern(entity);
-                                       getConversationHolder().bind();
+                                               T entity = (T) wizard.getEntity();
+                                               refresh();
+                                               setPattern(entity);
+                                               getConversationHolder().bind();
+                                       }
                                }
                        }
                };
        }
-
+       
        /**
         * <p>getConversationHolder</p>
         *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         */
        @Override
-    public ConversationHolder getConversationHolder() {
+       public ConversationHolder getConversationHolder() {
                return conversation;
        }
-
+       
        /** {@inheritDoc} */
        @Override
-    public void update(CdmDataChangeMap changeEvents) {}
+       public void update(CdmDataChangeMap changeEvents) {}
 
        /**
-        * Don't want to add for example a taxon or synonym to itself
-        * so filter the list to remove the taxon in question
+        * Don't want to add for example a taxon or synonym to itself 
+        * so filter the list to remove the taxon in question 
         * (<code>cdmBaseToBeFiltered</code>)
         * so it is not available in the filtered list.
         */
        private void filterExcludedObjects() {
                if (model != null && cdmBaseToBeFiltered != null) {
-
+                       
                        UuidAndTitleCache uuidAndTitleCacheToRemove = null;
-
+                                               
                        for (UuidAndTitleCache uuidAndTitleCache : model){
                                if ((cdmBaseToBeFiltered.getUuid()).equals(uuidAndTitleCache.getUuid())) {
                                        uuidAndTitleCacheToRemove = uuidAndTitleCache;
-                               }
+                               }                               
                        }
                        model.remove(uuidAndTitleCacheToRemove);
                }
index b09d6821dded15ea2c9faa1f53559c5070f3e2b5..70976a68be2a88553faf7b9462ee4703b8837934 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.newWizard.NewDerivedUnitBaseWizard;
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @version 1.0
  */
 public class DerivedUnitSelectionDialog extends
-               AbstractFilteredCdmResourceSelectionDialog<DerivedUnitBase> {
+               AbstractFilteredCdmResourceSelectionDialog<DerivedUnit> {
 
        /**
         * <p>select</p>
@@ -42,7 +42,7 @@ public class DerivedUnitSelectionDialog extends
         * @param unit a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
         * @return a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
         */
-       public static DerivedUnitBase select(Shell shell, ConversationHolder conversation, DerivedUnitBase unit){
+       public static DerivedUnit select(Shell shell, ConversationHolder conversation, DerivedUnit unit){
                DerivedUnitSelectionDialog dialog = new DerivedUnitSelectionDialog(shell, conversation,
                                "Choose Unit", false, DerivedUnitSelectionDialog.class.getCanonicalName(), unit);
                return getSelectionFromDialog(dialog);
@@ -59,19 +59,19 @@ public class DerivedUnitSelectionDialog extends
         * @param cdmObject a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
         */
        protected DerivedUnitSelectionDialog(Shell shell, ConversationHolder conversation, String title,
-                       boolean multi, String settings, DerivedUnitBase cdmObject) {
+                       boolean multi, String settings, DerivedUnit cdmObject) {
                super(shell, conversation, title, multi, settings, cdmObject);
        }
        
        /** {@inheritDoc} */
        @Override
-       protected DerivedUnitBase getPersistentObject(UUID uuid) {
+       protected DerivedUnit getPersistentObject(UUID uuid) {
                Object object = CdmStore.getService(IOccurrenceService.class).load(uuid);
                
                SpecimenOrObservationBase specimenObservationBase = (SpecimenOrObservationBase) HibernateProxyHelper.deproxy(object);
                
-               if(specimenObservationBase instanceof DerivedUnitBase){ 
-                       return (DerivedUnitBase) specimenObservationBase; 
+               if(specimenObservationBase instanceof DerivedUnit){     
+                       return (DerivedUnit) specimenObservationBase; 
                }
                StoreUtil.error(this.getClass(), "Selected unit is not a derived unit", null);
                return null;            
@@ -80,7 +80,7 @@ public class DerivedUnitSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(IOccurrenceService.class).getDerivedUnitBaseUuidAndTitleCache();
+               model = CdmStore.getService(IOccurrenceService.class).getDerivedUnitUuidAndTitleCache();
        }
 
        /** {@inheritDoc} */
index acd322f89954ce6f48cb50702e2148353ac653ed..c7bbf281382b34f6aa4e6adc40ce2dbd39cafbb9 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.occurrence.FieldObservation;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.newWizard.NewFieldObservationWizard;
@@ -32,17 +32,17 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @version 1.0
  */
 public class FieldObservationSelectionDialog extends
-               AbstractFilteredCdmResourceSelectionDialog<FieldObservation> {
+               AbstractFilteredCdmResourceSelectionDialog<FieldUnit> {
        
        /**
         * <p>select</p>
         *
         * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
         * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param observation a {@link eu.etaxonomy.cdm.model.occurrence.FieldObservation} object.
-        * @return a {@link eu.etaxonomy.cdm.model.occurrence.FieldObservation} object.
+        * @param observation a {@link eu.etaxonomy.cdm.model.occurrence.FieldUnit} object.
+        * @return a {@link eu.etaxonomy.cdm.model.occurrence.FieldUnit} object.
         */
-       public static FieldObservation select(Shell shell, ConversationHolder conversation, FieldObservation observation){
+       public static FieldUnit select(Shell shell, ConversationHolder conversation, FieldUnit observation){
                FieldObservationSelectionDialog dialog = new FieldObservationSelectionDialog(shell, conversation,
                                "Choose Derived Unit", false, FieldObservationSelectionDialog.class.getCanonicalName(), observation);
                return getSelectionFromDialog(dialog);
@@ -60,7 +60,7 @@ public class FieldObservationSelectionDialog extends
         */
        protected FieldObservationSelectionDialog(Shell shell, ConversationHolder conversation, 
                        String title, boolean multi, String settings,
-                       FieldObservation cdmObject) {
+                       FieldUnit cdmObject) {
                super(shell, conversation, title, multi, settings, cdmObject);
        }
        
@@ -69,13 +69,13 @@ public class FieldObservationSelectionDialog extends
         */
        /** {@inheritDoc} */
        @Override
-       protected FieldObservation getPersistentObject(UUID uuid) {
+       protected FieldUnit getPersistentObject(UUID uuid) {
                Object object = CdmStore.getService(IOccurrenceService.class).load(uuid);
                
                SpecimenOrObservationBase specimenObservationBase = (SpecimenOrObservationBase) HibernateProxyHelper.deproxy(object);
                
-               if(specimenObservationBase instanceof FieldObservation){        
-                       return (FieldObservation) specimenObservationBase; 
+               if(specimenObservationBase instanceof FieldUnit){       
+                       return (FieldUnit) specimenObservationBase; 
                }
                StoreUtil.error(this.getClass(), "Selected object is not a field observation", null);
                return null;
@@ -87,7 +87,7 @@ public class FieldObservationSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = CdmStore.getService(IOccurrenceService.class).getFieldObservationUuidAndTitleCache();
+               model = CdmStore.getService(IOccurrenceService.class).getFieldUnitUuidAndTitleCache();
        }
 
        /** {@inheritDoc} */
index 1cd609d161b3943ca5fcaefd69bdd2a7b0355771..7f4ba7e51fda3649e1a84ca9071efc1e2bef6199 100644 (file)
@@ -19,13 +19,10 @@ import org.springframework.security.core.GrantedAuthority;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;
-import eu.etaxonomy.cdm.api.service.IGroupService;
-import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.newWizard.NewGrantedAuthorityWizard;
-import eu.etaxonomy.taxeditor.newWizard.NewGroupWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
index cf39589ad5b5d0257308742ac2ce10faa265d947..a8d278d3b47e0a7064e137512b7c3e1c9f6bdc34 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -55,21 +55,22 @@ public class NamedAreaSelectionDialog extends
                        super(vocabulary.getTitleCache(), IAction.AS_CHECK_BOX);
                        this.vocabulary = vocabulary;
                }
-               
-               public void run(){
+
+               @Override
+        public void run(){
                        if(isChecked()){
                                selectedVocabularies.add(vocabulary);
                        }else{
                                selectedVocabularies.remove(vocabulary);
                        }
-                       
+
                        initModel();
                }
        }
-       
+
        private Collection<TermVocabulary<NamedArea>> selectedVocabularies;
-       
-       
+
+
        /**
         * Creates a filtered selection dialog to select a named area.
         *
@@ -85,7 +86,7 @@ public class NamedAreaSelectionDialog extends
                                "Choose an area", false, namedArea);
                return getSelectionFromDialog(dialog);
        }
-       
+
        /**
         * <p>Constructor for FilteredNamedAreaSelectionDialog.</p>
         *
@@ -96,22 +97,22 @@ public class NamedAreaSelectionDialog extends
         * @param namedArea a {@link eu.etaxonomy.cdm.model.location.NamedArea} object.
         */
        protected NamedAreaSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, NamedArea namedArea) {
-               super(shell, conversation, title, multi, NamedAreaSelectionDialog.class.getCanonicalName(), namedArea);         
+               super(shell, conversation, title, multi, NamedAreaSelectionDialog.class.getCanonicalName(), namedArea);
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected void fillViewMenu(IMenuManager menuManager) {
-                               
+
                super.fillViewMenu(menuManager);
-                               
+
                for(TermVocabulary<NamedArea> vocabulary : getVocabularies()){
                        IncludeNamedAreaVocabulary action = new IncludeNamedAreaVocabulary(vocabulary);
                        menuManager.add(action);
                        action.setChecked(true);
                }
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected NamedArea getPersistentObject(UUID uuid) {
@@ -125,17 +126,18 @@ public class NamedAreaSelectionDialog extends
                }
                return null;
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected void init() {
                selectedVocabularies = getVocabularies();
        }
-       
+
        private List<TermVocabulary<NamedArea>> getVocabularies(){
                List<TermVocabulary<NamedArea>> vocabularies = CdmStore.getService(IVocabularyService.class).listByTermClass(NamedArea.class, null, null, null, null);
                vocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.TdwgArea));
-               vocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.WaterbodyOrCountry));
+               vocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.Country));
+               vocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.Waterbody));
                vocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.Continent));
                return vocabularies;
        }
@@ -143,19 +145,19 @@ public class NamedAreaSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               
+
                Set<NamedArea> terms = new HashSet<NamedArea>();
                for(TermVocabulary<NamedArea> vocabulary : selectedVocabularies){
                        terms.addAll(vocabulary.getTermsOrderedByLabels(CdmStore.getDefaultLanguage()));
                }
-               
+
                if(model == null){
                        model = new ArrayList<UuidAndTitleCache<NamedArea>>();
                }
                model.clear();
                for(Object areaObject : terms){
                        NamedArea area = (NamedArea) HibernateProxyHelper.deproxy(areaObject);
-                       UuidAndTitleCache<NamedArea> element = new UuidAndTitleCache<NamedArea>(NamedArea.class, area.getUuid(), getTitle(area)); 
+                       UuidAndTitleCache<NamedArea> element = new UuidAndTitleCache<NamedArea>(NamedArea.class, area.getUuid(), getTitle(area));
                        model.add(element);
                }
        }
@@ -165,7 +167,7 @@ public class NamedAreaSelectionDialog extends
        protected Control createExtendedContentArea(Composite parent) {
                return null;
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected String getTitle(NamedArea namedArea) {
@@ -178,7 +180,7 @@ public class NamedAreaSelectionDialog extends
                        return namedArea.getTitleCache();
                }
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/OriginalSourceTypeSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/OriginalSourceTypeSelectionDialog.java
new file mode 100644 (file)
index 0000000..159e3a9
--- /dev/null
@@ -0,0 +1,85 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+
+/**
+ * <p>OriginalSourceTypeSelectionDialog class.</p>
+ *
+ * @author c.mathew
+ * @created 18.07.2013
+ * @version 1.0
+ */
+public class OriginalSourceTypeSelectionDialog extends
+               AbstractFilteredCdmEnumSelectionDialog<OriginalSourceType> {
+
+       /**
+        * <p>select</p>
+        *
+        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        * @return a {@link eu.etaxonomy.cdm.model.common.OriginalSourceType} object.
+        */
+       public static OriginalSourceType select(Shell shell, ConversationHolder conversation){
+               OriginalSourceTypeSelectionDialog dialog = 
+                               new OriginalSourceTypeSelectionDialog(shell, 
+                                               conversation,
+                                               "Choose Original Source Type", 
+                                               false, 
+                                               OriginalSourceTypeSelectionDialog.class.getCanonicalName());
+               return getSelectionFromDialog(dialog);
+       }
+       
+       /**
+        * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
+        *
+        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        * @param title a {@link java.lang.String} object.
+        * @param multi a boolean.
+        * @param settings a {@link java.lang.String} object.
+        */
+       protected OriginalSourceTypeSelectionDialog(Shell shell, 
+                       ConversationHolder conversation, 
+                       String title,
+                       boolean multi, 
+                       String settings) {
+               super(shell, conversation, title, multi, settings, OriginalSourceType.PrimaryTaxonomicSource);
+       }
+
+
+       /** {@inheritDoc} */
+       @Override
+       protected void initModel() {
+               model = new ArrayList<OriginalSourceType>();
+               model.addAll(EnumSet.allOf(OriginalSourceType.class));          
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+               return null;
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       protected String getNewWizardLinkText() {
+               return null;
+       }
+}
index 7417334d9f0788ad37715024858623d5227313a6..d2858ccdd53b93164f672ba8630a6b213044603f 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -17,7 +17,7 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.strategy.cache.reference.ReferenceBaseDefaultCacheStrategy;
+import eu.etaxonomy.cdm.strategy.cache.reference.ReferenceDefaultCacheStrategy;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.newWizard.NewReferenceWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -30,7 +30,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog<Reference> {
-       
+
        /**
         * <p>select</p>
         *
@@ -41,11 +41,11 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
         */
        public static Reference select(Shell shell, ConversationHolder conversation, Reference reference) {
                ReferenceSelectionDialog dialog = new ReferenceSelectionDialog(shell, conversation,
-                               "Choose a reference", false, (Reference) reference);
+                               "Choose a reference", false, reference);
                return getSelectionFromDialog(dialog);
        }
 
-       
+
        /**
         * <p>Constructor for FilteredReferenceSelectionDialog.</p>
         *
@@ -58,7 +58,7 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
        protected ReferenceSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, Reference reference) {
                super(shell, conversation, title, multi, ReferenceSelectionDialog.class.getCanonicalName(), null);
        }
-       
+
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID)
@@ -74,10 +74,10 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
         */
        /** {@inheritDoc} */
        @Override
-       protected void initModel() {            
+       protected void initModel() {
                model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache();
        }
-       
+
 
        /** {@inheritDoc} */
        @Override
@@ -87,10 +87,10 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                }else if(cdmObject.getAuthorTeam() == null){
                        return super.getTitle(cdmObject);
                }else{
-                       return ReferenceBaseDefaultCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorTeam().getTitleCache());
+                       return ReferenceDefaultCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorTeam().getTitleCache());
                }
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
@@ -102,5 +102,5 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
        protected String getNewWizardLinkText() {
                return "Click <A>here</A> to create a new reference.";
        }
-       
+
 }
index cf59a0617e6b5a46c71788e674cacfe371f6f23e..fed776ba3c3ae27491d48029ee64b678d8f55b9b 100644 (file)
@@ -27,8 +27,8 @@ import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
-import eu.etaxonomy.cdm.model.occurrence.FieldObservation;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
@@ -87,11 +87,11 @@ public class SelectionDialogFactory {
                                        "This functionality is not implemented yet.");
                        return null;
                }
-               if(clazz.equals(DerivedUnitBase.class)){
-                       return (T) DerivedUnitSelectionDialog.select(shell, conversation, (DerivedUnitBase) curentSelection);
+               if(clazz.equals(DerivedUnit.class)){
+                       return (T) DerivedUnitSelectionDialog.select(shell, conversation, (DerivedUnit) curentSelection);
                }
-               if(clazz.equals(FieldObservation.class)){
-                       return (T) FieldObservationSelectionDialog.select(shell, conversation, (FieldObservation) curentSelection);
+               if(clazz.equals(FieldUnit.class)){
+                       return (T) FieldObservationSelectionDialog.select(shell, conversation, (FieldUnit) curentSelection);
                }
                if(clazz.equals(NamedArea.class)){
                        return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) curentSelection);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationTypeSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationTypeSelectionDialog.java
new file mode 100644 (file)
index 0000000..145ce16
--- /dev/null
@@ -0,0 +1,77 @@
+//$Id$
+
+package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+
+/**
+* <p>OriginalSourceTypeSelectionDialog class.</p>
+*
+* @author c.mathew
+* @created 18.07.2013
+* @version 1.0
+*/
+public class SpecimenOrObservationTypeSelectionDialog extends
+               AbstractFilteredCdmEnumSelectionDialog<SpecimenOrObservationType> {
+
+       /**
+        * <p>select</p>
+        *
+        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        * @return a {@link eu.etaxonomy.cdm.model.common.OriginalSourceType} object.
+        */
+       public static SpecimenOrObservationType select(Shell shell, ConversationHolder conversation){
+               SpecimenOrObservationTypeSelectionDialog dialog = 
+                               new SpecimenOrObservationTypeSelectionDialog(shell, 
+                                               conversation,
+                                               "Choose Specimen / Observation Type", 
+                                               false, 
+                                               SpecimenOrObservationTypeSelectionDialog.class.getCanonicalName());
+               return getSelectionFromDialog(dialog);
+       }
+       
+       /**
+        * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
+        *
+        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+        * @param title a {@link java.lang.String} object.
+        * @param multi a boolean.
+        * @param settings a {@link java.lang.String} object.
+        */
+       protected SpecimenOrObservationTypeSelectionDialog(Shell shell, 
+                       ConversationHolder conversation, 
+                       String title,
+                       boolean multi, 
+                       String settings) {
+               super(shell, conversation, title, multi, settings, SpecimenOrObservationType.Unknown);
+       }
+
+
+       /** {@inheritDoc} */
+       @Override
+       protected void initModel() {
+               model = new ArrayList<SpecimenOrObservationType>();
+               model.addAll(EnumSet.allOf(SpecimenOrObservationType.class));           
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+               return null;
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       protected String getNewWizardLinkText() {
+               return null;
+       }
+}
index e04928fa8f31ed0575a4354fd6857df368c54c65..825619ba8c52f54fa2a12a4cbfdb2fa9ffac00f8 100644 (file)
@@ -22,6 +22,7 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index 6d71b98a8ec2ebf6df372fe70029f773b650470f..0aeb323c494bb08337cb0cf526e1e8e5138a4e12 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.forms.widgets.Section;
 
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>Abstract AbstractCdmFormElement class.</p>
@@ -63,12 +64,8 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
 //             addControl(layoutComposite);
        }
 
-       /**
-        * <p>Getter for the field <code>formFactory</code>.</p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        */
-       public CdmFormFactory getFormFactory() {
+       @Override
+    public CdmFormFactory getFormFactory() {
                return formFactory;
        }
 
@@ -237,6 +234,7 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
        /** {@inheritDoc} */
        @Override
     public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
+           //TODO: replace propertyChangeListeners with formFactory.getPropertyChangeListeners() and remove member propertyChangeListeners from AbstractCdmFormElement
                Assert.isNotNull(propertyChangeListeners, "Property change listeners are not present");
 
                try{
index 3138191d3ee7a93a45c00c98f394c7b1810fcf00..b95402ed0d0392940b60afa81e7275eb9308a460 100644 (file)
@@ -13,6 +13,8 @@ package eu.etaxonomy.taxeditor.ui.element;
 import java.util.ArrayList;
 import java.util.List;
 
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
 
 
 /**
index cece9928bba24c05f590518a3603b11d2651c766..80392ad976b1cdc22358a670a02cec33aaaf2aaf 100644 (file)
@@ -34,6 +34,7 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>
@@ -49,9 +50,7 @@ import eu.etaxonomy.taxeditor.model.AbstractUtility;
  * @param <T>
  */
 //TODO shouldn't ENTITY be bound with super class ICdmBase for example (AbstractFormSection<ENTITY extends ICdmBase>)?
-public abstract class AbstractFormSection<ENTITY> extends Section implements
-               ISelectionChangedListener, IEntityElement<ENTITY>,
-               IConversationEnabled {
+public abstract class AbstractFormSection<ENTITY> extends Section implements ISelectionChangedListener, IEntityElement<ENTITY>, IConversationEnabled {
 
        private ISelectionProvider selectionProvider;
 
index 3664ed528399e07b6129fe58d2bb505b53a8cd0b..f2e4b1604143c1a4afe0f0ac4f3892b71e67411b 100644 (file)
@@ -12,6 +12,8 @@ import org.eclipse.swt.events.ControlListener;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
 
 /**
  * <p>BrowserElement class.</p>
index 408e0acfea307c29a39237870be66c0eaa3639d0..ee3fed4560c42d41d753b70a0f9b4178114d59af 100644 (file)
@@ -41,36 +41,37 @@ import org.joda.time.Partial;
 import org.springframework.security.core.GrantedAuthority;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Credit;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.common.Extension;
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.common.IDefinedTerm;
+import eu.etaxonomy.cdm.model.common.IEnumTerm;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.common.VersionableEntity;
 import eu.etaxonomy.cdm.model.description.CategoricalData;
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.description.KeyStatement;
-import eu.etaxonomy.cdm.model.description.Modifier;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
-import eu.etaxonomy.cdm.model.description.Scope;
 import eu.etaxonomy.cdm.model.description.StateData;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;
@@ -89,14 +90,32 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
-import eu.etaxonomy.cdm.model.occurrence.Specimen;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.basicFields.NamedAreaFieldController;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationDetailsElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationDetailsElementController;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationDetailsSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationGeneralElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationGeneralElementController;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationGeneralSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.GatheringEventDetailsElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.GatheringEventDetailsElementController;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.GatheringEventSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.DerivedUnitDetailsElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.DerivedUnitDetailsElementController;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.DerivedUnitDetailsSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenDetailsElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenDetailsElementController;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenDetailsSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenGeneralSection;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType;
 import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled;
 import eu.etaxonomy.taxeditor.ui.openurl.OpenUrlSelectorElement;
 import eu.etaxonomy.taxeditor.ui.password.EditPasswordElement;
@@ -397,13 +416,6 @@ public class CdmFormFactory extends FormToolkit {
         }
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public void adapt(Composite composite) {
-        composite.addMouseListener(selectionMouseHandler);
-        super.adapt(composite);
-    }
-
     /**
      * <p>
      * Adapts the {@link AbstractCdmFormElement}:<br>
@@ -428,6 +440,13 @@ public class CdmFormFactory extends FormToolkit {
         super.adapt(control, trackFocus, trackKeyboard);
     }
 
+    /** {@inheritDoc} */
+    @Override
+    public void adapt(Composite composite) {
+        composite.addMouseListener(selectionMouseHandler);
+        super.adapt(composite);
+    }
+
     /**
      * <p>
      * destroyElement
@@ -630,41 +649,15 @@ public class CdmFormFactory extends FormToolkit {
      *         {@link eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement}
      *         object.
      */
-    public NumberWithLabelElement createIntegerTextWithLabelElement(ICdmFormElement parentElement, String labelString,
-            Integer initialInteger, int style) {
-        NumberWithLabelElement element = new NumberWithLabelElement(this, parentElement, labelString, initialInteger,
-                style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createFloatTextWithLabelElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialFloat
-     *            a float.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement}
-     *         object.
-     */
-    public NumberWithLabelElement createFloatTextWithLabelElement(ICdmFormElement parentElement, String labelString,
-            float initialFloat, int style) {
-        NumberWithLabelElement element = new NumberWithLabelElement(this, parentElement, labelString, initialFloat,
-                style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
+       public NumberWithLabelElement createNumberTextWithLabelElement(
+                       ICdmFormElement parentElement, String labelString,
+                       Number initialNumber, int style) {
+               NumberWithLabelElement element = new NumberWithLabelElement(this,
+                               parentElement, labelString, initialNumber, style);
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
 
     /**
      * <p>
@@ -801,6 +794,41 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+       /**
+        * <p>
+        * createTermComboElement
+        * </p>
+        *
+        * @param termComboType
+        *            a
+        *            {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.TermComboType}
+        *            object.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param selection
+        *            a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.combo.TermComboElement}
+        *         object.
+        */
+
+       public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+                       TermType termType,
+                       ICdmFormElement parentElement,
+                       String labelString,
+                       T selection,
+                       int style) {
+               TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, style);
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
     /**
      * <p>
      * createEnumComboElement
@@ -818,8 +846,9 @@ public class CdmFormFactory extends FormToolkit {
      * @return a {@link eu.etaxonomy.taxeditor.ui.term.AbstractEnumComboElement}
      *         object.
      */
-    public <T extends IDefinedTerm> EnumComboElement<T> createEnumComboElement(Class<T> enumComboType,
-            ICdmFormElement parentElement, int style) {
+       public <T extends IEnumTerm> EnumComboElement<T> createEnumComboElement(
+                       Class<T> enumComboType, ICdmFormElement parentElement,
+                       int style) {
         EnumComboElement<T> element = new EnumComboElement<T>(this, parentElement, enumComboType, style);
         adapt(element);
         parentElement.addElement(element);
@@ -1040,6 +1069,40 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+       /**
+        * <p>
+        * createGatheringEventUnitElement
+        * </p>
+        *
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param timePeriod
+        *            a {@link eu.etaxonomy.cdm.model.common.GatheringEvent} object.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement}
+        *         object.
+        */
+       public GatheringEventUnitElement createGatheringEventUnitElement(
+                       ICdmFormElement parentElement,
+                       String labelString,
+                       DerivedUnitFacade gatheringEvent,
+                       MinMaxTextSection.UnitType unitType,
+                       int style) {
+               GatheringEventUnitElement element = new GatheringEventUnitElement(this,
+                               parentElement,
+                               labelString,
+                               gatheringEvent,
+                               unitType,
+                               style);
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
     /**
      * <p>
      * createPointElement
@@ -1081,6 +1144,26 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+       /**
+        * <p>
+        * createDateDetailSection
+        * </p>
+        *
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection}
+        *         object.
+        */
+       public MinMaxTextSection createMinMaxTextSection(ICdmFormElement parentElement, UnitType unitType, int style) {
+               MinMaxTextSection section = new MinMaxTextSection(this, parentElement, unitType, style);
+               parentElement.addElement(section);
+               adapt(section);
+               return section;
+       }
+
     /**
      * <p>
      * createPartialElement
@@ -1164,6 +1247,13 @@ public class CdmFormFactory extends FormToolkit {
         propertyChangeListeners.remove(listener);
     }
 
+    /**
+     * @return the propertyChangeListeners
+     */
+    public List<IPropertyChangeListener> getPropertyChangeListeners() {
+        return propertyChangeListeners;
+    }
+
     /**
      * <p>
      * createHorizontalSeparator
@@ -1539,6 +1629,11 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
+    public GatheringEventDetailSection createGatheringSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GatheringEventDetailSection section = new GatheringEventDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
 
     public NamedAreaDetailSection createNamedAreaDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
         NamedAreaDetailSection section = new NamedAreaDetailSection(this, conversation, parentElement, selectionProvider, style);
@@ -1552,24 +1647,6 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    public GeneralDetailSection createFOSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        GeneralDetailSection section = new GeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
-        addAndAdaptSection(parentElement, section);
-        return section;
-    }
-
-    public GatheringEventDetailSection createGatheringSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        GatheringEventDetailSection section = new GatheringEventDetailSection(this, conversation, parentElement, selectionProvider, style);
-        addAndAdaptSection(parentElement, section);
-        return section;
-    }
-
-    public FieldObservationDetailSection createFODetailsSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        FieldObservationDetailSection section = new FieldObservationDetailSection(this, conversation, parentElement, selectionProvider, style);
-        addAndAdaptSection(parentElement, section);
-        return section;
-    }
-
     private void addAndAdaptSection(ICdmFormElement parentElement, AbstractFormSection<?> section) {
         parentElement.addElement(section);
         adapt(section);
@@ -1758,6 +1835,7 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+
     public GatheringEventDetailElement createGatheringEventDetailElement(ICdmFormElement parentElement) {
         GatheringEventDetailElement element = new GatheringEventDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
@@ -1770,6 +1848,7 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+
     public DerivedUnitBaseDetailElement createDerivedUnitBaseDetailElement(ICdmFormElement parentElement) {
         DerivedUnitBaseDetailElement element = new DerivedUnitBaseDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
@@ -2049,10 +2128,28 @@ public class CdmFormFactory extends FormToolkit {
         } else if (entity instanceof IdentifiableSource) {
             element = new IdentifiableSourceElement(this, parentElement, (IdentifiableSource) entity, removeListener,
                     style);
-        } else if (entity instanceof Scope) {
-            element = new ScopeElement(this, parentElement, (Scope) entity, removeListener, style);
-        } else if (entity instanceof Modifier) {
-            element = new ModifierElement(this, parentElement, (Modifier) entity, removeListener, style);
+               } else if (entity instanceof DefinedTerm) {
+                       switch(((DefinedTerm)entity).getTermType()) {
+                               case Scope:
+                                       element = new ScopeElement(this,
+                                                       parentElement,
+                                                       (DefinedTerm) entity,
+                                                       removeListener,
+                                                       style);
+                                       break;
+                               case Modifier:
+                                       element = new ModifierElement(this,
+                                                       parentElement,
+                                                       (DefinedTerm) entity,
+                                                       removeListener,
+                                                       style);
+                                       break;
+                               default:
+                                       //FIXME : Actually we should through an exception here
+                                       element = null;
+                                       break;
+
+                       }
         } else if (entity instanceof Reference) {
             element = new DescriptionSourceElement(this, parentElement, (Reference) entity, removeListener, style);
         } else if (entity instanceof NameTypeDesignation) {
@@ -2070,14 +2167,28 @@ public class CdmFormFactory extends FormToolkit {
             element = new StatisticalMeasurementValueElement(this, parentElement, (StatisticalMeasurementValue) entity,
                     removeListener, style);
         } else if (entity instanceof DerivedUnit) {
-            element = new DerivedUnitElement(this, parentElement, (DerivedUnit) entity, removeListener, style);
+               switch(((DerivedUnit)entity).getRecordBasis()) {
+                               case LivingSpecimen:
+                               case PreservedSpecimen:
+                               case OtherSpecimen:
+                                       element = new SpecimenCollectionDetailElement(this,
+                                                               parentElement,
+                                                               (DerivedUnit) entity,
+                                                               removeListener,
+                                                               style);
+                                       break;
+                               default:
+                                       element = new DerivedUnitElement(this,
+                                                               parentElement,
+                                                               (DerivedUnit) entity,
+                                                               removeListener,
+                                                               style);
+                       }
+
         } else if (entity instanceof NamedArea) {
             element = new NamedAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
         } else if (entity instanceof DeterminationEvent) {
-            element = new DeterminationEventDetailElement(this, parentElement, (DeterminationEvent) entity,
-                    removeListener, style);
-        } else if (entity instanceof Specimen) {
-            element = new SpecimenCollectionDetailElement(this, parentElement, (Specimen) entity, removeListener, style);
+            element = new DeterminationEventDetailElement(this, parentElement, (DeterminationEvent) entity, removeListener, style);
         } else if (entity instanceof User) {
             element = new MemberDetailElement(this, parentElement, (User) entity, removeListener, style);
         } else if (entity instanceof GrantedAuthority) {
@@ -2104,11 +2215,18 @@ public class CdmFormFactory extends FormToolkit {
 
         else if (backgroundColor != null && !backgroundColor.isDisposed()) {
             element.setPersistentBackground(backgroundColor);
+            adapt(element);
+            parentElement.addElement(element);
         }
 
+        return element;
+    }
+
+    public void createNamedAreaFieldController(AbstractFormSection parentElement, NamedArea namedArea, SelectionListener removeListener){
+//        Object entity = HibernateProxyHelper.deproxy(versionableEntity); TODO deproxy necessary??
+        NamedAreaFieldController element = new NamedAreaFieldController(this, parentElement, namedArea, removeListener, SWT.NONE);
         adapt(element);
         parentElement.addElement(element);
-        return element;
     }
 
     /**
@@ -2264,4 +2382,118 @@ public class CdmFormFactory extends FormToolkit {
         return text;
     }
 
+
+
+    /**
+     * @param conversationHolder
+     * @param parent
+     * @param detailsViewer
+     * @param i
+     * @return
+     */
+    public FieldObservationGeneralSection createFieldObservationGeneralSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        FieldObservationGeneralSection section = new FieldObservationGeneralSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    /**
+     * @param conversationHolder
+     * @param parent
+     * @param detailsViewer
+     * @param i
+     * @return
+     */
+    public GatheringEventSection createGatheringEventSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        GatheringEventSection section = new GatheringEventSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    /**
+     * @param conversationHolder
+     * @param parent
+     * @param detailsViewer
+     * @param i
+     * @return
+     */
+    public FieldObservationDetailsSection createFieldObservationDetailsSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        FieldObservationDetailsSection section = new FieldObservationDetailsSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public SpecimenGeneralSection createSpecimenSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        SpecimenGeneralSection section = new SpecimenGeneralSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public SpecimenDetailsSection createSpecimenDetailsSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        SpecimenDetailsSection section = new SpecimenDetailsSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DerivedUnitDetailsSection createDerivedUnitDetailsSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        DerivedUnitDetailsSection section = new DerivedUnitDetailsSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public FieldObservationGeneralElementController createSpecimenGeneralElementController(ICdmFormElement parentElement){
+        return createFieldObservationGeneralElementController_internal(parentElement, true, false);
+    }
+
+    public SpecimenDetailsElementController createSpecimenDetailsElementController(ICdmFormElement parentElement){
+        SpecimenDetailsElement element = new SpecimenDetailsElement(parentElement.getLayoutComposite(), SWT.NONE);
+        element.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2,1));
+        SpecimenDetailsElementController controller = new SpecimenDetailsElementController(element, this, parentElement);
+        addAndAdaptElement(parentElement, controller);
+        return controller;
+    }
+
+    public DerivedUnitDetailsElementController createDerivedUnitDetailsElementController(ICdmFormElement parentElement){
+        DerivedUnitDetailsElement element = new DerivedUnitDetailsElement(parentElement.getLayoutComposite(), SWT.NONE);
+        element.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2,1));
+        DerivedUnitDetailsElementController controller = new DerivedUnitDetailsElementController(element, this, parentElement);
+        addAndAdaptElement(parentElement, controller);
+        return controller;
+    }
+
+    public FieldObservationGeneralElementController createSpecimenGeneralElementControllerWizard(ICdmFormElement parentElement){
+        return createFieldObservationGeneralElementController_internal(parentElement, true, true);
+    }
+
+    public FieldObservationGeneralElementController createFieldObservationGeneralElementControllerWizard(ICdmFormElement parentElement){
+        return createFieldObservationGeneralElementController_internal(parentElement, false, true);
+    }
+
+    public FieldObservationGeneralElementController createFieldObservationGeneralElementController(ICdmFormElement parentElement){
+        return createFieldObservationGeneralElementController_internal(parentElement, false, false);
+    }
+
+    private FieldObservationGeneralElementController createFieldObservationGeneralElementController_internal(ICdmFormElement parentElement, boolean isSpecimen, boolean isWizard){
+        FieldObservationGeneralElement element = new FieldObservationGeneralElement(parentElement.getLayoutComposite(), SWT.NONE);
+        element.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2,1));
+        FieldObservationGeneralElementController controller = new FieldObservationGeneralElementController(element, this, parentElement, isSpecimen, isWizard);
+        addAndAdaptElement(parentElement, controller);
+        return controller;
+    }
+
+    public GatheringEventDetailsElementController createGatheringEventDetailsElementController(ICdmFormElement parentElement) {
+        GatheringEventDetailsElement element = new GatheringEventDetailsElement(parentElement.getLayoutComposite(), SWT.NONE);
+        element.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2,1));
+        GatheringEventDetailsElementController controller = new GatheringEventDetailsElementController(element, this, parentElement);
+        adapt(controller);
+        parentElement.addElement(controller);
+        return controller;
+    }
+
+    public FieldObservationDetailsElementController createFieldObservationDetailsElementController(ICdmFormElement parentElement) {
+        FieldObservationDetailsElement element = new FieldObservationDetailsElement(parentElement.getLayoutComposite(), SWT.NONE);
+        element.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2,1));
+        FieldObservationDetailsElementController controller = new FieldObservationDetailsElementController(element, this, parentElement);
+        addAndAdaptElement(parentElement, controller);
+        return controller;
+    }
+
 }
index 7863f78fd8731fff63782052d05289decf1df4d2..fdb7b36d4b92e5896829a6c311fa2b3f6467eb81 100644 (file)
@@ -18,6 +18,7 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>CheckboxElement class.</p>
index c54e04d0327bcee02c5d29920230bf9e69747e2c..01dba2a9c5f08f09fc98097eae86910fea91ccd3 100644 (file)
@@ -16,6 +16,8 @@ import org.joda.time.Partial;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.cdm.strategy.parser.TimePeriodParser;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>
@@ -146,7 +148,7 @@ public class DateDetailSection extends AbstractFormSection<TimePeriod> {
                } else if (eventSource == text_parseText) {
                        cursorPosition = ((Text) text_parseText.getMainControl())
                                        .getCaretPosition();
-                       setEntityInternally(TimePeriod.parseString(text_parseText.getText()));
+                       setEntityInternally(TimePeriodParser.parseString(text_parseText.getText()));                    
                } else if (eventSource == text_freeText) {
                        getEntity().setFreeText(text_freeText.getText());
                }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java
new file mode 100644 (file)
index 0000000..7e8e97b
--- /dev/null
@@ -0,0 +1,111 @@
+// $Id$
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.Section;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
+/**
+ * <p>
+ * GatheringEventUnitElement class.
+ * </p>
+ *
+ * @author c.mathew
+ * @created 23 Jul. 2013
+ * @version 1.0
+ */
+public class GatheringEventUnitElement extends AbstractCdmFormElement implements ISelectable {
+
+       private final Label label;
+       private final MinMaxTextSection section_minMaxText;
+
+       /**
+        * <p>
+        * Constructor for TimePeriodElement.
+        * </p>
+        *
+        * @param style
+        *            a int.
+        * @param formFactory
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+        *            object.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param timePeriod
+        *            a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.
+        */
+       public GatheringEventUnitElement(CdmFormFactory formFactory,
+                       ICdmFormElement parentElement,
+                       String labelString,
+                       DerivedUnitFacade gatheringEvent,
+                       MinMaxTextSection.UnitType unitType,
+                       final int style) {
+               super(formFactory, parentElement);
+
+               label = formFactory.createLabel(getLayoutComposite(), labelString);
+               addControl(label);
+
+               section_minMaxText = formFactory.createMinMaxTextSection(this,
+                               unitType,
+                               Section.TWISTIE);
+
+               addControl(section_minMaxText);
+
+               section_minMaxText.setEntity(gatheringEvent);
+
+               formFactory.addPropertyChangeListener(this);
+       }
+
+
+       /** {@inheritDoc} */
+       @Override
+       public void propertyChange(PropertyChangeEvent event) {
+               if (event == null) {
+                       return;
+               }
+               Object eventSource = event.getSource();
+
+               if (getElements().contains(eventSource)) {
+                       handleEvent(eventSource);
+               }
+       }
+
+       private void handleEvent(Object eventSource) {
+               if (eventSource == section_minMaxText) {
+                       firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+               }
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public void setBackground(Color color) {
+               label.setBackground(color);
+               section_minMaxText.setBackground(color);
+       }
+
+       @Override
+       public void setSelected(boolean selected) {
+               setBackground(selected ? SELECTED : getPersistentBackground());
+       }
+
+       public void setLabel(String string) {
+               label.setText(string);
+       }
+}
+
index 60591e40d052a0633204e40ef610a7696e564bc0..f5a2eef889b036dd511eb5e74416f51f2e105824 100644 (file)
@@ -10,6 +10,8 @@
 
 package eu.etaxonomy.taxeditor.ui.element;
 
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
 
 /**
  * Any composite that represent a cdm entity should implement
index 92944ecead1facc71c809249b2e2664c1783b9af..6cd7677b4c1c944e18d32ca260baf149b03f0b8f 100644 (file)
@@ -33,6 +33,7 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
 
 import eu.etaxonomy.cdm.common.UriUtils;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>ImageElement class.</p>
index f6f088ccd0c6fee0e7adfdfb72fbad64913d836b..44aa533d5169602936be9cc0d69f84a4d0169b03 100644 (file)
@@ -13,6 +13,7 @@ package eu.etaxonomy.taxeditor.ui.element;
 import org.eclipse.jface.util.PropertyChangeEvent;
 
 import eu.etaxonomy.cdm.model.description.KeyStatement;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * @author n.hoffmann
index ec76a288cd8171a2914dba23f3e40b6cc1e0e6fe..2fcfbdbed351fcfa8935d3488f318b527df358c6 100644 (file)
@@ -16,6 +16,8 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
 
 /**
  * <p>KeyValueViewerElement class.</p>
index 1405ece32e5b942c09559304a4d409ce29416916..7f8b769e162c9ef40d39177802b6895cbd0d17b3 100644 (file)
@@ -14,6 +14,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>LabelElement class.</p>
index a9f326ccbe293a18da1f2f2b12cc70a5a8785c53..49328ded8e377a32245a42d7ac23f4b041bb4f35 100644 (file)
@@ -14,6 +14,7 @@ import org.eclipse.swt.events.ModifyEvent;
 
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>LanguageStringWithLabelElement class.</p>
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MinMaxTextSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MinMaxTextSection.java
new file mode 100644 (file)
index 0000000..6b9c754
--- /dev/null
@@ -0,0 +1,271 @@
+// $Id$
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.eclipse.jface.util.PropertyChangeEvent;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
+/**
+ * <p>
+ * MinMaxTextSection class.
+ * </p>
+ *
+ * @author c.mathew
+ * @created 23 Jul 2013
+ * @version 1.0
+ */
+public class MinMaxTextSection extends AbstractFormSection<DerivedUnitFacade> {
+
+       private final TextWithLabelElement text_freeText;
+       private final NumberWithLabelElement text_minVal;
+       private final NumberWithLabelElement text_maxVal;
+       private int cursorPosition;
+
+       // unit types handled by this section
+       public enum UnitType {
+               ELEVATION,
+               DIST_TO_GROUND,
+               DIST_TO_WATER
+       }
+
+       private UnitType unitType = UnitType.ELEVATION;
+
+       /**
+        * <p>
+        * Constructor for DateDetailSection.
+        * </p>
+        *
+        * @param formFactory
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+        *            object.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param style
+        *            a int.
+        */
+       protected MinMaxTextSection(CdmFormFactory formFactory,
+                       ICdmFormElement parentElement, UnitType unitType, int style) {
+               super(formFactory, parentElement, style);
+               this.unitType = unitType;
+               getLayoutComposite().setLayout(LayoutConstants.LAYOUT(2, false));
+
+               text_minVal = formFactory.createNumberTextWithLabelElement(this,
+                               "Min : ", getMinimum(), style);
+
+               text_maxVal = formFactory.createNumberTextWithLabelElement(this,
+                               "Max : ", getMaximum(), style);
+
+               text_freeText = formFactory.createTextWithLabelElement(this,
+                               "Freetext : ", getFreetext(), style);
+
+               formFactory.addPropertyChangeListener(this);
+       }
+
+       /**
+        * <p>
+        * Setter for the field <code>timePeriod</code>.
+        * </p>
+        *
+        * @param timePeriod
+        *            a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.
+        */
+       @Override
+       public void setEntity(DerivedUnitFacade gatheringEvent) {
+               super.setEntity(gatheringEvent);
+               updateValues();
+       }
+
+       private void updateValues() {
+               if(getEntity() != null) {
+                       switch(unitType) {
+                       case ELEVATION:
+                               if(getEntity().getAbsoluteElevation() != null) {
+                                       text_minVal.setNumber(getEntity().getAbsoluteElevation());
+                               }
+                               if(getEntity().getAbsoluteElevationMaximum() != null) {
+                                       text_maxVal.setNumber(getEntity().getAbsoluteElevation());
+                               }
+                               if(getEntity().getAbsoluteElevationText() != null) {
+                                       text_freeText.setText(getEntity().getAbsoluteElevationText());
+                               }
+                               break;
+                       case DIST_TO_GROUND:
+                               if(getEntity().getDistanceToGround() != null) {
+                                       text_minVal.setNumber(getEntity().getDistanceToGround());
+                               }
+                               if(getEntity().getDistanceToGroundMax() != null) {
+                                       text_maxVal.setNumber(getEntity().getDistanceToGroundMax());
+                               }
+                               if(getEntity().getDistanceToGroundText() != null) {
+                                       text_freeText.setText(getEntity().getDistanceToGroundText());
+                               }
+                               break;
+                       case DIST_TO_WATER:
+                               if(getEntity().getDistanceToWaterSurface() != null) {
+                                       text_minVal.setNumber(getEntity().getDistanceToWaterSurface());
+                               }
+                               if(getEntity().getDistanceToWaterSurfaceMax() != null) {
+                                       text_maxVal.setNumber(getEntity().getDistanceToWaterSurfaceMax());
+                               }
+                               if(getEntity().getDistanceToWaterSurfaceText() != null) {
+                                       text_freeText.setText(getEntity().getDistanceToWaterSurfaceText());
+                               }
+                               break;
+                       default:
+                               break;
+                       }
+
+               }
+       }
+       /** {@inheritDoc} */
+       @Override
+       public void propertyChange(PropertyChangeEvent event) {
+               if (event == null) {
+                       return;
+               }
+               Object eventSource = event.getSource();
+
+               if (getElements().contains(eventSource)) {
+                       if (event instanceof CdmPropertyChangeEvent) {
+                               if (((CdmPropertyChangeEvent) event).hasException()) {
+                                       handleException((CdmPropertyChangeEvent) event);
+                                       return;
+                               }
+                       }
+                       handleEvent(eventSource);
+               }
+       }
+
+       /**
+        * @param event
+        */
+       private void handleException(CdmPropertyChangeEvent event) {
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this,
+                               event.getException()));
+       }
+
+       private void handleEvent(Object eventSource) {
+               if (eventSource == text_minVal) {
+                       updateMinimum();
+               } else if (eventSource == text_maxVal) {
+                       updateMaximum();
+               } else if (eventSource == text_freeText) {
+                       updateFreetext();
+               }
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+       }
+
+
+
+       /*
+        * (non-Javadoc)
+        *
+        * @see eu.etaxonomy.taxeditor.forms.AbstractFormSection#dispose()
+        */
+       /** {@inheritDoc} */
+       @Override
+       public void dispose() {
+               formFactory.removePropertyChangeListener(this);
+               super.dispose();
+       }
+
+       private void updateMinimum() {
+               switch(unitType) {
+               case ELEVATION:
+                       getEntity().setAbsoluteElevation(text_minVal.getInteger());
+                       break;
+               case DIST_TO_GROUND:
+                       getEntity().setDistanceToGround(text_minVal.getDouble());
+                       break;
+               case DIST_TO_WATER:
+                       getEntity().setDistanceToWaterSurface(text_minVal.getDouble());
+                       break;
+               }
+       }
+
+       private Number getMinimum() {
+               if(getEntity() == null) {
+                       return null;
+               }
+               switch(unitType) {
+               case ELEVATION:
+                       return getEntity().getAbsoluteElevation();
+               case DIST_TO_GROUND:
+                       return getEntity().getDistanceToGround();
+               case DIST_TO_WATER:
+                       return getEntity().getDistanceToWaterSurface();
+               }
+               return null;
+       }
+
+       private void updateMaximum() {
+               switch(unitType) {
+               case ELEVATION:
+                       getEntity().setAbsoluteElevationMax(text_maxVal.getInteger());
+                       break;
+               case DIST_TO_GROUND:
+                       getEntity().setDistanceToGroundMax(text_maxVal.getDouble());
+                       break;
+               case DIST_TO_WATER:
+                       getEntity().setDistanceToWaterSurfaceMax(text_maxVal.getDouble());
+                       break;
+               }
+       }
+
+       private Number getMaximum() {
+               if(getEntity() == null) {
+                       return null;
+               }
+               switch(unitType) {
+               case ELEVATION:
+                       return getEntity().getAbsoluteElevationMaximum();
+               case DIST_TO_GROUND:
+                       return getEntity().getDistanceToGroundMax();
+               case DIST_TO_WATER:
+                       return getEntity().getDistanceToWaterSurfaceMax();
+               }
+               return null;
+       }
+
+       private void updateFreetext() {
+               switch(unitType) {
+               case ELEVATION:
+                       getEntity().setAbsoluteElevationText(text_freeText.getText());
+                       break;
+               case DIST_TO_GROUND:
+                       getEntity().setDistanceToGroundText(text_freeText.getText());
+                       break;
+               case DIST_TO_WATER:
+                       getEntity().setDistanceToWaterSurfaceText(text_freeText.getText());
+                       break;
+               }
+       }
+
+       private String getFreetext() {
+               if(getEntity() == null) {
+                       return null;
+               }
+               switch(unitType) {
+               case ELEVATION:
+                       return getEntity().getAbsoluteElevationText();
+               case DIST_TO_GROUND:
+                       return getEntity().getDistanceToGroundText();
+               case DIST_TO_WATER:
+                       return getEntity().getDistanceToWaterSurfaceText();
+               }
+               return null;
+       }
+
+}
+
index b7ab20c35476cd8b3a141456596b19a3df32c544..2d300601254d5d2ea3d8c23042ba73ffae1c6cfa 100644 (file)
@@ -32,6 +32,7 @@ import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
 
index eab43db6772d2cbfd646e48ef84aa47a030f5540..d441b0b2fe51f9fabbfab3d6d0abad4cc0f09e3c 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -15,6 +15,7 @@ import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 
 /**
@@ -28,7 +29,7 @@ public class NumberWithLabelElement extends TextWithLabelElement {
 
        private Float start;
        private Float end;
-       
+
        private NumberFormatException exception;
 
        /**
@@ -37,50 +38,26 @@ public class NumberWithLabelElement extends TextWithLabelElement {
         * @param toolkit a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param labelString a {@link java.lang.String} object.
-        * @param initialInteger a {@link java.lang.Integer} object.
+        * @param initialNumber a {@link java.lang.Number} object.
         * @param style a int.
         */
        public NumberWithLabelElement(CdmFormFactory toolkit,
                        ICdmFormElement parentElement, String labelString,
-                       Integer initialInteger, int style) {
+                       Number initialNumber, int style) {
                super(toolkit, parentElement, labelString, null, null, style);
-               setInteger(initialInteger);
+               setNumber(initialNumber);
        }
-       
-       /**
-        * <p>Constructor for NumberWithLabelElement.</p>
-        *
-        * @param toolkit a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param labelString a {@link java.lang.String} object.
-        * @param initialFloat a {@link java.lang.Float} object.
-        * @param style a int.
-        */
-       public NumberWithLabelElement(CdmFormFactory toolkit,
-                       ICdmFormElement parentElement, String labelString,
-                       Float initialFloat, int style) {
-               super(toolkit, parentElement, labelString, null, null, style);
-               setFloat(initialFloat);
-       }
-       
-       /**
-        * <p>setInteger</p>
-        *
-        * @param number a {@link java.lang.Integer} object.
-        */
-       public void setInteger(Integer number) {
-               super.setText(getStringRepresentation(number));
-       }
-       
+
+
        /**
-        * <p>setFloat</p>
+        * <p>setNumber</p>
         *
-        * @param number a {@link java.lang.Float} object.
+        * @param number a {@link java.lang.Number} object.
         */
-       public void setFloat(Float number) {
+       public void setNumber(Number number) {
                super.setText(getStringRepresentation(number));
        }
-       
+
        /**
         * <p>getInteger</p>
         *
@@ -90,7 +67,7 @@ public class NumberWithLabelElement extends TextWithLabelElement {
                String text = super.getText().trim();
                return text.equals("") ? 0 : new Integer(text);
        }
-       
+
        /**
         * <p>getFloat</p>
         *
@@ -100,14 +77,24 @@ public class NumberWithLabelElement extends TextWithLabelElement {
                String text = super.getText();
                return new Float(text);
        }
+
+       /**
+        * <p>getDouble</p>
+        *
+        * @return a {@link java.lang.Float} object.
+        */
+       public Double getDouble(){
+               String text = super.getText();
+               return new Double(text);
+       }
        
        private String getStringRepresentation(Object number){
                if(number != null){
                        return number.toString();
-               }               
+               }
                return null;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
         */
@@ -119,27 +106,28 @@ public class NumberWithLabelElement extends TextWithLabelElement {
                        text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
                        return;
                }
-               
+
                try{
-                       
+
                        Float number = Float.parseFloat(value);
-                       
+
                        if((start != null && number < start) || (end != null && number > end)){
                                throw new NumberFormatException("You entered a number that is not within the allowed bounds.");
                        }
-                       
+
                }catch(NumberFormatException e){
                        text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
                        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+                       exception = e;
                        return;
                }
-               
+
                exception = null;
                text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
-               
+
                super.modifyText(event);
        }
-       
+
        /**
         * <p>setLimits</p>
         *
@@ -150,7 +138,7 @@ public class NumberWithLabelElement extends TextWithLabelElement {
        public void setLimits(int numberOfDigits, Integer start, Integer end){
                setLimits(numberOfDigits, start.floatValue(), end.floatValue());
        }
-       
+
        /**
         * <p>setLimits</p>
         *
@@ -163,7 +151,7 @@ public class NumberWithLabelElement extends TextWithLabelElement {
                this.start = start;
                this.end = end;
        }
-       
+
        /**
         * <p>Getter for the field <code>exception</code>.</p>
         *
index efcc8541c23fb5fdeaf708a8d7436a868decba81..852018d0a104146c1252e7cb147c5c14537f85b9 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.swt.widgets.Label;
 import org.joda.time.Partial;
 
 import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>PartialElement class.</p>
@@ -49,13 +50,13 @@ public class PartialElement extends AbstractCdmFormElement implements ISelectabl
                label = formFactory.createLabel(getLayoutComposite(), labelString);
                addControl(label);
                
-               number_year = formFactory.createIntegerTextWithLabelElement(this, "Year", null, style);
+               number_year = formFactory.createNumberTextWithLabelElement(this, "Year", null, style);
                number_year.setLimits(4, -9999, 9999);
                
-               number_month = formFactory.createIntegerTextWithLabelElement(this, "Month", null, style);               
+               number_month = formFactory.createNumberTextWithLabelElement(this, "Month", null, style);                
                number_month.setLimits(2, 1, 12);
                
-               number_day = formFactory.createIntegerTextWithLabelElement(this, "Day", null, style);
+               number_day = formFactory.createNumberTextWithLabelElement(this, "Day", null, style);
                number_day.setLimits(2, 1, 31);
                
                
@@ -71,9 +72,9 @@ public class PartialElement extends AbstractCdmFormElement implements ISelectabl
                this.partial = partial;
                
                if(partial != null){
-                       number_day.setInteger(TimePeriod.getPartialValue(partial, TimePeriod.DAY_TYPE));
-                       number_month.setInteger(TimePeriod.getPartialValue(partial, TimePeriod.MONTH_TYPE));
-                       number_year.setInteger(TimePeriod.getPartialValue(partial, TimePeriod.YEAR_TYPE));
+                       number_day.setNumber(TimePeriod.getPartialValue(partial, TimePeriod.DAY_TYPE));
+                       number_month.setNumber(TimePeriod.getPartialValue(partial, TimePeriod.MONTH_TYPE));
+                       number_year.setNumber(TimePeriod.getPartialValue(partial, TimePeriod.YEAR_TYPE));
                }
        }
 
index 6ed881b074fd789475e4bb170731b730c09d7d66..9dd0a9c67327ee4d396a95f5ad680b32d13cea3d 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.jface.util.PropertyChangeEvent;
 import eu.etaxonomy.cdm.model.location.Point;
 import eu.etaxonomy.cdm.model.location.ReferenceSystem;
 import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 
 /**
@@ -74,7 +75,7 @@ public class PointElement extends AbstractCdmFormElement implements
                text_longitudeParsed = formFactory.createTextWithLabelElement(
                                formElement, "", null, style);
                text_longitudeParsed.setEnabled(false);
-               number_errorRadius = formFactory.createIntegerTextWithLabelElement(
+               number_errorRadius = formFactory.createNumberTextWithLabelElement(
                                formElement, "Error Radius (m)", null, style);
                combo_referenceSystem = formFactory
                                .createTermComboElement(ReferenceSystem.class,
@@ -179,7 +180,7 @@ public class PointElement extends AbstractCdmFormElement implements
                        text_latitudeParsed.setText(latitude);
                        text_longitude.setText(longitude);
                        text_longitudeParsed.setText(longitude);
-                       number_errorRadius.setInteger(point.getErrorRadius());
+                       number_errorRadius.setNumber(point.getErrorRadius());
                        combo_referenceSystem.setSelection(point.getReferenceSystem());
                }
        }
index 9ac347446a917822c1a85b7b5af3dae912ce522e..c7c8d11431aa6861016cb78032d1d8b69f77f084 100644 (file)
@@ -13,6 +13,8 @@ package eu.etaxonomy.taxeditor.ui.element;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
 
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
 
 /**
  * <p>RootElement class.</p>
index 3c2c784ee1d19becd11dd9717bc0b453766d26ba..8644a166f673f403c26ecf3893928ae3dcb78a6c 100644 (file)
@@ -26,6 +26,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Widget;
 
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 
 /**
index aadf8713ecf7f9d39922b558d6a607dc58415376..d2d84cc0e959f803cf878282bf14ec5b81aa0e4e 100644 (file)
@@ -14,6 +14,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>TextActionElement class.</p>
index 878788b3150d8c646ecffa2e7c863a67ca8a81c6..11bd12de6650ea47a89398bf1bf426134f9e99b3 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>
index 9f9cc50713bb826c4e68537cbf759c1e699fe08f..f27d5911295e48c8c53add956e526b3e03eadbe7 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.widgets.Section;
 
 import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * <p>
index e49ca357c33770df95031bc1371da1dcfbaf548d..5054fa74918693da3685935ad30e239d8a879a39 100644 (file)
@@ -28,6 +28,7 @@ import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 
 /**
  * When the button is pressed, this textfield may be edited.
index f4307ea87a4572da4b8f8f6e1df83c973e184556..47e9b91351f6d3db4011eb9fe7b916cee0984041 100644 (file)
@@ -13,6 +13,8 @@ package eu.etaxonomy.taxeditor.ui.element;
 import java.net.URI;
 import java.net.URISyntaxException;
 
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+
 
 /**
  * @author n.hoffmann
index c508919a6e1c2b12486f70706dca101a986644db..b9056d46dd3807d3aac0734aa08c78561d2b4825 100644 (file)
@@ -20,9 +20,9 @@ import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 
 /**
index 2f91f4a5b91cb186f8988cb1c27d43e8820a67c8..b3a720b6aab187e5c823e133c6cf85bac2c2ac16 100644 (file)
@@ -21,9 +21,9 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 
 /**
index 1fa087abd51780e4163f5811e81201e4dc137635..1cb65f1115f2a241b7d14fe5daa02b979aa9929b 100644 (file)
@@ -21,9 +21,9 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
index 4704d2b24f15e6283effeb2466a3e75cee169197..751f2f2c49dcd1edd8e2930966162037bb34e6b2 100644 (file)
@@ -22,12 +22,11 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 
 /**
  * <p>
@@ -38,7 +37,7 @@ import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
  * @created Feb 26, 2010
  * @version 1.0
  */
-public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement implements IEntityElement<T>, IEnableableFormElement, IConversationEnabled {
+public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement implements ICdmDetailElement<T> {
 
        private T entity;
 
index ee222adad8914b47c7c1daafd4e324e88cfd723b..3d7efb919918129c259d8ffff6fd97bfecd453ec 100644 (file)
@@ -22,9 +22,9 @@ import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 
@@ -39,7 +39,7 @@ import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
  */
 public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSection<ENTITY> implements IEnableableFormElement, IExpansionListener {
 
-       private AbstractCdmDetailElement<ENTITY> detailElement;
+       protected ICdmDetailElement<ENTITY> detailElement;
 
        /**
         * <p>
@@ -123,9 +123,9 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
            createControlsByType(formElement, null, style);
        }
 
-       protected abstract AbstractCdmDetailElement<ENTITY> createCdmDetailElement(AbstractCdmDetailSection<ENTITY> parentElement, int style);
+       protected abstract ICdmDetailElement<ENTITY> createCdmDetailElement(AbstractCdmDetailSection<ENTITY> parentElement, int style);
 
-       protected AbstractCdmDetailElement<ENTITY> createCdmDetailElementByType(AbstractCdmDetailSection<ENTITY> parentElement, Class<ENTITY> entityClass, int style){
+       protected ICdmDetailElement<ENTITY> createCdmDetailElementByType(AbstractCdmDetailSection<ENTITY> parentElement, Class<ENTITY> entityClass, int style){
            return createCdmDetailElement(parentElement, style);
        }
 
index ca1353b2c53d0de4301743261bc778221977301e..b6e1a416bfc039c687e6b8b9b193bdddf87efd71 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -24,10 +24,10 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectable;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
@@ -36,7 +36,7 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
  * <p>
  * Abstract AbstractEntityCollectionElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Nov 16, 2009
  * @version 1.0
@@ -47,9 +47,9 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
 
        protected ENTITY entity;
 
-       private Composite container;
+       private final Composite container;
 
-       private Composite box;
+       private final Composite box;
 
        private Button button_remove;
 
@@ -59,7 +59,7 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         * <p>
         * Constructor for AbstractEntityCollectionElement.
         * </p>
-        * 
+        *
         * @param style
         *            a int.
         * @param formFactory
@@ -129,7 +129,7 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
 
        /**
         * Init gets executed before any other setup of the section takes place
-        * 
+        *
         * Implement this if you want to configure the section
         */
        public void init() {
@@ -140,7 +140,7 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         * <p>
         * Setter for the field <code>entity</code>.
         * </p>
-        * 
+        *
         * @param entity
         *            a ENTITY object.
         */
@@ -150,10 +150,11 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         * <p>
         * Getter for the field <code>entity</code>.
         * </p>
-        * 
+        *
         * @return a ENTITY object.
         */
-       public ENTITY getEntity() {
+       @Override
+    public ENTITY getEntity() {
                return entity;
        }
 
@@ -161,7 +162,7 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         * <p>
         * createControls
         * </p>
-        * 
+        *
         * @param element
         *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
         *            object.
@@ -173,7 +174,8 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
        /**
         * Mark <code>this</code> element as selected.
         */
-       public void setSelected(boolean selected) {
+       @Override
+    public void setSelected(boolean selected) {
 
                for (ICdmFormElement element : getElements()) {
                        if (element instanceof ISelectable) {
@@ -185,7 +187,7 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org
         * .eclipse.jface.util.PropertyChangeEvent)
@@ -206,14 +208,15 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         * <p>
         * handleEvent
         * </p>
-        * 
+        *
         * @param eventSource
         *            a {@link java.lang.Object} object.
         */
        public abstract void handleEvent(Object eventSource);
 
        /** {@inheritDoc} */
-       public void setBackground(Color color) {
+       @Override
+    public void setBackground(Color color) {
                backgroundColor = color;
                super.setBackground(color);
                box.setBackground(color);
@@ -222,15 +225,17 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
 
        /**
         * {@inheritDoc}
-        * 
+        *
         * React when selection occurs
         */
-       public void widgetSelected(SelectionEvent e) {
+       @Override
+    public void widgetSelected(SelectionEvent e) {
 
        }
 
        /** {@inheritDoc} */
-       public void widgetDefaultSelected(SelectionEvent e) {
+       @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
        }
 
        /** {@inheritDoc} */
@@ -243,7 +248,7 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         * <p>
         * Getter for the field <code>backgroundColor</code>.
         * </p>
-        * 
+        *
         * @return the backgroundColor
         */
        public Color getBackgroundColor() {
@@ -254,11 +259,12 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         * <p>
         * getConversationHolder
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *         object.
         */
-       public ConversationHolder getConversationHolder() {
+       @Override
+    public ConversationHolder getConversationHolder() {
                if (getParentElement() instanceof IConversationEnabled) {
                        return ((IConversationEnabled) getParentElement())
                                        .getConversationHolder();
@@ -268,6 +274,7 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
        }
 
        /** {@inheritDoc} */
-       public void update(CdmDataChangeMap changeEvents) {
+       @Override
+    public void update(CdmDataChangeMap changeEvents) {
        }
 }
index ecc7c9107e8a6ed102df8893b5465e78a04a5525..ac94a5a830b07ce1861ffa76a2e4998efe2edcb3 100644 (file)
@@ -29,9 +29,9 @@ import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * This class visualizes an CDM entity of type ENTITY and additionally provides the functionality to add
@@ -279,6 +279,16 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
                return PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOULD_EXPAND_SECTION_WHEN_DATA_AVAILABLE);
        }
 
+       /**
+        * Remove an element from the entities collection and update the section
+        *
+        * @param element a ELEMENT object.
+        */
+       public void removeElementAndUpdate(ELEMENT element) {
+               removeElement(element);
+               internalUpdateSection(true);
+       }
+
        /**
         * Get the specific collection of this entity
         *
index e29b656068f4dfa836fdf526b3c4ae2244f4a72d..544bc6ea37b0a187bb1c769c6cbb573c05e57d78 100644 (file)
@@ -6,8 +6,8 @@ package eu.etaxonomy.taxeditor.ui.section;
 import java.util.Arrays;
 
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 
 /**
index e06c2bc570a5a0751ceac1ad28ed20aeafe45e99..5cb1ecad3b3bf1252456638cf309fdaf53a4620c 100644 (file)
@@ -14,9 +14,9 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.model.common.VersionableEntity;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * <p>EmptyElement class.</p>
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ICdmDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ICdmDetailElement.java
new file mode 100644 (file)
index 0000000..20110e3
--- /dev/null
@@ -0,0 +1,25 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
+
+/**
+ * @author pplitzner
+ * @date 30.07.2013
+ *
+ */
+public interface ICdmDetailElement<T> extends IEntityElement<T>, IEnableableFormElement, IConversationEnabled{
+
+    public abstract void setEntity(T entity);
+
+}
index 22dd6221148381d0a1e8c43f202a598f9e9d8dc7..433c53ee74ba6f2eee032732a1b17ccb2f3cd289 100644 (file)
@@ -11,8 +11,8 @@
 package eu.etaxonomy.taxeditor.ui.section.agent;
 
 import eu.etaxonomy.cdm.model.agent.Institution;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index 11e4a2d99af794295747a17584dc4f846b11d83e..1aebcdbb1f77214326f733dedbd431dbaee84b11 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Institution;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 5f4933cba4ef5653106741682ffa7cff0b7fa144..9e9dca42ad9e1966021b090d85e6cc9931d3256d 100644 (file)
@@ -12,9 +12,9 @@ package eu.etaxonomy.taxeditor.ui.section.agent;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Institution;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index 5199df5fce2e6f8abe1e0cf8fd48cbc11457ec8c..2107981584ec109f21ec210e634a4a9abc44e638 100644 (file)
@@ -16,9 +16,9 @@ import java.util.Collection;
 import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 
index 7821e7a022f15efce0702bd700fceb240d782704..0337478c08489f715db41c28f1b6ea9aea23fcb2 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 51ab6ad03799fdf66dd1a567339f3e14664e2b5f..6979936a77eb83ea6ca53176c6f149364b3fa070 100644 (file)
@@ -14,9 +14,9 @@ import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index f338bc217ba0e62edc1a965b76c18327e838c651..a56cee9b9697268ff956eee06825fa49a4d53159 100644 (file)
@@ -15,9 +15,9 @@ import java.util.Arrays;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
index bacd6b548cd6c0302b89f23d542d7cb7710aab4b..f8b96bf4b258ee3ae397083bd0891f39fad60c97 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 103870d0e2bd364a6f444b2ded17adb72c6b8550..a14bd862eb7a6f6624f6b4e985f9ec27cd0c0970 100644 (file)
@@ -14,10 +14,10 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index 5cc7743d878c0fefde03b0edff0217f862edf124..2b4e51eeee8434172e8a09fc4ac2972e5fec45c9 100644 (file)
@@ -15,8 +15,8 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 578d220b26eb28124b25f57d5de3464f09d6daec..73cd503df1ffa59df47d4aca033cf5250376054a 100644 (file)
@@ -17,8 +17,8 @@ import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 9016f92c6e2a4a41dba32c84e313d2fd2e35ac00..8097bfc966e808d92518a0a83977267ece0a53c0 100644 (file)
@@ -14,9 +14,9 @@ import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index b13cc94fcd5156c752b72a971458c50a7b47482f..1f5a0a1b6b9c0ba875f3570150bb04415ae9483b 100644 (file)
@@ -16,8 +16,8 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index 83eb7ee1543bc44d79ab2e0a10cba1e9e8f25091..32fa82b688189d72c43dd29656803dc5ae59acec 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 292916ba5399d68ef0a64cf66229bf2044bff306..c383b99cce76c807dae5e970fbac366a71223472 100644 (file)
@@ -12,9 +12,9 @@ package eu.etaxonomy.taxeditor.ui.section.classification;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * <p>
index 510aef97529ce5a737fa694bd127dfd5ed578505..a7a8261a097d306b630599e9bce40dc0d58c7c4b 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -15,13 +15,13 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.parser.ParseHandler;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
@@ -31,12 +31,12 @@ import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
  * <p>
  * TaxonNodeDetailElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Sep 27, 2010
  * @version 1.0
  */
-public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode> {
+public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITaxonTreeNode> {
 
        private EntitySelectionElement<Classification> selection_classification;
 
@@ -44,7 +44,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
 
        private TaxonNodeSelectionElement selection_parentTaxonNode;
 
-       private ITreeNode parentTreeNode;
+       private ITaxonTreeNode parentTreeNode;
 
        private EntitySelectionElement<Taxon> selection_reuseExistingTaxon;
 
@@ -64,7 +64,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
         * <p>
         * Constructor for TaxonNodeDetailElement.
         * </p>
-        * 
+        *
         * @param formFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -79,7 +79,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
         * (eu.etaxonomy.taxeditor.forms.ICdmFormElement,
@@ -88,7 +88,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
        /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
-                       ITreeNode entity, int style) {
+               ITaxonTreeNode entity, int style) {
                selection_classification = formFactory
                                .createSelectionElement(Classification.class,
                                                getConversationHolder(), formElement, "Classification",
@@ -119,7 +119,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
         * .lang.Object)
@@ -158,7 +158,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
         * <p>
         * Getter for the field <code>classification</code>.
         * </p>
-        * 
+        *
         * @return the classification
         */
        public Classification getClassification() {
@@ -169,7 +169,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
         * <p>
         * isOpenInEditor
         * </p>
-        * 
+        *
         * @return the openInEditor
         */
        public boolean isOpenInEditor() {
@@ -180,10 +180,10 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
         * <p>
         * Getter for the field <code>parentTreeNode</code>.
         * </p>
-        * 
-        * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
+        *
+        * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
         */
-       public ITreeNode getParentTreeNode() {
+       public ITaxonTreeNode getParentTreeNode() {
                return parentTreeNode;
        }
 
@@ -191,7 +191,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
         * <p>
         * Getter for the field <code>taxon</code>.
         * </p>
-        * 
+        *
         * @return the taxon
         */
        public Taxon getTaxon() {
@@ -211,7 +211,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
         * @param parentTreeNode
         *            the parentTreeNode to set
         */
-       private void setParentTreeNode(ITreeNode parentTreeNode) {
+       private void setParentTreeNode(ITaxonTreeNode parentTreeNode) {
                this.parentTreeNode = parentTreeNode;
 
                if (parentTreeNode instanceof Classification) {
@@ -226,7 +226,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
                        selection_parentTaxonNode.setEntity((TaxonNode) parentTreeNode);
                        selection_parentTaxonNode.setClassification(classification);
                } else if(parentTreeNode == null){
-                       this.parentTreeNode = selection_classification.getEntity();                     
+                       this.parentTreeNode = selection_classification.getEntity();
                }
        }
 
@@ -270,7 +270,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<ITreeNode>
         * <p>
         * isComplete
         * </p>
-        * 
+        *
         * @return the complete
         */
        public boolean isComplete() {
index 0508372da8f9116d5969f55247edc163ecfced5b..4693709efb330a643d39d385ff9fffc5ffe61743 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 4f261d545aa00361064feb154708d8f54072bfac..54e48f30a07522ded244fa7e8f9d068e112a2afb 100644 (file)
@@ -13,11 +13,11 @@ package eu.etaxonomy.taxeditor.ui.section.classification;
 import org.eclipse.jface.util.PropertyChangeEvent;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * <p>
@@ -28,7 +28,7 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
  * @created Sep 15, 2009
  * @version 1.0
  */
-public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITreeNode> {
+public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITaxonTreeNode> {
 
        /**
         * <p>
@@ -42,10 +42,10 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITreeNode>
         *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *            object.
         * @param entity
-        *            a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
+        *            a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
         */
        public TaxonNodeWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ITreeNode entity) {
+                       ConversationHolder conversation, ITaxonTreeNode entity) {
                super(formFactory, conversation, entity);
                setTitle("Create a new Taxon");
        }
@@ -116,9 +116,9 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITreeNode>
         * Getter for the field <code>parentTreeNode</code>.
         * </p>
         *
-        * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
+        * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
         */
-       public ITreeNode getParentTreeNode() {
+       public ITaxonTreeNode getParentTreeNode() {
                return ((TaxonNodeDetailElement) getDetailElement())
                                .getParentTreeNode();
        }
index 8649289c443af64cd13d361536f0f9eb7a0fb2ba..b4fb2a30c1587a53ed564f4843a964a01d906e38 100644 (file)
@@ -11,8 +11,8 @@ package eu.etaxonomy.taxeditor.ui.section.common;
 
 import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index d9825324dff6423943b6b543588cd228aefa1152..e138c2b19e9d205d20f71c7b0238855cf5173a71 100644 (file)
@@ -13,8 +13,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index f05ea9dd512d9e48dd9fa0e0aecb402896f5828f..c038a1862969c119d70fc518aa0bdc764b1e836b 100644 (file)
@@ -12,11 +12,11 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 public class DerivedUnitElement extends
                AbstractEntityCollectionElement<SpecimenOrObservationBase> {
 
-       private EntitySelectionElement<DerivedUnitBase> selection_derivedUnit;
+       private EntitySelectionElement<DerivedUnit> selection_derivedUnit;
 
        /**
         * <p>
@@ -71,7 +71,7 @@ public class DerivedUnitElement extends
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_derivedUnit = formFactory.createSelectionElement(
-                               DerivedUnitBase.class, getConversationHolder(), element,
+                               DerivedUnit.class, getConversationHolder(), element,
                                "Specimen", null, EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE,
                                style);
        }
index 374fd04b744fa29a7838a683b033b052ad3cf6e9..408b0bbe20e3f8726f8840077ac9ace734c0bb79 100644 (file)
 
 package eu.etaxonomy.taxeditor.ui.section.description;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.DerivedUnitSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -48,26 +50,32 @@ public class DescribedSpecimenSection extends AbstractEntityCollectionSection<Ta
        @Override
        public Collection<SpecimenOrObservationBase> getCollection(
                        TaxonDescription entity) {
-               return entity.getDescribedSpecimenOrObservations();
+               //FIXME:This class is not really an entity collection section, and should be moved 
+               // to a single entity section, but one with the possibility of launching a wizard
+               List<SpecimenOrObservationBase> collection = new ArrayList<SpecimenOrObservationBase>();
+               if(entity.getDescribedSpecimenOrObservation() != null) {
+                       collection.add(entity.getDescribedSpecimenOrObservation());     
+               }               
+               return collection;
        }
 
        /** {@inheritDoc} */
        @Override
        public SpecimenOrObservationBase createNewElement() {
-               DerivedUnitBase selection = DerivedUnitSelectionDialog.select(getShell(), getConversationHolder(), null);
+               DerivedUnit selection = DerivedUnitSelectionDialog.select(getShell(), getConversationHolder(), null);           
                return selection;
        }
 
        /** {@inheritDoc} */
        @Override
        public void addElement(SpecimenOrObservationBase element) {
-               getEntity().addDescribedSpecimenOrObservation(element);
+               getEntity().setDescribedSpecimenOrObservation(element);
        }
 
        /** {@inheritDoc} */
        @Override
        public void removeElement(SpecimenOrObservationBase element) {
-               getEntity().removeDescribedSpecimenOrObservation(element);
+               getEntity().setDescribedSpecimenOrObservation(null);            
        }
 
        /** {@inheritDoc} */
index 709d02e7cd740f8954b4ee885c9ec1e0f9ad6352..946aa45701440be2a72441dc54c0cba750913de3 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
@@ -65,7 +65,9 @@ public class DescriptionDetailElement extends AbstractCdmDetailElement<Descripti
                }
                else if(eventSource == selection_featureTree){
                        FeatureTree featureTree = selection_featureTree.getSelection();
-                       getEntity().setDescriptiveSystem(featureTree.getDistinctFeatures());
+                       //FIXME:3.3MC---- 
+                       //getEntity().setDescriptiveSystem(featureTree.getDistinctFeatures());
+                       //FIXME:3.3MC----
                }
        }
 }
index 5cf40dc83b3e5e65939178f357045eb172601438..8f6c36817434a634838ec61eb4713374b6d22dad 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 5591416ff5177d31814e37bdaafd3efeaf4affc0..84dc081d9c789d054c3c6d134aa3b4b3dfb00922 100644 (file)
@@ -11,8 +11,8 @@
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index 2fe95883904f4c6b43a56b3bf15e2627354f3666..6414310fd2de95d3a4a448a4cb610d00d7fcc5a8 100644 (file)
@@ -21,8 +21,8 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.description.operation.ChangeDescriptionElementType;
index 10608b3b000f88dc24ec6805e2e15b6e293981c1..5045ce9b5314ab6616ea0f573f1d593129346a96 100644 (file)
@@ -16,8 +16,8 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index b74c7bfe55e2115c7d06ed681f5b1d89e081d1ab..878a82a9110fe462d0e505a02e1ba9bec38ad321 100644 (file)
@@ -13,11 +13,11 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractOriginalSourceElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
@@ -99,6 +99,7 @@ public class DescriptionElementSourceElement extends
                text_referenceDetail.setText(entity.getCitationMicroReference());
                text_originaleNameString.setText(entity.getOriginalNameString());
                selection_name.setEntity(entity.getNameUsedInSource());
+               combo_origsourcetype.setSelection(entity.getType());
        }
 
        /** {@inheritDoc} */
index b48b44aca277b40439ad5eb7ce83c56e83191bf9..14436683a1e0b3240b7bdbd678613c25a6d0b10c 100644 (file)
@@ -5,12 +5,12 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.Collection;
 
-
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -37,7 +37,7 @@ public class DescriptionElementSourceSection extends AbstractEntityCollectionSec
        /** {@inheritDoc} */
        @Override
        public DescriptionElementSource createNewElement() {
-               return DescriptionElementSource.NewInstance();
+               return DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
        }
 
        /** {@inheritDoc} */
index a258802012349a9d8207f57b41dda3037798321a..937449fd30f08cac03ccf91341b57ef619e8d471 100644 (file)
@@ -13,9 +13,9 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index 6e7e73d327b19cfe9c47484a7e517dfc5c7b5ba8..1f3c1db1fdf6040a32563a60c598b6e3e6700440 100644 (file)
@@ -14,9 +14,11 @@ import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -53,7 +55,12 @@ public class DescriptionSourceSection extends
        /** {@inheritDoc} */
        @Override
        public IdentifiableSource createNewElement() {
-               return IdentifiableSource.NewInstance();
+               OriginalSourceType ost = OriginalSourceTypeSelectionDialog.select(getShell(), getConversationHolder()); 
+               if(ost != null) {
+                       return IdentifiableSource.NewInstance(ost);
+               } else {
+                       return null;
+               }
        }
 
        /** {@inheritDoc} */
index 4485eb50b14e14ab1b0605b766766cfb63f437ef..46aa7c86a9a6fd9c991e5a1d5e3ad5ac82c7365e 100644 (file)
@@ -13,9 +13,9 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
index b8a69e0ae77995b478bd5cc78bf82c7309cb38e9..c4648506519ff16109674605d1e06cd093dbb677 100644 (file)
@@ -15,8 +15,8 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 04a0171b1b7d09d74d1626003dbcb9aff67498a5..fc7330b484ef9b7f0e848ea7400c4809c19089fb 100644 (file)
@@ -16,8 +16,8 @@ import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.media.MediaElement;
index 452d50bcb5c8e55d0153f411db6a37f116a85d66..bd583af5169e748f2c5e4e82f09c2e3c567ed6ba 100644 (file)
@@ -12,11 +12,11 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.description.Modifier;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
@@ -26,9 +26,9 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  * @created Sep 15, 2010
  * @version 1.0
  */
-public class ModifierElement extends AbstractEntityCollectionElement<Modifier> {
+public class ModifierElement extends AbstractEntityCollectionElement<DefinedTerm> {
        
-       private TermComboElement<Modifier> combo_modifier;
+       private TermComboElement<DefinedTerm> combo_modifier;
 
        /**
         * <p>Constructor for ModifierElement.</p>
@@ -40,14 +40,14 @@ public class ModifierElement extends AbstractEntityCollectionElement<Modifier> {
         * @param style a int.
         */
        public ModifierElement(CdmFormFactory formFactory,
-                       AbstractFormSection section, Modifier entity,
+                       AbstractFormSection section, DefinedTerm entity,
                        SelectionListener removeListener, int style) {
                super(formFactory, section, entity, removeListener, null, style);
        }
        
        /** {@inheritDoc} */
        @Override
-       public void setEntity(Modifier entity) {
+       public void setEntity(DefinedTerm entity) {
                this.entity = entity;
                combo_modifier.setSelection(entity);
        }
@@ -55,7 +55,7 @@ public class ModifierElement extends AbstractEntityCollectionElement<Modifier> {
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
-               combo_modifier = formFactory.createTermComboElement(Modifier.class, element, "Modifier", getEntity(), style);
+               combo_modifier = formFactory.createTermComboElement(DefinedTerm.class, element, "Modifier", getEntity(), style);
        }
 
        /** {@inheritDoc} */
index 3025ad0b3700f46f921475196a3d2774d3a09add..8a33c59a23f3ff5568d5d612e9117b55cfa534cf 100644 (file)
@@ -13,10 +13,11 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.description.IModifiable;
-import eu.etaxonomy.cdm.model.description.Modifier;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -26,7 +27,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
  * @created Sep 15, 2010
  * @version 1.0
  */
-public class ModifierSection extends AbstractEntityCollectionSection<IModifiable, Modifier> {
+public class ModifierSection extends AbstractEntityCollectionSection<IModifiable, DefinedTerm> {
 
        /**
         * <p>Constructor for ModifierSection.</p>
@@ -44,25 +45,25 @@ public class ModifierSection extends AbstractEntityCollectionSection<IModifiable
        
        /** {@inheritDoc} */
        @Override
-       public Collection<Modifier> getCollection(IModifiable entity) {
+       public Collection<DefinedTerm> getCollection(IModifiable entity) {
                return entity.getModifiers();
        }
 
        /** {@inheritDoc} */
        @Override
-       public Modifier createNewElement() {
-               return Modifier.NewInstance();
+       public DefinedTerm createNewElement() {         
+               return DefinedTerm.NewInstance(TermType.Modifier,"","Untitled","");                             
        }
 
        /** {@inheritDoc} */
        @Override
-       public void addElement(Modifier element) {
+       public void addElement(DefinedTerm element) {
                getEntity().addModifier(element);
        }
 
        /** {@inheritDoc} */
        @Override
-       public void removeElement(Modifier element) {
+       public void removeElement(DefinedTerm element) {
                getEntity().removeModifier(element);
        }
 
index c010da5b1f49ba91221da0b7a312202da840df7f..5747110ba8b77ae6a3fb51851326d7cc078fd2d6 100644 (file)
@@ -26,8 +26,8 @@ import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
index ee928e4e381f1968d84b0145dbd06817ddc5772c..137a716ee05b3063eb31c692a37c42ff6fe19d0e 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 448b567c18bd72f62fd477139f45c00bac089719..08173c72a1c8afb3d85210068d4b91d626a30310 100644 (file)
@@ -12,11 +12,11 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.description.Scope;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
@@ -26,9 +26,9 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  * @created Mar 18, 2010
  * @version 1.0
  */
-public class ScopeElement extends AbstractEntityCollectionElement<Scope> {
+public class ScopeElement extends AbstractEntityCollectionElement<DefinedTerm> {
        
-       private TermComboElement<Scope> combo_scope;
+       private TermComboElement<DefinedTerm> combo_scope;
 
        /**
         * <p>Constructor for ScopeElement.</p>
@@ -40,14 +40,14 @@ public class ScopeElement extends AbstractEntityCollectionElement<Scope> {
         * @param style a int.
         */
        public ScopeElement(CdmFormFactory cdmFormFactory,
-                       AbstractFormSection section, Scope element,
+                       AbstractFormSection section, DefinedTerm element,
                        SelectionListener removeListener, int style) {
                super(cdmFormFactory, section, element, removeListener, null, style);
        }
 
        /** {@inheritDoc} */
        @Override
-       public void setEntity(Scope entity) {
+       public void setEntity(DefinedTerm entity) {
                this.entity = entity;
                combo_scope.setSelection(entity);
        }
@@ -55,7 +55,7 @@ public class ScopeElement extends AbstractEntityCollectionElement<Scope> {
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
-               combo_scope = formFactory.createTermComboElement(Scope.class, element, "Scope", null, style);
+               combo_scope = formFactory.createTermComboElement(DefinedTerm.class, element, "Scope", null, style);
        }
 
        /** {@inheritDoc} */
index 04038711c033c4f783b3a42235c9f69f849d7ccf..81bb68a373a4b30d971fbfcf6696b46153329137 100644 (file)
@@ -13,10 +13,11 @@ package eu.etaxonomy.taxeditor.ui.section.description;
 import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.description.Scope;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -26,7 +27,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
  * @created Mar 18, 2010
  * @version 1.0
  */
-public class ScopeSection extends AbstractEntityCollectionSection<TaxonDescription, Scope> {
+public class ScopeSection extends AbstractEntityCollectionSection<TaxonDescription, DefinedTerm> {
 
        /**
         * <p>Constructor for ScopeSection.</p>
@@ -42,19 +43,19 @@ public class ScopeSection extends AbstractEntityCollectionSection<TaxonDescripti
        
        /** {@inheritDoc} */
        @Override
-       public void addElement(Scope element) {
+       public void addElement(DefinedTerm element) {
                getEntity().addScope(element);
        }
 
        /** {@inheritDoc} */
        @Override
-       public Scope createNewElement() {
-               return Scope.NewInstance();
+       public DefinedTerm createNewElement() {         
+               return DefinedTerm.NewInstance(TermType.Scope,"","Untitled","");                                        
        }
 
        /** {@inheritDoc} */
        @Override
-       public Collection<Scope> getCollection(TaxonDescription entity) {
+       public Collection<DefinedTerm> getCollection(TaxonDescription entity) {
                return entity.getScopes();
        }
 
@@ -72,7 +73,7 @@ public class ScopeSection extends AbstractEntityCollectionSection<TaxonDescripti
 
        /** {@inheritDoc} */
        @Override
-       public void removeElement(Scope element) {
+       public void removeElement(DefinedTerm element) {
                getEntity().removeScope(element);
        }
 }
index 94ceb4e99e6d31c936f49cd593a1dff2ca6edea0..30a4c9808a1f4ffee0bd794cd47f3b29e794c50a 100644 (file)
@@ -17,10 +17,10 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.description.State;
 import eu.etaxonomy.cdm.model.description.StateData;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
index 07ea14414b9aa3c88558e624fa9d4b73ce8f1016..30e54353177ca10d97f93bc3f2adcb7dd5054551 100644 (file)
@@ -15,8 +15,8 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.CategoricalData;
 import eu.etaxonomy.cdm.model.description.StateData;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -45,7 +45,7 @@ public class StateDataSection extends AbstractEntityCollectionSection<Categorica
        /** {@inheritDoc} */
        @Override
        public Collection<StateData> getCollection(CategoricalData entity) {
-               return entity.getStates();
+               return entity.getStateData();
        }
 
        /** {@inheritDoc} */
@@ -57,13 +57,13 @@ public class StateDataSection extends AbstractEntityCollectionSection<Categorica
        /** {@inheritDoc} */
        @Override
        public void addElement(StateData element) {
-               getEntity().addState(element);
+               getEntity().addStateData(element);
        }
 
        /** {@inheritDoc} */
        @Override
        public void removeElement(StateData element) {
-               getEntity().removeState(element);
+               getEntity().removeStateData(element);
        }
 
        /** {@inheritDoc} */
index ed7f08cd01fb7c6484906ed91d9e90e3128596f6..4e879088bef7d9c78cfaea83317129c70be833df 100644 (file)
@@ -15,10 +15,10 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
@@ -56,7 +56,7 @@ public class StatisticalMeasurementValueElement extends
        @Override
        public void setEntity(StatisticalMeasurementValue entity) {
                this.entity = entity;
-               number_value.setFloat(entity.getValue());
+               number_value.setNumber(entity.getValue());
                combo_type.setSelection(entity.getType());
                section_modifiers.setEntity(entity);
        }
@@ -64,7 +64,7 @@ public class StatisticalMeasurementValueElement extends
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
-               number_value = formFactory.createFloatTextWithLabelElement(element, "Value", 0, style);
+               number_value = formFactory.createNumberTextWithLabelElement(element, "Value", 0, style);
                combo_type = formFactory.createTermComboElement(StatisticalMeasure.class, element, "Statistical Measure", null, style);
                section_modifiers = formFactory.createModifierSection(getConversationHolder(), element, ExpandableComposite.TWISTIE);
                section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
index 81fef0b58334108f451c32b3dd8d94760a277239..cef5b828bd07430f94d81a86af9293e8934588ff 100644 (file)
@@ -15,8 +15,8 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 85c1461bbc4dce903f6b9b31d3abc7b517346dec..bbbdd768c2bde0cfff264786c4db60892d22994e 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -11,8 +11,8 @@
 package eu.etaxonomy.taxeditor.ui.section.description.detail;
 
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
@@ -23,7 +23,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @version 1.0
  */
 public abstract class AbstractDetailedDescriptionDetailElement<T extends DescriptionElementBase> extends AbstractCdmDetailElement<T>{
-       
+
        /**
         * <p>Constructor for AbstractDetailedDescriptionDetailElement.</p>
         *
index 9f6ceb849e09d2c8ca3420c20dc0c11359300174..7f333ff83e5987f0f394bdc36da9c08fb1300a97 100644 (file)
@@ -6,9 +6,9 @@ package eu.etaxonomy.taxeditor.ui.section.description.detail;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.description.CategoricalData;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.description.StateDataSection;
 
index 2cf643d510af2f4d07e0bb3b4310d01d6a1bb954..63c815467dc1e36f96853607505fdefca8bef13d 100644 (file)
@@ -15,9 +15,9 @@ import org.eclipse.swt.SWT;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index a4cb753439d963397c11fa6e2eb0a7fdc6d09da2..00b5ca0f599e02744518660d6827cefbd4a003f5 100644 (file)
@@ -13,9 +13,9 @@ package eu.etaxonomy.taxeditor.ui.section.description.detail;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
index 9fd82032e8a919903e84099ce1fc3658e0e22d71..236e046e518a879ab0fc6a060f1bb20f39ca573a 100644 (file)
@@ -16,10 +16,10 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
@@ -36,7 +36,7 @@ public class IndividualsAssociationDetailElement extends
                AbstractDetailedDescriptionDetailElement<IndividualsAssociation> {
 
        private TextWithLabelElement text_description;
-       private EntitySelectionElement<DerivedUnitBase> selection_derivedUnit;
+       private EntitySelectionElement<DerivedUnit> selection_derivedUnit;
 
        /**
         * <p>
@@ -67,9 +67,9 @@ public class IndividualsAssociationDetailElement extends
        protected void createControls(ICdmFormElement formElement,
                        IndividualsAssociation entity, int style) {
                selection_derivedUnit = formFactory
-                               .createSelectionElement(DerivedUnitBase.class,
+                               .createSelectionElement(DerivedUnit.class,
                                                getConversationHolder(), formElement, "Unit",
-                                               CdmBase.deproxy(entity.getAssociatedSpecimenOrObservation(),DerivedUnitBase.class),
+                                               CdmBase.deproxy(entity.getAssociatedSpecimenOrObservation(),DerivedUnit.class),
                                                EntitySelectionElement.ALL, style);
 
                text_description = formFactory.createMultilineTextWithLabel(
index 1315a206d7b99cf3fa174b1c06c6f16b392add71..d0e0016aaca0cb3021a6a0a215b8a17f8c1b07e6 100644 (file)
@@ -7,9 +7,9 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.description.MeasurementUnit;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.description.StatisticalMeasurementValueSection;
 
index 95221da5ed233016a069d58aac987d7b470c7c35..b54d55833478b313fc69c731d35402e6188500e7 100644 (file)
@@ -15,8 +15,8 @@ import org.eclipse.swt.SWT;
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index 9e4fcbac72a38cdc1ff22a3eac7a670e1d12c298..913677a4be9d83739b98a4fb376f9c841c81a7c9 100644 (file)
@@ -13,8 +13,8 @@ package eu.etaxonomy.taxeditor.ui.section.description.detail;
 import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.model.description.TextData;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
 
 /**
index 52282366470f862d91649b740a1a6a520cfa81f5..d18b9d7a5f4a7ce2c238be9695e33bd6afb953e4 100644 (file)
@@ -27,9 +27,9 @@ import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.BrowserElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
index 456fc997f3569aca86f576cd8a45d468261a8125..968a959f16bb3e0eb0a0f46181ddacb408768d9e 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index e0a6ffcababf54aab63cb7d5ef1c740b764ba06b..7efac85a8bf1710205fce5199c47feab4b0bf3bc 100644 (file)
 package eu.etaxonomy.taxeditor.ui.section.grantedAuthority;
 
 import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
 
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
-import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index e443d388c75ed9f5360869f732f695a032838a6c..4ed8b90023677febeb41320d1ccecc0cbc007fbc 100644 (file)
@@ -11,8 +11,8 @@
 package eu.etaxonomy.taxeditor.ui.section.grantedAuthority;
 
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
index da87734a8deafc1046442532dfc9d36975345262..6612eb65602bf7270d6b919e8597a58bbe3a3a34 100644 (file)
@@ -16,10 +16,9 @@ import org.springframework.security.core.GrantedAuthority;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Group;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.GrantedAuthoritySelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 3fd5b3887f93fcbc7639bc8b83045f302dca68be..e61f7f09b73ee350303c463323ca20b92c56cf9d 100644 (file)
@@ -11,9 +11,9 @@ package eu.etaxonomy.taxeditor.ui.section.grantedAuthority;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index 02db4e6985bdcc0c1a0f39099d072d22a726bd04..4aa1178678e2e44b797f5cc30a32ad96b3455893 100644 (file)
@@ -11,8 +11,8 @@
 package eu.etaxonomy.taxeditor.ui.section.group;
 
 import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
index e5543bd3496daa996eeeceb3fc2b680b05f946a7..8b10edbc58b9f92c1e5965dbd64692742559cc86 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 15c4f491029dc95713ac20c8d6ae665e902c6239..bf9a702c9269b014fc17457fd5c96502937850ed 100644 (file)
@@ -12,9 +12,9 @@ package eu.etaxonomy.taxeditor.ui.section.group;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index 58a26303200cbe55c4496a38a6f39b2d5515b829..3f673cdd12779eaab0a28406475dc602ff761b93 100644 (file)
@@ -11,8 +11,8 @@ package eu.etaxonomy.taxeditor.ui.section.group;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
index 1a828cb19fb054e659840644306709ea9ec9ce7f..99dbd19e6719ebe66f97313a3cc710b5ae36d618 100644 (file)
@@ -13,9 +13,9 @@ package eu.etaxonomy.taxeditor.ui.section.group;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index da46215e4e0ac4351b8061488c4ae2ef82dfe031..90268b85fb363517edcaa573c848061d5533c49f 100644 (file)
@@ -15,9 +15,9 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.UserSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 13e9035108738ce54ea04034e951069d8da06993..95a29a4a5221490347b500969b7960f79fdf7cf6 100644 (file)
@@ -8,8 +8,8 @@ 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.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 39aa11e690566c5d5159883e339073cbd25e1485..c87d90c01b928646f41a3d0d3924e5f6c5dabafd 100644 (file)
@@ -6,9 +6,9 @@ package eu.etaxonomy.taxeditor.ui.section.key;
 import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 
 /**
index 68a5db7d82cd6091816507fb0948683c2274c639..f8634c4aaaa4a392c4a9b225b23d0dd895082047 100644 (file)
@@ -7,8 +7,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index c21c24900d40a42f3540325d3bfce1a74cd5e26c..05a9ee0be1f4197ea03269d7e91cce57c097b21d 100644 (file)
@@ -7,8 +7,8 @@ import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.KeyStatementElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -43,7 +43,7 @@ public class PolytomousKeyNodeDetailElement extends
                        PolytomousKeyNode entity, int style) {
                if (!entity.isLeaf()) {
                        NumberWithLabelElement number_nodeNumber = formFactory
-                                       .createIntegerTextWithLabelElement(formElement,
+                                       .createNumberTextWithLabelElement(formElement,
                                                        "Node Number", entity.getNodeNumber(), style);
                        number_nodeNumber.setEnabled(false);
                }
index 65c4d636c64fa269a0719d991b603160edb3ea03..bbc6c651ca38de102301aa6fd21b2369832ba0ce 100644 (file)
@@ -7,8 +7,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index dcc723ef614c28a221deb19fd003db0270898cec..12131c8eccec5f8981507408bd2054a96348250c 100644 (file)
@@ -6,17 +6,18 @@ package eu.etaxonomy.taxeditor.ui.section.key;
 import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.cdm.model.description.Scope;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
  * @author n.hoffmann
  *
  */
-public class ScopeRestrictionSection extends AbstractEntityCollectionSection<PolytomousKey, Scope> {
+public class ScopeRestrictionSection extends AbstractEntityCollectionSection<PolytomousKey, DefinedTerm> {
 
        public ScopeRestrictionSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement, int style) {
@@ -24,22 +25,23 @@ public class ScopeRestrictionSection extends AbstractEntityCollectionSection<Pol
        }
 
        @Override
-       public Collection<Scope> getCollection(PolytomousKey entity) {
+       public Collection<DefinedTerm> getCollection(PolytomousKey entity) {
                return entity.getScopeRestrictions();
        }
 
        @Override
-       public Scope createNewElement() {
-               return Scope.NewInstance();
+       public DefinedTerm createNewElement() {         
+               return DefinedTerm.NewInstance(TermType.Scope,"","Untitled","");
+                       
        }
 
        @Override
-       public void addElement(Scope element) {
+       public void addElement(DefinedTerm element) {
                getEntity().addScopeRestriction(element);
        }
 
        @Override
-       public void removeElement(Scope element) {
+       public void removeElement(DefinedTerm element) {
                getEntity().removeScopeRestriction(element);
        }
 
index bd732e883626de28a36240e9a8220ba17b53668c..29c5d089f9e901129306400cbe573e83479d2784 100644 (file)
@@ -15,9 +15,9 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonBaseSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 6d790a5ef585765111a9a53ed85c3fcbfba9e560..35246888462bd93e206bf244ef0186756713ebe9 100644 (file)
@@ -21,10 +21,10 @@ import org.eclipse.swt.events.SelectionListener;
 import eu.etaxonomy.cdm.common.media.ImageInfo;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ImageElement;
 import eu.etaxonomy.taxeditor.ui.element.KeyValueViewerElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
@@ -72,9 +72,9 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
        public void createControls(ICdmFormElement formElement, int style) {
                super.createControls(formElement, style);
                
-               text_height = formFactory.createIntegerTextWithLabelElement(formElement, "Height", null, style);
+               text_height = formFactory.createNumberTextWithLabelElement(formElement, "Height", null, style);
                text_height.setEnabled(false);
-               text_width = formFactory.createIntegerTextWithLabelElement(formElement, "Width", null, style);
+               text_width = formFactory.createNumberTextWithLabelElement(formElement, "Width", null, style);
                text_width.setEnabled(false);
                element_image = formFactory.createImageElement(formElement, null, style);
                element_keyValue = formFactory.createKeyValueViewerElement(formElement, "Key", "Value", null);
@@ -84,8 +84,8 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
        @Override
        public void setEntity(ImageFile entity) {
                super.setEntity(entity);
-               text_height.setInteger(entity.getHeight());
-               text_width.setInteger(entity.getWidth());
+               text_height.setNumber(entity.getHeight());
+               text_width.setNumber(entity.getWidth());
                try {
                        loadImage(entity.getUri(), false);              
                } catch (Exception e) {
@@ -113,10 +113,10 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
                        // But then, I don't think we will handle such large files in the near future
                        getEntity().setSize((int) imageInfo.getLength());
                        
-                       text_height.setInteger(imageInfo.getHeight());
+                       text_height.setNumber(imageInfo.getHeight());
                        getEntity().setHeight(imageInfo.getHeight());
                                
-                       text_width.setInteger(imageInfo.getWidth());
+                       text_width.setNumber(imageInfo.getWidth());
                        getEntity().setWidth(imageInfo.getWidth());
                }
                
@@ -152,8 +152,8 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
        protected void handleException(Exception e) {
                super.handleException(e);
                element_image.unloadImage(postRunnable);
-               text_height.setInteger(0);
-               text_width.setInteger(0);
+               text_height.setNumber(0);
+               text_width.setNumber(0);
                
                element_image.loadImage(new Runnable(){
                        public void run() {
index 299bd27b45e895d7b76e029325358d71d8b6c07b..2def50a26617937cd7f2a38b4c50ad6407877ce3 100644 (file)
@@ -11,9 +11,9 @@ import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
index ae2bbb7ba0a70c702692fe1d528b43f653788c66..1f6e5b5e56226a9e13c6f997868a75565d2937db 100644 (file)
@@ -22,9 +22,9 @@ import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
index 45d44c50733af89948b20e8da1900c82f2cb64ef..2f0908a601450d654298be45a440222553598491 100644 (file)
@@ -17,9 +17,9 @@ import org.apache.commons.lang.StringUtils;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LabelElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
@@ -61,7 +61,7 @@ public class MediaRepresentationPartElement<T extends MediaRepresentationPart> e
        @Override
        public void createControls(ICdmFormElement element, int style) {
                text_uri = formFactory.createTextWithLabelElement(element, "URI", null, style);
-               text_size = formFactory.createIntegerTextWithLabelElement(element, "Size", null, style);
+               text_size = formFactory.createNumberTextWithLabelElement(element, "Size", null, style);
                text_size.setEnabled(false);
                
                element_messages = formFactory.createLabel(element, "");
index e191040b963d1c41a438d565c1da9e5d191e2b44..e336f4f544690f7a333605c22a61964586aa97af 100644 (file)
@@ -9,9 +9,9 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 33587e9f6851002582849488412bb0a6377c140f..852bf0c5859e61b4191c79eec0927199af7a2007 100644 (file)
@@ -15,8 +15,8 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index ab7011da484fa901eb6156ca430a4979d7a122a0..a2ba19fa7423c5fe35529f3740075b5108c6955a 100644 (file)
@@ -5,12 +5,11 @@ package eu.etaxonomy.taxeditor.ui.section.media;
 
 import java.util.Collection;
 
-
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
 import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 99506c5638abeec786b9fbfcb14547b0cc693133..2a397b9b15290ed5285c35aa14f8ddfb58d2023a 100644 (file)
@@ -13,10 +13,10 @@ package eu.etaxonomy.taxeditor.ui.section.name;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractReferencedEntityElement;
 
 /**
index aa03fae0b12bb65b0dda4ea73c45597407929fbc..e1693f05f513bd5f3c8a1c1a72a140fdaf6717a9 100644 (file)
@@ -13,12 +13,11 @@ package eu.etaxonomy.taxeditor.ui.section.name;
 import java.util.Arrays;
 
 import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;
-import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.taxeditor.model.AuthorHelper;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index 66c071ced89a6194752dcd6949672531c606bbdd..0a7ef1750e5f54fb8f8fa38bbd3545981b1f4225 100644 (file)
@@ -16,8 +16,8 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
index 1dfab3c0fab21bdee4211abd386bc21fcbffbf53..4b9d7a746b6761e6fd1bd4ec544ac93803d1298d 100644 (file)
@@ -11,9 +11,9 @@
 package eu.etaxonomy.taxeditor.ui.section.name;
 
 import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index ae1812feb33c3d6804ac019fd5d4c4541a5ec7ba..897f5a838a5b02aefadb4d79148a97e94bf5065e 100644 (file)
@@ -17,8 +17,8 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
index f628e9e26cb2b2b359cbfc8f9c9dc20cf64aa93d..8cba9f9f0ca9113660f1018db9968b96166a4ee8 100644 (file)
@@ -20,10 +20,10 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.ZoologicalName;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
@@ -123,7 +123,7 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                NomenclaturalCode code = nonViralName.getNomenclaturalCode();
                if (code != null){
                        switch(nonViralName.getNomenclaturalCode()){
-                       case ICBN:
+                       case ICNAFP :
                                createBotanicalNameParts(formElement, nonViralName, style);
                                break;
                        case ICZN:
@@ -141,8 +141,8 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
        private void createZoologicalNameParts(ICdmFormElement formElement, NonViralName nonViralName, int style){
                ZoologicalName zoologicalName = (ZoologicalName) nonViralName;
                text_breed = formFactory.createTextWithLabelElement(formElement, "Breed", zoologicalName.getBreed(), style);
-               text_publicationYear = formFactory.createIntegerTextWithLabelElement(formElement, "Publication Year", zoologicalName.getPublicationYear(), style);
-               text_originalPublicationYear = formFactory.createIntegerTextWithLabelElement(formElement, "Orig. Publication Year", zoologicalName.getOriginalPublicationYear(), style);
+               text_publicationYear = formFactory.createNumberTextWithLabelElement(formElement, "Publication Year", zoologicalName.getPublicationYear(), style);
+               text_originalPublicationYear = formFactory.createNumberTextWithLabelElement(formElement, "Orig. Publication Year", zoologicalName.getOriginalPublicationYear(), style);
        }
        
        private void createGenusOrUninomialControls(ICdmFormElement element, NonViralName nonViralName, int style){             
index 32315ed8d3fbf27442281994cfd28579413f141a..eaa0a774be68db4258526213a5af2de7e956bdf5 100644 (file)
@@ -16,8 +16,8 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
index c0e1988f12835da72320f10db48eeb7127f2869e..2d40fd43ed0395257c0cecff463eb3835a8b1804 100644 (file)
@@ -17,10 +17,10 @@ import org.eclipse.swt.graphics.Color;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractReferencedEntityElement;
index d28f45adc8a89cec3ce84862784a2c6195137460..d67a379fcaefac9935aa65c24009c53b5c6d8839 100644 (file)
@@ -22,8 +22,8 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
index 6d4c33854f93d5e7efa40c4ab40298dd14d2429b..e63a41aa606550c5d5c970021bf244e437ba0bfe 100644 (file)
@@ -16,11 +16,11 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
index 937f08a90fafd140fc32513cfdda4ab2671fc971..438f90da4f5c7f7c5c228d53c2ce49e8eac3b5df 100644 (file)
@@ -14,10 +14,10 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
index 643804afb8873baa99b588570ae7871111fef163..80b5cc3cbfe9049148d7d6bc24356218630a8e8c 100644 (file)
@@ -18,8 +18,8 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
index d4e17a472caef42b9a0a579f8b68cf870202d2fc..245e5e01d46470d418e4a41e406bb2884811cf99 100644 (file)
@@ -16,9 +16,9 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
index 654a025e439f8bffc0632401d0ddc8d70134bbac..2ee3b7241bcf1c5b9256f539503364330560c0c4 100644 (file)
@@ -22,9 +22,9 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
index de04f7c59b8da4de5f7428fa946fd819aae0db7d..e380662678801e788be7d5e9de5843ec1a7789f3 100644 (file)
@@ -12,9 +12,9 @@ package eu.etaxonomy.taxeditor.ui.section.name;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index ed29e2f45be45f923899faf0cf622916dcf1b44d..43a1a348ae49526df6088845950ca538bc5f5fad 100644 (file)
@@ -23,10 +23,10 @@ import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
index f9401eeee53caef77e05d91de846df7f47641399..d7cfc0601fa9b52572104959efcc8bba0b70da98 100644 (file)
@@ -23,8 +23,8 @@ import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
index 1fd7f9a170234d6c4bf5dcf0ed96fa3a23281ecc..ed46ae652592ed2d9eab140281632ff891a8780a 100644 (file)
@@ -15,12 +15,12 @@ import org.eclipse.swt.events.SelectionListener;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
-import eu.etaxonomy.cdm.model.occurrence.Specimen;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
@@ -37,7 +37,7 @@ public class SpecimenTypeDesignationElement extends
                AbstractTypeDesignationElement<SpecimenTypeDesignation> {
 
        private TermComboElement<SpecimenTypeDesignationStatus> combo_typeStatus;
-       private EntitySelectionElement<DerivedUnitBase> selection_typeSpecimen;
+       private EntitySelectionElement<DerivedUnit> selection_typeSpecimen;
        private TextWithLabelElement text_specimenTypeText;
 
        /**
@@ -69,7 +69,7 @@ public class SpecimenTypeDesignationElement extends
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
                selection_typeSpecimen = formFactory
-                               .createSelectionElement(DerivedUnitBase.class,
+                               .createSelectionElement(DerivedUnit.class,
                                                getConversationHolder(), formElement, "Specimen", null,
                                                EntitySelectionElement.ALL, style);
                combo_typeStatus = formFactory
@@ -101,8 +101,8 @@ public class SpecimenTypeDesignationElement extends
                else if (eventSource == text_specimenTypeText) {
                        // TODO this is a simple workaround to enter type specimen as text
                        // strings
-                       if (getEntity().getTypeSpecimen() == null) {
-                               Specimen typeSpecimen = Specimen.NewInstance();
+                       if (getEntity().getTypeSpecimen() == null) {                            
+                               DerivedUnit typeSpecimen = DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);                                                                        
                                getEntity().setTypeSpecimen(typeSpecimen);
                        }
                        getEntity().getTypeSpecimen().setTitleCache(
index 7d280ec9598d9dd4502f8cecb86fe888089916df..aa9a7ebf3769bc848d5085acf6e77fb4fdc1d4ba 100644 (file)
@@ -25,8 +25,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
index 7fc9405420bb9b7974e3ad1b2902192ff1fb4456..ede380e341770096bb82e82996b48bfd11c50b55 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -13,8 +13,8 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 589764a84c9d11da23dc53dbcc73ce244755fc2b..e10f28e27b8139c2772d2438da3b6bd87ed9295e 100644 (file)
@@ -14,9 +14,9 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.EventBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
index d1fc2a0ff8c614ae99c82e80801c336457a76e86..aa30aea549eb058df1a701281ff9a5a2e48a9906 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -12,23 +12,27 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Collection;
 
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.NamedAreaSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
- * <p>CollectingAreasDetailSection class.</p>
+ * <p>
+ * CollectingAreasDetailSection class.
+ * </p>
  *
  * @author n.hoffmann
  * @created Oct 14, 2010
  * @version 1.0
  */
-public class CollectingAreasDetailSection extends
-               AbstractEntityCollectionSection<DerivedUnitFacade, NamedArea> {
+public class CollectingAreasDetailSection extends AbstractEntityCollectionSection<DerivedUnitFacade, NamedArea> {
 
        /**
         * <p>Constructor for CollectingAreasDetailSection.</p>
@@ -59,7 +63,7 @@ public class CollectingAreasDetailSection extends
        @Override
        public NamedArea createNewElement() {
                NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), getConversationHolder(), null);
-               
+
                return selection;
        }
 
@@ -99,4 +103,12 @@ public class CollectingAreasDetailSection extends
                return "Add a collecting area";
        }
 
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createElementComposite(java.lang.Object, org.eclipse.swt.events.SelectionListener, org.eclipse.swt.graphics.Color)
+        */
+       @Override
+       protected void createElementComposite(NamedArea element, SelectionListener removeListener, Color backgroundColor) {
+           formFactory.createNamedAreaFieldController(this, element, removeListener);
+       }
+
 }
index 1e7acca7c00f3fe720dd01bc608d086e89c21eab..f8d5e4b77820658c41c8e3dc713555d84ca21a07 100644 (file)
@@ -12,8 +12,8 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
index ba24188ba30f70087150c3f54ca1110a784a0d8a..bcdb62be9377d5ba901280fc4ab438895360e86d 100644 (file)
@@ -12,9 +12,9 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index 34f1cbbcc2b2a3b05c392f1ca94c658796673ee9..d2463cc2a6d146dd18a523b9cf0725e672f4f830 100644 (file)
@@ -24,8 +24,8 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
 import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * @author n.hoffmann
index 2310b3d33266c8ba5d92af60178c2f82e899d8ca..6085c7c87c9a3948f02235729a2c0cc9b800f9a1 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
+ * European Distributed Institute of Taxonomy 
  * http://www.e-taxonomy.eu
- *
+ * 
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -18,9 +18,9 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -30,7 +30,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * <p>
  * DerivedUnitBaseDetailElement class.
  * </p>
- *
+ * 
  * @author n.hoffmann
  * @created Jun 24, 2010
  * @version 1.0
@@ -47,7 +47,8 @@ public class DerivedUnitBaseDetailElement extends
        private EntitySelectionElement<TaxonNameBase> selection_storedUnder;
 
        private TextWithLabelElement text_exsicatum;
-
+       
+       
        private TermComboElement<PreservationMethod> combo_preservationMethod;
 
        private SpecimenCollectionDetailSection section_duplicates;
@@ -58,7 +59,7 @@ public class DerivedUnitBaseDetailElement extends
         * <p>
         * Constructor for DerivedUnitBaseDetailElement.
         * </p>
-        *
+        * 
         * @param formFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -74,38 +75,43 @@ public class DerivedUnitBaseDetailElement extends
        /** {@inheritDoc} */
        @Override
     protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
-        // Disable for now
-        // text_derivedUnitDefinitions =
-        // formFactory.createTextWithLabelElement(formElement,
-        // "Specimen Definition",
-        // facade.getDerivedUnitDefinition(CdmStore.getDefaultLanguage()),
-        // style);
+               // Disable for now
+               // text_derivedUnitDefinitions =
+               // formFactory.createTextWithLabelElement(formElement,
+               // "Specimen Definition",
+               // facade.getDerivedUnitDefinition(CdmStore.getDefaultLanguage()),
+               // style);
         text_barcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
         text_catalogNumber = formFactory.createTextWithLabelElement(formElement, "Catalog Number", entity.getCatalogNumber(), style);
 
-        try {
+               
+               try {
             combo_preservationMethod = formFactory.createTermComboElement(PreservationMethod.class, formElement, "Preservation Method", entity.getPreservationMethod(), style);
-        } catch (MethodNotSupportedByDerivedUnitTypeException e) {
-            // we ignore this
+               } catch (MethodNotSupportedByDerivedUnitTypeException e) {
+                       // we ignore this
             AbstractUtility.info(e.getMessage());
-        }
+               }
         selection_storedUnder = formFactory.createSelectionElement(TaxonNameBase.class, getConversationHolder(), formElement, "Stored Under", entity.getStoredUnder(), EntitySelectionElement.ALL, style);
 
-        try {
+               try {
             text_exsicatum = formFactory.createTextWithLabelElement(formElement, "Exsiccatum", entity.getExsiccatum(), style);
-        } catch (MethodNotSupportedByDerivedUnitTypeException e) {
-            // we ignore this
+               } catch (MethodNotSupportedByDerivedUnitTypeException e) {
+                       // we ignore this
             AbstractUtility.info(e.getMessage());
-        }
+               }
 
-        section_duplicates = formFactory.createSpecimenCollectionDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
-        section_duplicates.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-        section_duplicates.setEntity(entity);
+//             section_duplicates = (SpecimenCollectionDetailSection) formFactory
+//                             .createEntityDetailSection(
+//                                             EntityDetailType.SPECIMEN_COLLECTION,
+//                                             getConversationHolder(), formElement, Section.TWISTIE);
+//             section_duplicates
+//                             .setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//             section_duplicates.setEntity(entity);
 
         section_source = formFactory.createSourceCollectionDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
-        section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-        section_source.setEntity(entity);
-    }
+               section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+               section_source.setEntity(entity);
+       }
 
        /** {@inheritDoc} */
        @Override
index 4f74484327f15fad999d8b6b534d1e27018aeb01..6a7640334bb49549e58cadb710663043ad1bd137 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 69b53eb65dd7dca0e769676ad0a0a94edf4415a4..d3e0e8104138dde1a96fcb390e7966a064eada46 100644 (file)
@@ -12,9 +12,9 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitDetailsWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitDetailsWizardPage.java
new file mode 100644 (file)
index 0000000..40c3e3e
--- /dev/null
@@ -0,0 +1,63 @@
+// $Id$
+/**
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.section.occurrence;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.DerivedUnitDetailsElementController;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 02.09.2013
+ *
+ */
+public class DerivedUnitDetailsWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
+
+    /**
+     * @param formFactory
+     * @param conversation
+     * @param entity
+     */
+    public DerivedUnitDetailsWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, DerivedUnitFacade entity) {
+        super(formFactory, conversation, entity);
+        setTitle("Derived Unit Details");
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete
+     * ()
+     */
+    @Override
+    protected void checkComplete() {
+        setPageComplete(true);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement
+     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement)
+     */
+    @Override
+    public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
+        DerivedUnitDetailsElementController detailElement = formFactory.createDerivedUnitDetailsElementController(rootElement);
+        detailElement.setEntity(getEntity());
+        checkComplete();
+        return detailElement;
+    }
+}
index edd068f7ff91d83f365e3d54c60da50ae5063128..03daf4a9d884ac15cb0ace21d0b01f7fb47c08a8 100644 (file)
@@ -15,10 +15,10 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
@@ -30,7 +30,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @created Jun 17, 2010
  * @version 1.0
  */
-public class DerivedUnitFacadeDetailElement extends AbstractCdmDetailElement<DerivedUnitBase> {
+public class DerivedUnitFacadeDetailElement extends AbstractCdmDetailElement<DerivedUnit> {
 
        private DerivedUnitFacade facade;
 
@@ -57,7 +57,7 @@ public class DerivedUnitFacadeDetailElement extends AbstractCdmDetailElement<Der
 
        /** {@inheritDoc} */
        @Override
-       public void setEntity(DerivedUnitBase entity) {
+       public void setEntity(DerivedUnit entity) {
                super.setEntity(entity);
                try {
                        facade = DerivedUnitFacade.NewInstance(entity, configurator);
@@ -100,7 +100,7 @@ public class DerivedUnitFacadeDetailElement extends AbstractCdmDetailElement<Der
 
        /** {@inheritDoc} */
        @Override
-       public DerivedUnitBase getEntity() {
+       public DerivedUnit getEntity() {
                throw new IllegalArgumentException("Should not be called");
        }
 
@@ -116,7 +116,7 @@ public class DerivedUnitFacadeDetailElement extends AbstractCdmDetailElement<Der
        /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
-                       DerivedUnitBase entity, int style) {
+                       DerivedUnit entity, int style) {
 
                section_general = formFactory.createGeneralDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
                section_general.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
index 5c410bf52a3e96cd75da6192d8550206bd48b7ae..ad497f8413a7e3442c28bbbdac05d69a4566292d 100644 (file)
@@ -13,9 +13,9 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
@@ -26,7 +26,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @created Jun 17, 2010
  * @version 1.0
  */
-public class DerivedUnitFacadeDetailSection extends AbstractCdmDetailSection<DerivedUnitBase> {
+public class DerivedUnitFacadeDetailSection extends AbstractCdmDetailSection<DerivedUnit> {
 
        /**
         * <p>Constructor for DerivedUnitFacadeDetailSection.</p>
@@ -53,7 +53,7 @@ public class DerivedUnitFacadeDetailSection extends AbstractCdmDetailSection<Der
         * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
         */
        @Override
-       protected AbstractCdmDetailElement<DerivedUnitBase> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitBase> parentElement, int style) {
+       protected AbstractCdmDetailElement<DerivedUnit> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnit> parentElement, int style) {
            return formFactory.createDerivedUnitFacadeDetailElement(parentElement);
        }
 }
index ea4d184a0731542acc88c121967b88aedcd968c5..76c33b926105677f7579debe0d8254f1f9a0f7ae 100644 (file)
@@ -13,8 +13,8 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
index c2ae96f52ef0504d08be5275e2d622cf8f1b4a37..b235f3b71996931c685eaf499db429315f94a7f3 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 92c0533da12c8f334ac831132f0c58674a54ae81..73be3ccee31351ada4ff3b1c74728c1f41f202b8 100644 (file)
@@ -12,14 +12,14 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
-import eu.etaxonomy.cdm.model.occurrence.DeterminationModifier;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
@@ -34,7 +34,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 public class DeterminationEventDetailElement extends
                AbstractEventDetailElement<DeterminationEvent> {
 
-       private TermComboElement<DeterminationModifier> combo_determinationModifier;
+       private TermComboElement<DefinedTerm> combo_determinationModifier;
        private CheckboxElement checkbox_preferredFlag;
        private EntitySelectionElement<TaxonBase> selection_taxonBase;
 
@@ -105,7 +105,7 @@ public class DeterminationEventDetailElement extends
                selection_agent.setLabel("Determined by");
                
                
-               combo_determinationModifier = formFactory.createTermComboElement(DeterminationModifier.class,
+               combo_determinationModifier = formFactory.createTermComboElement(DefinedTerm.class,
                                element, "Modifier", null, style);
        }
 
index 89a0d0bde2e259ba7bc70df1a558896b5ffbfe3f..f8f75e67328c1ca3dd253fe7db6e3f2e2b972c49 100644 (file)
@@ -15,8 +15,8 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * @author n.hoffmann
index 7391066beee23e32ba3cb4ae1cf8bf7a198e78b8..7794813da9d893183d726826b610d91928b71e20 100644 (file)
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.model.description.Sex;
-import eu.etaxonomy.cdm.model.description.Stage;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -40,9 +39,9 @@ public class FieldObservationDetailElement extends AbstractCdmDetailElement<Deri
 
        private NumberWithLabelElement number_individualCount;
 
-       private TermComboElement<Sex> combo_sex;
+       private TermComboElement<DefinedTerm> combo_sex;
 
-       private TermComboElement<Stage> combo_lifeStage;
+       private TermComboElement<DefinedTerm> combo_lifeStage;
 
        /**
         * <p>Constructor for FieldObservationDetailElement.</p>
@@ -65,9 +64,12 @@ public class FieldObservationDetailElement extends AbstractCdmDetailElement<Deri
 //             text_fieldObjectDefinition = formFactory.createTextWithLabelElement(formElement, "Field Object Definition", entity.getFieldObjectDefinition(CdmStore.getDefaultLanguage()), style);
                text_fieldNotes = formFactory.createTextWithLabelElement(formElement, "Field Notes", entity.getFieldNotes(), style);
 
-               number_individualCount = formFactory.createIntegerTextWithLabelElement(formElement, "Individual Count", entity.getIndividualCount(), style);
-               combo_lifeStage = formFactory.createTermComboElement(Stage.class, formElement, "Life Stage", entity.getLifeStage(), style);
-               combo_sex = formFactory.createTermComboElement(Sex.class, formElement, "Sex", entity.getSex(), style);
+               number_individualCount = formFactory.createNumberTextWithLabelElement(formElement, "Individual Count", entity.getIndividualCount(), style);
+               //FIXME:3.3MC----
+               // Need to make sure that the hard coded terms in DefinedTerm have a term type (currently null)
+               //combo_lifeStage = formFactory.createDefinedTermComboElement(TermType.Stage, formElement, "Life Stage", entity.getLifeStage(), style);
+               //combo_sex = formFactory.createDefinedTermComboElement(TermType.Sex, formElement, "Sex", entity.getSex(),style);
+               //FIXME:3.3MC----
        }
 
        /** {@inheritDoc} */
index cb538c9fca492b52522f3b97ee1d89f76989c0b9..925b77f0428e8aa9f6b926f8b93425fec6231a79 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
@@ -12,9 +12,10 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationDetailsElementController;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
@@ -22,14 +23,14 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @created Dec 15, 2010
  * @version 1.0
  */
-public class FieldObservationWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
+public class FieldObservationDetailsWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
 
        /**
         * @param formFactory
         * @param conversation
         * @param entity
         */
-       public FieldObservationWizardPage(CdmFormFactory formFactory,
+       public FieldObservationDetailsWizardPage(CdmFormFactory formFactory,
                        ConversationHolder conversation, DerivedUnitFacade entity) {
                super(formFactory, conversation, entity);
                setTitle("Field Observation Details");
@@ -49,7 +50,7 @@ public class FieldObservationWizardPage extends AbstractCdmEntityWizardPage<Deri
         */
        @Override
        public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
-               FieldObservationDetailElement detailElement = formFactory.createFieldObservationDetailElement(rootElement);
+           FieldObservationDetailsElementController detailElement = formFactory.createFieldObservationDetailsElementController(rootElement);
                detailElement.setEntity(getEntity());
                return detailElement;
        }
@@ -12,9 +12,10 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationGeneralElementController;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
@@ -22,17 +23,17 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @created Dec 17, 2010
  * @version 1.0
  */
-public class GeneralWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
+public class FieldObservationGeneralWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
 
        /**
         * @param formFactory
         * @param conversation
         * @param entity
         */
-       public GeneralWizardPage(CdmFormFactory formFactory,
+       public FieldObservationGeneralWizardPage(CdmFormFactory formFactory,
                        ConversationHolder conversation, DerivedUnitFacade entity) {
                super(formFactory, conversation, entity);
-               setTitle("General Specimen Data");
+               setTitle("Field Observation");
        }
 
        /* (non-Javadoc)
@@ -48,7 +49,7 @@ public class GeneralWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFa
         */
        @Override
        public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
-               GeneralDetailElement detailElement = formFactory.createGeneralDetailElement(rootElement);
+           FieldObservationGeneralElementController detailElement = formFactory.createFieldObservationGeneralElementControllerWizard(rootElement);
                detailElement.setEntity(getEntity());
                checkComplete();
                return detailElement;
index f7d40c6d800f3b35385f157d575da28ca358c4db..1b9cf9b88febc1392ad6207a3ca9bab6e21f362a 100644 (file)
@@ -13,12 +13,11 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
-import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
@@ -34,18 +33,16 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 public class GatheringEventDetailElement extends
                AbstractCdmDetailElement<DerivedUnitFacade> {
 
-       private NumberWithLabelElement number_absoluteElevationError;
+       private GatheringEventUnitElement element_elevation;
 
-       private NumberWithLabelElement number_absoluteElevationMinimum;
-
-       private NumberWithLabelElement number_absoluteElevationMaximum;
+       private GatheringEventUnitElement element_distToGround;
+       
+       private GatheringEventUnitElement element_distToWater;
+       
+       private MinMaxTextSection section_minMaxText;
 
        private TextWithLabelElement text_collectingMethod;
 
-       private NumberWithLabelElement number_distanceToGround;
-
-       private NumberWithLabelElement number_distanceToWaterSurface;
-
        private TextWithLabelElement text_gatheringEventDescription;
 
        private CollectingAreasDetailSection section_collectingAreas;
@@ -67,64 +64,40 @@ public class GatheringEventDetailElement extends
                super(formFactory, formElement);
        }
 
-    /** {@inheritDoc} */
-    @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
-        // collectingArea
-        number_absoluteElevationError = formFactory.createIntegerTextWithLabelElement(formElement, "Elevation Error", entity.getAbsoluteElevationError(), style);
-        number_absoluteElevationMinimum = formFactory.createIntegerTextWithLabelElement(formElement, "Elevation Minimum (m)", entity.getAbsoluteElevationMinimum(), style);
-        number_absoluteElevationMaximum = formFactory.createIntegerTextWithLabelElement(formElement, "Elevation Maximum (m)", entity.getAbsoluteElevationMaximum(), style);
+       /** {@inheritDoc} */
+       @Override
+       protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+               
+
+               // collectingArea
+
 
         text_collectingMethod = formFactory.createTextWithLabelElement(formElement, "Collecting Method", entity.getCollectingMethod(), style);
 
-        number_distanceToGround = formFactory.createIntegerTextWithLabelElement(formElement, "Distance To Ground (m)", entity.getDistanceToGround(), style);
-        number_distanceToWaterSurface = formFactory.createIntegerTextWithLabelElement(formElement, "Distance To Water Surface (m)", entity.getDistanceToWaterSurface(), style);
-        // exactLocation
-        text_gatheringEventDescription = formFactory.createTextWithLabelElement(formElement, "Gathering Event Description", entity.getGatheringEventDescription(), style);
 
+               // exactLocation
+        text_gatheringEventDescription = formFactory.createTextWithLabelElement(formElement, "Gathering Event Description", entity.getGatheringEventDescription(), style);
+               element_elevation = formFactory.createGatheringEventUnitElement(
+                               formElement, "Elevation : ", entity, MinMaxTextSection.UnitType.ELEVATION,  style);
+               
+               
+               element_distToGround = formFactory.createGatheringEventUnitElement(
+                               formElement, "Dist. To Ground : ", entity, MinMaxTextSection.UnitType.DIST_TO_GROUND,  style);
+               
+               element_distToWater = formFactory.createGatheringEventUnitElement(
+                               formElement, "Dist. To Water : ", entity, MinMaxTextSection.UnitType.DIST_TO_WATER,  style);
+               
         section_collectingAreas = formFactory.createCollectingAreasDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
         section_collectingAreas.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-        section_collectingAreas.setEntity(entity);
-    }
+               section_collectingAreas.setEntity(entity);
+
+       }
 
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               if (eventSource == number_absoluteElevationError) {
-                       getEntity().setAbsoluteElevationError(
-                                       number_absoluteElevationError.getInteger());
-               } else if (eventSource == number_absoluteElevationMinimum) {
-                       try {
-                               getEntity().setAbsoluteElevationRange(
-                                               number_absoluteElevationMinimum.getInteger(),
-                                               number_absoluteElevationMaximum.getInteger());
-                               number_absoluteElevationMinimum
-                                               .setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
-                       } catch (IllegalArgumentException e) {
-                               number_absoluteElevationMinimum
-                                               .setBackground(getColor(Resources.COLOR_PARSE_ERROR));
-                               AbstractUtility.warn(getClass(), e.getLocalizedMessage());
-                       }
-               } else if (eventSource == number_absoluteElevationMaximum) {
-                       try {
-                               getEntity().setAbsoluteElevationRange(
-                                               number_absoluteElevationMinimum.getInteger(),
-                                               number_absoluteElevationMaximum.getInteger());
-                               number_absoluteElevationMaximum
-                                               .setBackground(getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
-                       } catch (IllegalArgumentException e) {
-                               number_absoluteElevationMaximum
-                                               .setBackground(getColor(Resources.COLOR_PARSE_ERROR));
-                               AbstractUtility.warn(getClass(), e.getLocalizedMessage());
-                       }
-               } else if (eventSource == text_collectingMethod) {
+               if (eventSource == text_collectingMethod) {
                        getEntity().setCollectingMethod(text_collectingMethod.getText());
-               } else if (eventSource == number_distanceToGround) {
-                       getEntity().setDistanceToGround(
-                                       number_distanceToGround.getInteger());
-               } else if (eventSource == number_distanceToWaterSurface) {
-                       getEntity().setDistanceToWaterSurface(
-                                       number_distanceToWaterSurface.getInteger());
                } else if (eventSource == text_gatheringEventDescription) {
                        getEntity().setGatheringEventDescription(
                                        text_gatheringEventDescription.getText());
index 44c86337ced629fe37cc2d9cfe7c1d8e52ea6510..d82747e296df55987b4aba14b687bc9e4891c676 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
@@ -12,9 +12,10 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.GatheringEventDetailsElementController;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
@@ -22,14 +23,14 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @created Dec 15, 2010
  * @version 1.0
  */
-public class GatheringEventWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
+public class GatheringEventDetailsWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
 
        /**
         * @param formFactory
         * @param conversation
         * @param entity
         */
-       public GatheringEventWizardPage(CdmFormFactory formFactory,
+       public GatheringEventDetailsWizardPage(CdmFormFactory formFactory,
                        ConversationHolder conversation, DerivedUnitFacade entity) {
                super(formFactory, conversation, entity);
                setTitle("Gathering Event Details");
@@ -49,7 +50,7 @@ public class GatheringEventWizardPage extends AbstractCdmEntityWizardPage<Derive
         */
        @Override
        public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
-               GatheringEventDetailElement detailElement = formFactory.createGatheringEventDetailElement(rootElement);
+           GatheringEventDetailsElementController detailElement = formFactory.createGatheringEventDetailsElementController(rootElement);
                detailElement.setEntity(getEntity());
                return detailElement;
        }
index c62ef9331024697be1a2fcb4a8a563891f8cd2e6..bdfaf8d35c7d1cb22cae43bf809eb664fdf9b70c 100644 (file)
@@ -15,8 +15,10 @@ import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.PointElement;
@@ -35,7 +37,7 @@ public class GeneralDetailElement extends
                AbstractCdmDetailElement<DerivedUnitFacade> {
 
        private ToggleableTextElement toggleableText_titleCache;
-
+       private EnumComboElement<SpecimenOrObservationType> combo_specorobstype;
        private EntitySelectionElement<NamedArea> selection_country;
        private LanguageStringWithLabelElement languageText_locality;
        private PointElement element_point;
@@ -68,7 +70,10 @@ public class GeneralDetailElement extends
                toggleableText_titleCache = formFactory.createToggleableTextField(
                                formElement, "Title Cache", entity.getTitleCache(),
                                entity.isProtectedTitleCache(), style);
-
+               combo_specorobstype = formFactory
+                               .createEnumComboElement(SpecimenOrObservationType.class,
+                                               formElement, style);
+               combo_specorobstype.setSelection(entity.getType());
                selection_country = formFactory.createSelectionElement(NamedArea.class, getConversationHolder(),
                                formElement, "Country",
                                entity.getCountry(), EntitySelectionElement.NOTHING, style);
@@ -77,9 +82,6 @@ public class GeneralDetailElement extends
                                                entity.getLocality(), style);
                element_point = formFactory.createPointElement(formElement,
                                entity.getExactLocation(), style);
-               number_elevation = formFactory.createIntegerTextWithLabelElement(
-                               formElement, "Absolute Elevation (m)",
-                               entity.getAbsoluteElevation(), style);
                element_date = formFactory.createTimePeriodElement(formElement, "Date",
                                entity.getGatheringPeriod(), style);
                selection_collector = formFactory
@@ -132,6 +134,8 @@ public class GeneralDetailElement extends
                        getEntity().setCollection(selection_collection.getSelection());
                } else if (eventSource == text_accessionNumber) {
                        getEntity().setAccessionNumber(text_accessionNumber.getText());
+               } else if (eventSource == combo_specorobstype) {
+                       getEntity().setType(combo_specorobstype.getSelection());
                }
 
                if (eventSource != toggleableText_titleCache) {
index d2b3e7276464dd369cac52513469344626542902..56b5bbf68d116bf23f70ce53c22ae75f9a5bbd92 100644 (file)
@@ -14,8 +14,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 021e68273a1e4a55b9d9ee22fb117bed846cbe8f..7a445851207c92064ba24bbcdd1ae5aa49b0eb78 100644 (file)
@@ -13,9 +13,9 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index 157480d4c45405d32c992c98183c3e82ca97061b..c74cc9adc1760854930fcc44daa4a7aef553d245 100644 (file)
@@ -15,8 +15,9 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -57,7 +58,7 @@ public class SourceCollectionDetailSection extends
        /** {@inheritDoc} */
        @Override
        public IdentifiableSource createNewElement() {
-               return IdentifiableSource.NewInstance();
+               return IdentifiableSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);               
        }
 
        /* (non-Javadoc)
index 75c131ed073947b9428f34790f61b741342c57f0..d78132b9a925d3b9e93fd30157ce57bea6be2283 100644 (file)
@@ -12,11 +12,10 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
-import eu.etaxonomy.cdm.model.occurrence.Specimen;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
@@ -30,9 +29,9 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @version 1.0
  */
 public class SpecimenCollectionDetailElement extends
-               AbstractEntityCollectionElement<Specimen> {
+               AbstractEntityCollectionElement<DerivedUnit> {
 
-       private EntitySelectionElement<DerivedUnitBase> selection_derivedUnit;
+       private EntitySelectionElement<DerivedUnit> selection_derivedUnit;
 
        /**
         * <p>
@@ -53,7 +52,7 @@ public class SpecimenCollectionDetailElement extends
         *            a int.
         */
        public SpecimenCollectionDetailElement(CdmFormFactory formFactory,
-                       AbstractFormSection section, Specimen entity,
+                       AbstractFormSection section, DerivedUnit entity,
                        SelectionListener removeListener, int style) {
                super(formFactory, section, entity, removeListener, null, style);
        }
@@ -67,7 +66,7 @@ public class SpecimenCollectionDetailElement extends
         */
        /** {@inheritDoc} */
        @Override
-       public void setEntity(Specimen entity) {
+       public void setEntity(DerivedUnit entity) {
                this.entity = entity;
                selection_derivedUnit.setEntity(entity);
        }
@@ -83,7 +82,7 @@ public class SpecimenCollectionDetailElement extends
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_derivedUnit = formFactory
-                               .createSelectionElement(DerivedUnitBase.class,
+                               .createSelectionElement(DerivedUnit.class,
                                                getConversationHolder(), element, "Derived Unit", null,
                                                EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE, style);
        }
@@ -99,7 +98,7 @@ public class SpecimenCollectionDetailElement extends
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == selection_derivedUnit) {
-                       this.setEntity((Specimen) selection_derivedUnit.getSelection());
+                       this.setEntity((DerivedUnit) selection_derivedUnit.getSelection());
                }
        }
 
index d4c0910df4779a4387ee392848146975890b6edb..aee551083a841660c225503963ca4117cecd8ce1 100644 (file)
@@ -14,9 +14,10 @@ import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.model.occurrence.Specimen;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
@@ -27,7 +28,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
  * @version 1.0
  */
 public class SpecimenCollectionDetailSection extends
-               AbstractEntityCollectionSection<DerivedUnitFacade, Specimen> {
+               AbstractEntityCollectionSection<DerivedUnitFacade, DerivedUnit> {
 
        /**
         * <p>Constructor for SpecimenCollectionDetailSection.</p>
@@ -47,7 +48,7 @@ public class SpecimenCollectionDetailSection extends
         */
        /** {@inheritDoc} */
        @Override
-       public Collection<Specimen> getCollection(DerivedUnitFacade entity) {
+       public Collection<DerivedUnit> getCollection(DerivedUnitFacade entity) {
                return entity.getDuplicates();
        }
 
@@ -56,8 +57,8 @@ public class SpecimenCollectionDetailSection extends
         */
        /** {@inheritDoc} */
        @Override
-       public Specimen createNewElement() {
-               return Specimen.NewInstance();
+       public DerivedUnit createNewElement() {         
+               return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);            
        }
 
        /* (non-Javadoc)
@@ -65,7 +66,7 @@ public class SpecimenCollectionDetailSection extends
         */
        /** {@inheritDoc} */
        @Override
-       public void addElement(Specimen element) {
+       public void addElement(DerivedUnit element) {
                getEntity().addDuplicate(element);
        }
 
@@ -74,7 +75,7 @@ public class SpecimenCollectionDetailSection extends
         */
        /** {@inheritDoc} */
        @Override
-       public void removeElement(Specimen element) {
+       public void removeElement(DerivedUnit element) {
                getEntity().removeDuplicate(element);
        }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenDetailsWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenDetailsWizardPage.java
new file mode 100644 (file)
index 0000000..1dcd7c7
--- /dev/null
@@ -0,0 +1,56 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.occurrence;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenDetailsElementController;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 30.08.2013
+ *
+ */
+public class SpecimenDetailsWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
+
+    /**
+     * @param formFactory
+     * @param conversation
+     * @param entity
+     */
+    public SpecimenDetailsWizardPage(CdmFormFactory formFactory,
+            ConversationHolder conversation, DerivedUnitFacade entity) {
+        super(formFactory, conversation, entity);
+        setTitle("Specimen Details");
+        setPageComplete(true);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
+     */
+    @Override
+    protected void checkComplete() {
+        setPageComplete(true);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
+     */
+    @Override
+    public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
+        SpecimenDetailsElementController detailElement = formFactory.createSpecimenDetailsElementController(rootElement);
+        detailElement.setEntity(getEntity());
+        return detailElement;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenGeneralWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenGeneralWizardPage.java
new file mode 100644 (file)
index 0000000..c33b784
--- /dev/null
@@ -0,0 +1,56 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.occurrence;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationGeneralElementController;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @date 02.09.2013
+ *
+ */
+public class SpecimenGeneralWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
+
+    /**
+     * @param formFactory
+     * @param conversation
+     * @param entity
+     */
+    public SpecimenGeneralWizardPage(CdmFormFactory formFactory,
+            ConversationHolder conversation, DerivedUnitFacade entity) {
+        super(formFactory, conversation, entity);
+        setTitle("Specimen");
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
+     */
+    @Override
+    protected void checkComplete() {
+        setPageComplete(true);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
+     */
+    @Override
+    public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
+        FieldObservationGeneralElementController detailElement = formFactory.createSpecimenGeneralElementControllerWizard(rootElement);
+        detailElement.setEntity(getEntity());
+        checkComplete();
+        return detailElement;
+    }
+}
index 977e56d64c9a29b1f5972074356fa2243d183275..b97620569ea308eaea814b2ac03ed11e45ec1e73 100644 (file)
@@ -12,8 +12,8 @@ package eu.etaxonomy.taxeditor.ui.section.reference;
 
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index 33cd1e7b9a856e4f6a77afc8ca726dea2c40ea40..d7756a1ee92ba561deb1f810d3e19969dc24fe59 100644 (file)
@@ -17,8 +17,8 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
index cf7035e835fe603451779d3f07815447b5e30f9a..667cc43cc578e1aa103faea76cee9f5e5aefd735 100644 (file)
@@ -25,10 +25,10 @@ import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
 import eu.etaxonomy.cdm.model.reference.ReferenceType;
 import eu.etaxonomy.taxeditor.model.AuthorHelper;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IErrorIntolerableElement;
 import eu.etaxonomy.taxeditor.ui.element.IExceptionHandler;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
index ec35e1d9172b6857694f470130054ebc41fcae62..a667cf9cc4fed19b93a93447770beeec5f2cf24f 100644 (file)
@@ -18,8 +18,8 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
index a8bdfe4d0d4f5bdca50a1dc84334d12dbd361c83..3c34ff42d623bf56017a89ec1953f82f30b67a71 100644 (file)
@@ -14,10 +14,10 @@ import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IExceptionHandler;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
index e004ba3f3ba908682ffb4d47da0599c8f97d9c8f..1d6c70e03bdf829550a595a615afe3441bd5c307 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -13,9 +13,11 @@ package eu.etaxonomy.taxeditor.ui.section.supplemental;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.OriginalSourceBase;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 
 /**
@@ -26,6 +28,7 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
  * @version 1.0
  */
 public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase> extends AbstractReferencedEntityElement<T> {
+       protected EnumComboElement<OriginalSourceType> combo_origsourcetype;
        protected TextWithLabelElement text_idInSource;
        protected TextWithLabelElement text_idNamespace;
 
@@ -45,17 +48,20 @@ public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase
                        int style) {
                super(formFactory, section, element, removeListener, style);
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void init() {
                super.init();
                setHasOriginalNameString(true);
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
+               combo_origsourcetype = formFactory
+                               .createEnumComboElement(OriginalSourceType.class,
+                                               formElement, style);
                text_idInSource = formFactory.createTextWithLabelElement(formElement, "Id In Source", null, style);
                text_idNamespace = formFactory.createTextWithLabelElement(formElement, "ID Namespace", null, style);
                super.createControls(formElement, style);
index c77b5379e1ee2abed1c92d242b0a76eb25bc2a72..41636ffd10533307a4aa3d31c79d5fc9165a6124 100644 (file)
@@ -15,9 +15,9 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index 760abcf48c6cd7fe5ba68beda8a3ad61eb2d5373..f64d119fa01c740af4d97d1a45decf504e7d454d 100644 (file)
@@ -7,10 +7,10 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.AnnotationType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
index 2a7fff5d2bdfde8d75d2ea6afdaa4cbf52779539..c71b12a394bb310453e4ad6c41fd9f4011cddef3 100644 (file)
@@ -11,8 +11,8 @@ import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.AnnotationType;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 6cc79a1bbb7575d6dce31f440fdf68179e1f1210..15d8867f6ca2b08c4a4629a9045d459f9293c0ef 100644 (file)
@@ -10,9 +10,9 @@
 package eu.etaxonomy.taxeditor.ui.section.supplemental;\r
 \r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;\r
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;\r
 \r
index a03089387b08cd5eab81116a1e6d11ebdde371ba..1f37e24e73dbf53ad59aaa90284b3d9d101cfa05 100644 (file)
@@ -10,9 +10,9 @@
 package eu.etaxonomy.taxeditor.ui.section.supplemental;\r
 \r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 \r
 /**\r
  * @author l.morris\r
index 28ad8a039b0e2eedd6dc5cec3c3dfc5784b95491..e819547d12b7db28baca521f6d6d9e48a01947cd 100644 (file)
@@ -7,9 +7,9 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.Credit;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index 87738015ca12f384bc271a704d290a61ec6292a7..b512ed3f608f6fc0e7a3dcb6ca79cd6e80d6cef4 100644 (file)
@@ -5,12 +5,11 @@ package eu.etaxonomy.taxeditor.ui.section.supplemental;
 
 import java.util.Collection;
 
-
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Credit;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 184aa6f75608348291bda195c8f48be3d3f7959d..84db702e99e9a40892aef9a48a95dee755c41e72 100644 (file)
@@ -8,10 +8,10 @@ import org.eclipse.swt.events.SelectionListener;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.Extension;
 import eu.etaxonomy.cdm.model.common.ExtensionType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
index 92712b3d8ad81becaab073a90688d79c0b3e23f7..aff21c4a6e477e1f4b5d59ca5a3eb3efa5340ec1 100644 (file)
@@ -5,12 +5,11 @@ package eu.etaxonomy.taxeditor.ui.section.supplemental;
 
 import java.util.Collection;
 
-
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Extension;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 22c5ce664e5698596803359ef15f8e42e3677e51..602138bc33b5f3b4a67fef78d3dc9f6df23092c2 100644 (file)
@@ -7,9 +7,9 @@ package eu.etaxonomy.taxeditor.ui.section.supplemental;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * <p>HeadlineSection class.</p>
index f21ad121d5e8f125f47d6d7d8d18c55b11eacc51..8d0bcd706de968d4eb81f4b5ce2000ae7a9a9a80 100644 (file)
@@ -6,9 +6,9 @@ package eu.etaxonomy.taxeditor.ui.section.supplemental;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * <p>IdentifiableSourceElement class.</p>
@@ -55,6 +55,7 @@ public class IdentifiableSourceElement extends AbstractOriginalSourceElement<Ide
 
                selection_reference.setEntity(entity.getCitation());
                text_referenceDetail.setText(entity.getCitationMicroReference());
+               combo_origsourcetype.setSelection(entity.getType());
                if(hasOriginalNameString()) text_originaleNameString.setText(entity.getOriginalNameString());
        }       
        
@@ -75,6 +76,8 @@ public class IdentifiableSourceElement extends AbstractOriginalSourceElement<Ide
                }
                else if(eventSource == text_originaleNameString){
                        getEntity().setOriginalNameString(text_originaleNameString.getText());
+               } else if(eventSource == combo_origsourcetype){
+                       getEntity().setType(combo_origsourcetype.getSelection());
                }
        }
 }
index 62b04b7e8f7eca49dad51a5494faba106f7c33da..aa50c31ea5b5b8e561f09a881421f88fc48aca77 100644 (file)
@@ -7,11 +7,11 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
index 3906eb36896989c3e65bdeb5ffe8d586fdb8dee5..ffc3f10a2b37db0062f764bb674006014e2962ba 100644 (file)
@@ -5,12 +5,11 @@ package eu.etaxonomy.taxeditor.ui.section.supplemental;
 
 import java.util.Collection;
 
-
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index 376afb8ec480326363efd3e1e7a9cf01ae5adf22..49617ee1b92ce676ccd9d6995cbf3a1b259eee62 100644 (file)
@@ -7,11 +7,11 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.media.RightsTerm;
+import eu.etaxonomy.cdm.model.media.RightsType;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
@@ -27,7 +27,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  */
 public class RightsElement extends AbstractEntityCollectionElement<Rights> {
 
-       private TermComboElement<RightsTerm> combo_rightsType;
+       private TermComboElement<RightsType> combo_rightsType;
        private EntitySelectionElement<AgentBase> selection_agent;
        private TextWithLabelElement text;
        
@@ -67,7 +67,7 @@ public class RightsElement extends AbstractEntityCollectionElement<Rights> {
        @Override
        public void createControls(ICdmFormElement element, int style) {
                combo_rightsType = formFactory.createTermComboElement(
-                               RightsTerm.class, this, "Rights Type", null, style);
+                               RightsType.class, this, "Rights Type", null, style);
                selection_agent = formFactory.createSelectionElement(
                                AgentBase.class, getConversationHolder(), this, "Agent",
                                null, EntitySelectionElement.ALL, style);
index 02d1b4eba00c7d75c31c947d7f93fb369624f6ba..98601a4850c1933ddeea7e795de7c38e57c99c94 100644 (file)
@@ -8,8 +8,8 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.media.Rights;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index a176ae026cebd6531277cc66fd3f899d5ffce591..ca8426501fd9f37f5b970fda5cb82842028963a7 100644 (file)
@@ -8,9 +8,12 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+
+import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog;;
 
 /**
  * <p>SourceSection class.</p>
@@ -36,7 +39,7 @@ public class SourceSection extends AbstractEntityCollectionSection<IIdentifiable
        /** {@inheritDoc} */
        @Override
        public IdentifiableSource createNewElement() {
-               return IdentifiableSource.NewInstance();
+               return IdentifiableSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
        }
 
        /** {@inheritDoc} */
index 353a1dae300a6190e657c48567561b5244159ab1..7dce82ea49604e712acaa58d6f569d7109556aaf 100644 (file)
@@ -17,12 +17,11 @@ import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.common.VersionableEntity;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
-import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 
 /**
  * <p>VersionElement class.</p>
index 6e51fbe79913046ba7e281d09de1d52976c42fa7..c41b22ae1a1fe4c90224f095fea2079e2c6081fd 100644 (file)
@@ -11,9 +11,9 @@
 package eu.etaxonomy.taxeditor.ui.section.supplemental;
 
 import eu.etaxonomy.cdm.model.common.VersionableEntity;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * <p>VersionSection class.</p>
index ae5aa351493c99fcf0ec47cebe4ecf74280d7079..0647ab1cccd727d323a77499e7b7fddf9b034b9f 100644 (file)
@@ -19,9 +19,9 @@ import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * <p>ParsingMessageElement class.</p>
index bf989c41c3a3bbe6a703b7ddfea5845ad565a913..ab8400bcb039686d68beea9bd01b2d927683f13a 100644 (file)
@@ -19,8 +19,8 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
index ad76f3bf5c9cd2b605cc2725c3647eb8f2239c47..c166c9d2a1c2f31c544b96816a715411058033d1 100644 (file)
@@ -18,9 +18,9 @@ import org.eclipse.swt.SWT;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index e0a5d92eb6cfed6cc58c454d04f405c70ccd7cc7..db4259714f6f34019c6b8beff52a892616487092 100644 (file)
@@ -15,8 +15,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
index b28944f2a4d22b80d7559f0b62fcc7cfeca79e96..4331ba49b827071e31d015f7aabc43ae5518fad6 100644 (file)
@@ -13,9 +13,9 @@ package eu.etaxonomy.taxeditor.ui.section.taxon;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index 7b04da49ee4a53311788e35f97fabc2f7aa40265..ddb0bf7904c32fb4ce0ad3d46cfbbd1734585c9e 100644 (file)
@@ -15,10 +15,10 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index c787ad00d6c7ab31bd01226e64194ffe0c05381e..22fbdff0ddb58447bfdc6ba90a678a012ac44ed9 100644 (file)
@@ -13,8 +13,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index f611e6bb9b8b66dc02088693d16dff616feffbfa..47952767044f15c01c7180770e77f3c5cacf8433 100644 (file)
@@ -3,9 +3,9 @@ package eu.etaxonomy.taxeditor.ui.section.user;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.Group;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
index 75f83615adc1b7ccf7d2f26f9589c856d4b34484..7846a03d6add9c9a76c66577f6a9a959a4778dce 100644 (file)
@@ -8,9 +8,9 @@ import java.util.Collection;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.GroupSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
index ad14db124aaa8cbd95178152583c78e3c9411297..438c860e4416d493cc32f1503a86fb51f7395efa 100644 (file)
@@ -6,9 +6,9 @@ package eu.etaxonomy.taxeditor.ui.section.user;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
index a80b492c070a74a1f27225c8fbc7e20506714615..ca02496c09d95dcc07ffae6f5bf406a53f85f1cd 100644 (file)
@@ -10,8 +10,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
index 972b92dc637a70813541891d4cbd349d35f86717..3f358d271ce06e585fdaa2fc86052cb60f23446c 100644 (file)
@@ -5,9 +5,9 @@ package eu.etaxonomy.taxeditor.ui.section.user;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
index 32d02813fde7407d31e8f174597c2776627c0b7f..566d710cce553a6bf225685241c4b2e23c4d3f5b 100644 (file)
@@ -1,8 +1,8 @@
 /**\r
 * Copyright (C) 2011 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
@@ -14,29 +14,31 @@ import java.util.List;
 import java.util.ListIterator;\r
 import java.util.Map;\r
 import java.util.Set;\r
+\r
 import org.apache.log4j.Logger;\r
 import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.events.SelectionListener;\r
+\r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.LanguageString;\r
 import eu.etaxonomy.cdm.model.common.Marker;\r
 import eu.etaxonomy.cdm.model.description.CategoricalData;\r
-import eu.etaxonomy.cdm.model.description.Modifier;\r
 import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.cdm.model.description.StateData;\r
 import eu.etaxonomy.taxeditor.editor.UsageTermCollection;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.TermStore;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 \r
\r
+\r
 /**\r
  * The context manager mediates context start/stop and workbench shutdowns to all registered listeners.\r
  *\r
- * @author a.theys     \r
+ * @author a.theys\r
  * @created mar 13, 2012\r
  * @version 1.0\r
  */\r
@@ -48,10 +50,10 @@ public class UseRecordDetailElement extends
 \r
        private TermComboElement<State> combo_UseCategory;\r
        private TermComboElement<State> combo_UseSubCategory;\r
-       private TermComboElement<Modifier> combo_PlantPart;\r
-       private TermComboElement<Modifier> combo_Country;\r
-       private TermComboElement<Modifier> combo_HumanGroup;\r
-       private TermComboElement<Modifier> combo_EthnicGroup;\r
+       private TermComboElement<DefinedTerm> combo_PlantPart;\r
+       private TermComboElement<DefinedTerm> combo_Country;\r
+       private TermComboElement<DefinedTerm> combo_HumanGroup;\r
+       private TermComboElement<DefinedTerm> combo_EthnicGroup;\r
 \r
        public UseRecordDetailElement(CdmFormFactory formFactory,\r
                        ICdmFormElement formElement) {\r
@@ -66,19 +68,19 @@ public class UseRecordDetailElement extends
                combo_UseCategory = formFactory.createTermComboElement(State.class,     this, UsageTermCollection.useCategoryVocabularyLabel, null, style);\r
                combo_UseCategory.addSelectionListener(this);\r
                combo_UseSubCategory = formFactory.createTermComboElement(State.class, this, UsageTermCollection.useSubCategoryVocabularyLabel, null, style);\r
-               combo_PlantPart = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.plantPartLabel, null, style);\r
-               combo_HumanGroup = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.humanGroupLabel, null, style);\r
+               combo_PlantPart = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.plantPartLabel, null, style);\r
+               combo_HumanGroup = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.humanGroupLabel, null, style);\r
                combo_HumanGroup.addSelectionListener(this);\r
-               combo_EthnicGroup = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.ethnicGroupLabel, null, style);\r
-               combo_Country   = formFactory.createTermComboElement(Modifier.class, this, UsageTermCollection.countryLabel, null, style);\r
-               \r
+               combo_EthnicGroup = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.ethnicGroupLabel, null, style);\r
+               combo_Country   = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.countryLabel, null, style);\r
+\r
 \r
                List<State> termsUseCategory = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false));\r
                combo_UseCategory.setTerms(termsUseCategory);\r
                combo_UseCategory.setSelection(stateSelection(UsageTermCollection.useCategoryVocabularyLabel));\r
-               \r
+\r
                List<State> termsSubCategory = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false), combo_UseCategory.getSelection());\r
-               \r
+\r
                if (termsSubCategory != null) {\r
                        combo_UseSubCategory.setTerms(termsSubCategory);\r
                        combo_UseSubCategory.setSelection(stateSelection(UsageTermCollection.useSubCategoryVocabularyLabel));\r
@@ -87,20 +89,20 @@ public class UseRecordDetailElement extends
                else {\r
                        combo_UseSubCategory.setEnabled(false);\r
                }\r
-               \r
-               List<Modifier> plantPartsToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.plantPartLabel);\r
+\r
+               List<DefinedTerm> plantPartsToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.plantPartLabel);\r
                combo_PlantPart.setTerms(plantPartsToAdd);\r
                combo_PlantPart.setSelection(modifierSelection(UsageTermCollection.plantPartLabel));\r
-               \r
-               List<Modifier> countriesToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.countryLabel);\r
+\r
+               List<DefinedTerm> countriesToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.countryLabel);\r
                combo_Country.setTerms(countriesToAdd);\r
                combo_Country.setSelection(modifierSelection(UsageTermCollection.countryLabel));\r
-               \r
-               List<Modifier> humanGroupToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.humanGroupLabel);\r
+\r
+               List<DefinedTerm> humanGroupToAdd = setModifierComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), UsageTermCollection.humanGroupLabel);\r
                combo_HumanGroup.setTerms(humanGroupToAdd);\r
                combo_HumanGroup.setSelection(modifierSelection(UsageTermCollection.humanGroupLabel));\r
-               \r
-               List<Modifier> ethnicGroupToAdd = setEthnicGroupComboTerms(TermStore.getTerms(Modifier.class, null, false), combo_HumanGroup.getSelection());\r
+\r
+               List<DefinedTerm> ethnicGroupToAdd = setEthnicGroupComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), combo_HumanGroup.getSelection());\r
                if (ethnicGroupToAdd != null) {\r
                        combo_EthnicGroup.setTerms(ethnicGroupToAdd);\r
                        combo_EthnicGroup.setSelection(modifierSelection(UsageTermCollection.ethnicGroupLabel));\r
@@ -116,9 +118,9 @@ public class UseRecordDetailElement extends
         * @param comboCategory\r
         * @return\r
         */\r
-       private Modifier modifierSelection(String comboCategory) {\r
+       private DefinedTerm modifierSelection(String comboCategory) {\r
                if(!getEntity().getModifiers().isEmpty()) {\r
-                       for (Modifier modifier : getEntity().getModifiers()) {\r
+                       for (DefinedTerm modifier : getEntity().getModifiers()) {\r
                                if(GetVocabularyType(modifier, comboCategory)) {\r
                                        return modifier;\r
                                }\r
@@ -127,17 +129,17 @@ public class UseRecordDetailElement extends
                        return null;\r
                }\r
                return null;\r
-               \r
+\r
        }\r
-       \r
+\r
        /**\r
         * Returns the selected state\r
         * @param comboCategory\r
         * @return\r
         */\r
        private State stateSelection(String comboCategory) {\r
-               if (!getEntity().getStates().isEmpty()) {\r
-                       for (StateData statedata : getEntity().getStates()) {\r
+               if (!getEntity().getStateData().isEmpty()) {\r
+                       for (StateData statedata : getEntity().getStateData()) {\r
                                if (statedata.getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {\r
                                        String testString = statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText();\r
                                        if(testString.equals(comboCategory)) {\r
@@ -145,25 +147,25 @@ public class UseRecordDetailElement extends
                                                        return statedata.getState();\r
                                                }\r
                                        }\r
-                               }                               \r
+                               }\r
                        }\r
                }\r
                else {\r
                        return null;\r
                }\r
                return null;\r
-               \r
+\r
        }\r
-       \r
+\r
        /**\r
         * This function sets the combo terms (Besides EthnicGroup\r
         * @param listOfTerms\r
         * @param modType\r
         * @return\r
         */\r
-       private List<Modifier> setModifierComboTerms(List<Modifier> listOfTerms, String modType) {\r
-               List<Modifier> termsToAdd = new ArrayList<Modifier>();\r
-               for (Modifier term : listOfTerms) {\r
+       private List<DefinedTerm> setModifierComboTerms(List<DefinedTerm> listOfTerms, String modType) {\r
+               List<DefinedTerm> termsToAdd = new ArrayList<DefinedTerm>();\r
+               for (DefinedTerm term : listOfTerms) {\r
 \r
                        if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(modType))) {\r
                                termsToAdd.add(term);\r
@@ -172,10 +174,10 @@ public class UseRecordDetailElement extends
                                termsToAdd.add(term);\r
                        }\r
                }\r
-               \r
+\r
                return termsToAdd;\r
        }\r
-       \r
+\r
 \r
        /**\r
         * This function sets the Use Category combo term\r
@@ -207,7 +209,7 @@ public class UseRecordDetailElement extends
                        State selectedUseCategory) {\r
                List<State> termsToAdd = new ArrayList<State>();\r
                if (combo_UseCategory.getSelection() != null) {\r
-                       \r
+\r
                        for (State term : listOfTerms) {\r
                                if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(selectedUseCategory.getTitleCache()))) {\r
                                        termsToAdd.add(term);\r
@@ -215,11 +217,11 @@ public class UseRecordDetailElement extends
                                else if ((term.getVocabulary() !=null) && (term.getVocabulary().getTitleCache().equals(selectedUseCategory.getTitleCache()))) {\r
                                        termsToAdd.add(term);\r
                                }\r
-       \r
+\r
                        }\r
                }\r
-               else if (!getEntity().getStates().isEmpty()) {\r
-                       for (StateData stateData : getEntity().getStates()) {\r
+               else if (!getEntity().getStateData().isEmpty()) {\r
+                       for (StateData stateData : getEntity().getStateData()) {\r
                                if (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {\r
                                        if ((stateData.getState() != null) && (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()).getText() == UsageTermCollection.useCategoryVocabularyLabel)) {\r
                                                for (State term : listOfTerms) {\r
@@ -229,33 +231,33 @@ public class UseRecordDetailElement extends
                                                                termsToAdd.add(term);\r
                                                        }\r
                                                }\r
-                                               \r
+\r
                                        }\r
                                }\r
                        }\r
-                       \r
+\r
                }\r
-                       \r
+\r
                else {\r
                        return null;\r
                }\r
 \r
                return termsToAdd;\r
        }\r
-       \r
-       \r
+\r
+\r
        /**\r
         * This function sets the EthnicGroup combo term\r
         * @param listOfTerms\r
         * @param selectedHumangroup\r
         * @return\r
         */\r
-       private List<Modifier> setEthnicGroupComboTerms(List<Modifier> listOfTerms,\r
-                       Modifier selectedHumangroup) {\r
-               List<Modifier> termsToAdd = new ArrayList<Modifier>();\r
+       private List<DefinedTerm> setEthnicGroupComboTerms(List<DefinedTerm> listOfTerms,\r
+                       DefinedTerm selectedHumangroup) {\r
+               List<DefinedTerm> termsToAdd = new ArrayList<DefinedTerm>();\r
                if (combo_HumanGroup.getSelection() != null) {\r
-                       for (Modifier term : listOfTerms) {\r
-       \r
+                       for (DefinedTerm term : listOfTerms) {\r
+\r
                                if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(selectedHumangroup.getTitleCache()))) {\r
                                        termsToAdd.add(term);\r
                                }\r
@@ -265,18 +267,18 @@ public class UseRecordDetailElement extends
                        }\r
                }\r
                else if (!getEntity().getModifiers().isEmpty()) {\r
-                       for (Modifier modifier : getEntity().getModifiers()) {\r
+                       for (DefinedTerm modifier : getEntity().getModifiers()) {\r
                                if (modifier.getMarkers() != null) {\r
                                        for (Marker marker : modifier.getMarkers()) {\r
                                                if(marker.getMarkerType().getTitleCache().equals(UsageTermCollection.humanGroupLabel)) {\r
-                                                       for (Modifier term : listOfTerms) {\r
+                                                       for (DefinedTerm term : listOfTerms) {\r
                                                                if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(modifier.getTitleCache()))) {\r
                                                                        termsToAdd.add(modifier);\r
                                                                } else if ((term.getVocabulary() != null) && (term.getVocabulary().getTitleCache().equals(modifier.getTitleCache()))) {\r
                                                                        termsToAdd.add(modifier);\r
                                                                }\r
                                                        }\r
-                                                       \r
+\r
                                                }\r
                                        }\r
                                }\r
@@ -284,11 +286,11 @@ public class UseRecordDetailElement extends
                } else {\r
                        return null;\r
                }\r
-               \r
+\r
                return termsToAdd;\r
        }\r
 \r
-       \r
+\r
        /** {@inheritDoc} */\r
        @Override\r
        public void handleEvent(Object eventSource) {\r
@@ -296,17 +298,17 @@ public class UseRecordDetailElement extends
                        if (combo_UseCategory.getSelection() != null) {\r
                                boolean isChanged = false;\r
                                boolean isUseCategoryChanged = false;\r
-                               if (!getEntity().getStates().isEmpty()) {\r
-                                       for (StateData useCategoryStateDataCheck : getEntity().getStates()) {\r
+                               if (!getEntity().getStateData().isEmpty()) {\r
+                                       for (StateData useCategoryStateDataCheck : getEntity().getStateData()) {\r
                                                Map<Language, LanguageString> modText = useCategoryStateDataCheck.getModifyingText();\r
                                                if(modText.get(CdmStore.getDefaultLanguage()) != null && modText.get(CdmStore.getDefaultLanguage()).getText().equals(UsageTermCollection.useCategoryVocabularyLabel)) {\r
                                                        if(!useCategoryStateDataCheck.getState().getTitleCache().equals(combo_UseCategory.getSelection().getTitleCache())) {\r
                                                                isUseCategoryChanged = true;\r
                                                        }\r
-                                                       \r
+\r
                                                }\r
                                        }\r
-                                       ListIterator<StateData> itrExistingStates = getEntity().getStates().listIterator();\r
+                                       ListIterator<StateData> itrExistingStates = getEntity().getStateData().listIterator();\r
                                        while(itrExistingStates.hasNext()) {\r
                                                StateData existingStateData = itrExistingStates.next();\r
                                                Map<Language, LanguageString> modifyingText = existingStateData\r
@@ -320,7 +322,7 @@ public class UseRecordDetailElement extends
                                                                        stateData.setState(combo_UseCategory.getSelection());\r
                                                                        stateData.putModifyingText(CdmStore.getDefaultLanguage(),UsageTermCollection.useCategoryVocabularyLabel);\r
                                                                        itrExistingStates.add(stateData);\r
-                                                                       \r
+\r
                                                                }\r
                                                        } else if (modifyingText.get(CdmStore.getDefaultLanguage()).getText().equals(UsageTermCollection.useSubCategoryVocabularyLabel) && isUseCategoryChanged == true) {\r
                                                                itrExistingStates.remove();\r
@@ -328,22 +330,22 @@ public class UseRecordDetailElement extends
                                                }\r
                                        }\r
                                }\r
-                               \r
-                               \r
+\r
+\r
                                if (isChanged == false) {\r
                                        StateData stateData = StateData\r
                                                        .NewInstance(combo_UseCategory.getSelection());\r
                                        stateData.setState(combo_UseCategory.getSelection());\r
                                        stateData.putModifyingText(CdmStore.getDefaultLanguage(), UsageTermCollection.useCategoryVocabularyLabel);\r
-                                       getEntity().addState(stateData);\r
+                                       getEntity().addStateData(stateData);\r
                                }\r
-                               \r
+\r
                                combo_UseSubCategory.setEnabled(true);\r
-       \r
+\r
                        }\r
                        else {\r
-                               if (!getEntity().getStates().isEmpty()) {\r
-                                       Iterator<StateData> itr = getEntity().getStates().iterator();\r
+                               if (!getEntity().getStateData().isEmpty()) {\r
+                                       Iterator<StateData> itr = getEntity().getStateData().iterator();\r
                                        while(itr.hasNext()) {\r
                                                StateData stateToRemove = itr.next();\r
                                                itr.remove();\r
@@ -356,12 +358,12 @@ public class UseRecordDetailElement extends
                                }\r
                        }\r
                }\r
-                       \r
+\r
                if (eventSource == combo_UseSubCategory) {\r
                        if (combo_UseSubCategory.getSelection() != null) {\r
                                boolean isChanged = false;\r
-                               if (!getEntity().getStates().isEmpty()) {\r
-                                       ListIterator<StateData> itrExistingStates = getEntity().getStates().listIterator();\r
+                               if (!getEntity().getStateData().isEmpty()) {\r
+                                       ListIterator<StateData> itrExistingStates = getEntity().getStateData().listIterator();\r
                                        while(itrExistingStates.hasNext()) {\r
                                                StateData existingStateData = itrExistingStates.next();\r
                                                Map<Language, LanguageString> modifyingText = existingStateData\r
@@ -380,18 +382,18 @@ public class UseRecordDetailElement extends
                                                }\r
                                        }\r
                                }\r
-                               \r
+\r
                                if (isChanged == false){\r
                                        StateData stateData = StateData\r
                                                        .NewInstance(combo_UseSubCategory.getSelection());\r
                                        stateData.setState(combo_UseSubCategory.getSelection());\r
                                        stateData.putModifyingText(CdmStore.getDefaultLanguage(), UsageTermCollection.useSubCategoryVocabularyLabel);\r
-                                       getEntity().addState(stateData);\r
+                                       getEntity().addStateData(stateData);\r
                                }\r
-       \r
+\r
                        } else {\r
-                               if (!getEntity().getStates().isEmpty()) {\r
-                                       Iterator<StateData> itrStateData = getEntity().getStates().iterator();\r
+                               if (!getEntity().getStateData().isEmpty()) {\r
+                                       Iterator<StateData> itrStateData = getEntity().getStateData().iterator();\r
                                        while(itrStateData.hasNext()) {\r
                                                StateData existingStateData = itrStateData.next();\r
                                                Map<Language, LanguageString> modifyingText = existingStateData\r
@@ -408,48 +410,48 @@ public class UseRecordDetailElement extends
                }\r
                if (eventSource == combo_PlantPart) {\r
                        if (combo_PlantPart.getSelection() != null) {\r
-                               Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
+                               Iterator<DefinedTerm> itrExistingModifiers = getEntity().getModifiers().iterator();\r
                                while (itrExistingModifiers.hasNext()) {\r
-                                       Modifier modifier = itrExistingModifiers.next();\r
+                                       DefinedTerm modifier = itrExistingModifiers.next();\r
                                        if(GetVocabularyType(modifier, UsageTermCollection.plantPartLabel)) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-                                               \r
-                               }       \r
-                               Modifier plantPart = combo_PlantPart.getSelection();\r
+\r
+                               }\r
+                               DefinedTerm plantPart = combo_PlantPart.getSelection();\r
                                getEntity().addModifier(plantPart);\r
                        } else {\r
-                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               Set<DefinedTerm> modifiers = getEntity().getModifiers();\r
                                if(!modifiers.isEmpty()) {\r
-                                       Iterator<Modifier> itr = modifiers.iterator();\r
+                                       Iterator<DefinedTerm> itr = modifiers.iterator();\r
                                        while (itr.hasNext()) {\r
-                                               Modifier currentMod = itr.next();\r
+                                               DefinedTerm currentMod = itr.next();\r
                                                if(GetVocabularyType(currentMod, UsageTermCollection.plantPartLabel)) {\r
                                                        itr.remove();\r
                                                }\r
                                        }\r
                                }\r
-                               \r
+\r
                        }\r
                }\r
                if (eventSource == combo_Country) {\r
                        if (combo_Country.getSelection() != null) {\r
-                               Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
+                               Iterator<DefinedTerm> itrExistingModifiers = getEntity().getModifiers().iterator();\r
                                while (itrExistingModifiers.hasNext()) {\r
-                                       Modifier modifier = itrExistingModifiers.next();\r
+                                       DefinedTerm modifier = itrExistingModifiers.next();\r
                                        if(GetVocabularyType(modifier, UsageTermCollection.countryLabel)) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-                                               \r
+\r
                                }\r
-                               Modifier country = combo_Country.getSelection();\r
+                               DefinedTerm country = combo_Country.getSelection();\r
                                getEntity().addModifier(country);\r
                        } else {\r
-                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               Set<DefinedTerm> modifiers = getEntity().getModifiers();\r
                                if(!modifiers.isEmpty()) {\r
-                                       Iterator<Modifier> itr = modifiers.iterator();\r
+                                       Iterator<DefinedTerm> itr = modifiers.iterator();\r
                                        while (itr.hasNext()) {\r
-                                               Modifier currentMod = itr.next();\r
+                                               DefinedTerm currentMod = itr.next();\r
                                                if(GetVocabularyType(currentMod, UsageTermCollection.countryLabel)) {\r
                                                        itr.remove();\r
                                                }\r
@@ -460,75 +462,80 @@ public class UseRecordDetailElement extends
                if (eventSource == combo_HumanGroup) {\r
                        if (combo_HumanGroup.getSelection() != null) {\r
                                boolean isHumanGroupChanged = true;\r
-                               for (Modifier modToCheck: getEntity().getModifiers()) {\r
+                               for (DefinedTerm modToCheck: getEntity().getModifiers()) {\r
                                        if(modToCheck.equals(combo_HumanGroup.getSelection()) && (GetVocabularyType(modToCheck, UsageTermCollection.humanGroupLabel))) {\r
                                                isHumanGroupChanged = false;\r
                                }\r
-                               \r
-                                       \r
+\r
+\r
                                }\r
-                               Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
+                               Iterator<DefinedTerm> itrExistingModifiers = getEntity().getModifiers().iterator();\r
                                while (itrExistingModifiers.hasNext()) {\r
-                                       Modifier modifier = itrExistingModifiers.next();\r
+                                       DefinedTerm modifier = itrExistingModifiers.next();\r
                                        if((GetVocabularyType(modifier, UsageTermCollection.humanGroupLabel) || GetVocabularyType(modifier, UsageTermCollection.ethnicGroupLabel)) && isHumanGroupChanged) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-                                               \r
-                               }       \r
+\r
+                               }\r
                                if(isHumanGroupChanged){\r
-                                       Modifier humanGroup = combo_HumanGroup.getSelection();\r
+                                       DefinedTerm humanGroup = combo_HumanGroup.getSelection();\r
                                        getEntity().addModifier(humanGroup);\r
                                }\r
                                combo_EthnicGroup.setEnabled(true);\r
                        } else {\r
-                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               Set<DefinedTerm> modifiers = getEntity().getModifiers();\r
                                if(!modifiers.isEmpty()) {\r
-                                       Iterator<Modifier> itr = modifiers.iterator();\r
+                                       Iterator<DefinedTerm> itr = modifiers.iterator();\r
                                        while (itr.hasNext()) {\r
-                                               Modifier currentMod = itr.next();\r
+                                               DefinedTerm currentMod = itr.next();\r
                                                if(GetVocabularyType(currentMod, UsageTermCollection.humanGroupLabel) || GetVocabularyType(currentMod, UsageTermCollection.ethnicGroupLabel)) {\r
                                                        itr.remove();\r
                                                }\r
                                        }\r
                                }\r
-                               List<Modifier> emptyListToResetComboBox = new ArrayList<Modifier>();\r
-                               Modifier emptyMod = Modifier.NewInstance();\r
+                               List<DefinedTerm> emptyListToResetComboBox = new ArrayList<DefinedTerm>();\r
+                               //FIXME:3.3MC----\r
+                               //DefinedTerm emptyMod = DefinedTerm.NewInstance();\r
+                               DefinedTerm emptyMod = null;\r
+                               //FIXME:3.3MC----\r
+\r
+\r
                                emptyListToResetComboBox.add(emptyMod);\r
                                combo_EthnicGroup.setTerms(emptyListToResetComboBox);\r
                                combo_EthnicGroup.setEnabled(false);\r
-                               \r
+\r
                        }\r
                }\r
                if (eventSource == combo_EthnicGroup) {\r
                        if (combo_EthnicGroup.getSelection() != null) {\r
-                               Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
+                               Iterator<DefinedTerm> itrExistingModifiers = getEntity().getModifiers().iterator();\r
                                        while (itrExistingModifiers.hasNext()) {\r
-                                               Modifier modifier = itrExistingModifiers.next();\r
+                                               DefinedTerm modifier = itrExistingModifiers.next();\r
                                                if(GetVocabularyType(modifier, combo_HumanGroup.getSelection().getTitleCache())) {\r
                                                        itrExistingModifiers.remove();\r
                                                }\r
-                                               \r
-                                       }       \r
-                                       Modifier ethnicGroup = combo_EthnicGroup.getSelection();\r
+\r
+                                       }\r
+                                       DefinedTerm ethnicGroup = combo_EthnicGroup.getSelection();\r
                                        getEntity().addModifier(ethnicGroup);\r
                        } else {\r
-                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               Set<DefinedTerm> modifiers = getEntity().getModifiers();\r
                                if(!modifiers.isEmpty()) {\r
-                                       \r
-                                       Iterator<Modifier> itr = modifiers.iterator();\r
+\r
+                                       Iterator<DefinedTerm> itr = modifiers.iterator();\r
                                        while (itr.hasNext()) {\r
-                                               Modifier currentMod = itr.next();\r
+                                               DefinedTerm currentMod = itr.next();\r
                                                if(GetVocabularyType(currentMod, UsageTermCollection.ethnicGroupLabel)) {\r
                                                        itr.remove();\r
                                                }\r
                                        }\r
-                                       \r
+\r
                                }\r
                        }\r
                }\r
        }\r
-       \r
-       \r
+\r
+\r
 \r
        /**\r
         * This function Checks the vocabulary type\r
@@ -536,7 +543,7 @@ public class UseRecordDetailElement extends
         * @param vocabularyExpected\r
         * @return\r
         */\r
-       private boolean GetVocabularyType(Modifier term, String vocabularyExpected) {\r
+       private boolean GetVocabularyType(DefinedTerm term, String vocabularyExpected) {\r
                if ((term.getPartOf() != null)  && (term.getPartOf().getTitleCache().equals(vocabularyExpected))) {\r
                        return true;\r
                }\r
@@ -548,8 +555,8 @@ public class UseRecordDetailElement extends
                }\r
        return false;\r
        }\r
-       \r
-       \r
+\r
+\r
 \r
        /** {@inheritDoc} */\r
        @Override\r
@@ -566,11 +573,11 @@ public class UseRecordDetailElement extends
                                State selectedUseCategory = combo_UseCategory.getSelection();\r
                                if (selectedUseCategory != null) {\r
                                        combo_UseSubCategory.setTerms(setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false),selectedUseCategory));\r
-                               \r
-                                       if (!getEntity().getStates().isEmpty()) {\r
-                                               Iterator<StateData> itrExistingState = getEntity().getStates().iterator();\r
+\r
+                                       if (!getEntity().getStateData().isEmpty()) {\r
+                                               Iterator<StateData> itrExistingState = getEntity().getStateData().iterator();\r
                                                while(itrExistingState.hasNext()) {\r
-                                                       StateData existingStateData = (StateData) itrExistingState.next();\r
+                                                       StateData existingStateData = itrExistingState.next();\r
                                                        Map<Language, LanguageString> modifyingText = existingStateData.getModifyingText();\r
                                                        if (modifyingText.get(CdmStore.getDefaultLanguage()) != null) {\r
                                                                if (modifyingText.get(CdmStore.getDefaultLanguage())\r
@@ -585,19 +592,19 @@ public class UseRecordDetailElement extends
                }\r
                for (Object object: combo_HumanGroup.getControls()) {\r
                        if (object == eventSource) {\r
-                               Modifier selectedHumanGroup = combo_HumanGroup.getSelection();\r
+                               DefinedTerm selectedHumanGroup = combo_HumanGroup.getSelection();\r
                                if (selectedHumanGroup != null) {\r
-                                       combo_EthnicGroup.setTerms(setEthnicGroupComboTerms(TermStore.getTerms(Modifier.class, null, false), selectedHumanGroup));\r
+                                       combo_EthnicGroup.setTerms(setEthnicGroupComboTerms(TermStore.getTerms(DefinedTerm.class, null, false), selectedHumanGroup));\r
                                        if (!getEntity().getModifiers().isEmpty()) {\r
-                                               Iterator<Modifier> iterModifiers = getEntity().getModifiers().iterator();\r
+                                               Iterator<DefinedTerm> iterModifiers = getEntity().getModifiers().iterator();\r
                                                while (iterModifiers.hasNext()) {\r
-                                                       Modifier existingModifier = iterModifiers.next();\r
+                                                       DefinedTerm existingModifier = iterModifiers.next();\r
                                                        if(GetVocabularyType(existingModifier, UsageTermCollection.ethnicGroupLabel)) {\r
                                                                combo_EthnicGroup.setSelection(modifierSelection(UsageTermCollection.ethnicGroupLabel));\r
                                                        }\r
                                                }\r
                                        }\r
-                                       \r
+\r
                                }\r
                        }\r
                }\r
index 01b8ce6e5aa6cae218f36dcf69efd83a438d3327..fc6bd396099693db68fe0866f73d196c880e57c2 100644 (file)
@@ -13,8 +13,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;\r
 \r
index 04428ca910cde207a548951eb0f5d715908dd0e2..66df36da8433e91803090a783ffe107ffca27fb1 100644 (file)
@@ -14,8 +14,8 @@ import eu.etaxonomy.cdm.model.common.TermBase;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;\r
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
index f6b7aeda6f3787a89ef3b90afc19030842955c5c..7878c67965ec20380da982e21f458e642923a5cc 100644 (file)
@@ -11,8 +11,8 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 \r
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 \r
 /**\r
  * @author l.morris\r
index b7e482e6021c2c55b625433460e36ff9b0a6e329..f8006d17e7248d66ad42647c511de12737c89b75 100644 (file)
@@ -13,8 +13,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 \r
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;\r
 \r
index 20eb288643c73e86bf59d32c5a509b3d97545eb6..d95886b74ee1b3aaf9a82eed4646116434b0ebbc 100644 (file)
@@ -12,13 +12,12 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 import java.net.URISyntaxException;\r
 \r
 import eu.etaxonomy.cdm.model.common.Language;\r
-import eu.etaxonomy.cdm.model.common.Representation;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaType;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;\r
 \r
 /**\r
index 86082a69091da8672f363862ef07f576943f3f48..45a21807ce29560f041ba543d37bd31e28adf114 100644 (file)
@@ -13,8 +13,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 \r
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;\r
 \r
index 69daf2ba76b39f7046cad95a9767df3b09f11722..d1d015c0af51cee3009d39f9eb06823f47b7a787 100644 (file)
@@ -13,8 +13,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 \r
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;\r
 \r
index de79af502a287e9e5679af6010d2104a0e4c2515..17ecf9c1236f4491ccd58b9126d8710c0bd33d9e 100644 (file)
@@ -13,8 +13,8 @@ import java.net.URISyntaxException;
 \r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;\r
 \r
 /**\r
index 767ffb8fef3d93ff17677bd9dee7224373944fae..a5c2a370c788cd228921c96e26fb6bd688bd10a6 100644 (file)
@@ -13,8 +13,8 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 \r
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;\r
 \r
index 7c2da263c727d4019e6e7fb5441488db986f9ce2..1b6552d7084fed82bbc638311f6079421db226ae 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -26,11 +26,12 @@ import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.model.TextHelper;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.IEntitySelectionElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.section.agent.InstitutionWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.agent.PersonWizardPage;
@@ -38,9 +39,9 @@ import eu.etaxonomy.taxeditor.ui.section.agent.TeamWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectionWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationGeneralWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.user.UserDetailWizardPage;
 
@@ -48,7 +49,7 @@ import eu.etaxonomy.taxeditor.ui.section.user.UserDetailWizardPage;
  * <p>
  * EditFromSelectionWizard class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Jun 1, 2010
  * @version 1.0
@@ -56,19 +57,19 @@ import eu.etaxonomy.taxeditor.ui.section.user.UserDetailWizardPage;
 public class EditFromSelectionWizard extends Wizard implements
                SelectionListener {
 
-       private final EntitySelectionElement selectionElement;
+       private final IEntitySelectionElement selectionElement;
 
        /**
         * <p>
         * Constructor for EditFromSelectionWizard.
         * </p>
-        * 
+        *
         * @param selectionElement
         *            a
         *            {@link eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement}
         *            object.
         */
-       public EditFromSelectionWizard(EntitySelectionElement selectionElement) {
+       public EditFromSelectionWizard(IEntitySelectionElement selectionElement) {
                this.selectionElement = selectionElement;
                this.setWindowTitle(String.format("Edit %s", TextHelper.deproxyClassName(selectionElement.getEntity().getClass())));
        }
@@ -95,23 +96,23 @@ public class EditFromSelectionWizard extends Wizard implements
                        addPage(new NonViralNameWizardPage(formFactory,
                                        selectionElement.getConversationHolder(),
                                        (NonViralName) entity));
-               } else if (entity instanceof DerivedUnitBase) {
+               } else if (entity instanceof DerivedUnit) {
 
                        DerivedUnitFacade facade;
                        try {
                                facade = DerivedUnitFacade.NewInstance(
-                                               (DerivedUnitBase) entity,
+                                               (DerivedUnit) entity,
                                                PreferencesUtil.getDerivedUnitConfigurator());
                        } catch (DerivedUnitFacadeNotSupportedException e) {
                                // we should never get here
                                throw new IllegalStateException();
                        }
 
-                       addPage(new GeneralWizardPage(formFactory,
+                       addPage(new FieldObservationGeneralWizardPage(formFactory,
                                        selectionElement.getConversationHolder(), facade));
-                       addPage(new GatheringEventWizardPage(formFactory,
+                       addPage(new GatheringEventDetailsWizardPage(formFactory,
                                        selectionElement.getConversationHolder(), facade));
-                       addPage(new FieldObservationWizardPage(formFactory,
+                       addPage(new FieldObservationDetailsWizardPage(formFactory,
                                        selectionElement.getConversationHolder(), facade));
                        addPage(new DerivedUnitBaseWizardPage(formFactory,
                                        selectionElement.getConversationHolder(), facade));
@@ -124,19 +125,19 @@ public class EditFromSelectionWizard extends Wizard implements
                                        selectionElement.getConversationHolder(),
                                        (Institution) entity));
                } else if (entity instanceof User) {
-                       addPage(new UserDetailWizardPage(formFactory, 
-                                       selectionElement.getConversationHolder(), 
+                       addPage(new UserDetailWizardPage(formFactory,
+                                       selectionElement.getConversationHolder(),
                                        (User) entity));
                } else {
                        StoreUtil.warningDialog("Missing interface", this,
                                        "No detail element for current selection");
-               } 
+               }
 
        }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.jface.wizard.Wizard#performFinish()
         */
        /** {@inheritDoc} */
index 48679257e4cc203edb5179a63d10415ec15b5aab..b7555cf7b173cfb59509d4ad7a5f9b001c00d413 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.ui.selection;
 
@@ -8,7 +8,6 @@ import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
@@ -17,7 +16,6 @@ import org.eclipse.swt.widgets.Shell;
 import org.springframework.security.core.GrantedAuthority;
 
 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.Group;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
@@ -26,16 +24,12 @@ import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.IEntitySelectionElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
-import eu.etaxonomy.taxeditor.ui.element.ILabeledElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectable;
-import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 
@@ -43,16 +37,14 @@ import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
  * <p>
  * Abstract AbstractSelectionElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Nov 17, 2009
  * @version 1.0
  * @param <T>
  */
 public class EntitySelectionElement<T extends ICdmBase> extends
-               AbstractCdmFormElement implements SelectionListener,
-               IEnableableFormElement, ISelectableElement, IEntityElement<T>,
-               ILabeledElement, IConversationEnabled, ISelectable {
+               AbstractCdmFormElement implements IEntitySelectionElement<T>{
 
        /**
         * Bitmask for configuring functionality of selection element
@@ -90,7 +82,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
         * <p>
         * Constructor for AbstractSelectionElement.
         * </p>
-        * 
+        *
         * @param formFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -122,7 +114,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
                this.isEditable = (mode & EDITABLE) == EDITABLE;
                this.isDeletable = (mode & DELETABLE) == DELETABLE;
                boolean isSelectable = (mode & SELECTABLE) == SELECTABLE;
-               
+
                this.labelString = labelString;
 
                this.conversation = conversation;
@@ -135,7 +127,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
 
                setEntity(entity);
        }
-       
+
        public EntitySelectionElement(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement, Class<T> clazz,
                        String labelString, T entity, int mode, int style) {
@@ -145,7 +137,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
 
        private void createControls(Composite parent, int style) {
 
-               label = formFactory.createLabel(getLayoutComposite(), labelString,
+               label = formFactory.createLabel(getLayoutComposite(), labelString + " : ",
                                SWT.NULL);
 
                addControl(label);
@@ -177,7 +169,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
                button_selection.setImage(ImageResources
                                .getImage(ImageResources.BROWSE_ICON));
                button_selection.setToolTipText("Browse existing");
-               
+
                addControl(button_selection);
                button_selection.addSelectionListener(this);
 
@@ -202,14 +194,15 @@ public class EntitySelectionElement<T extends ICdmBase> extends
                }
        }
 
-       public void widgetSelected(SelectionEvent e) {
+       @Override
+    public void widgetSelected(SelectionEvent e) {
                T selection = SelectionDialogFactory.getSelectionFromDialog(clazz, getShell(), getConversationHolder(), getEntity());
                setSelectionInternal(selection);
        }
-       
+
        /**
         * Return the selected object
-        * 
+        *
         * @return a T object.
         */
        public T getSelection() {
@@ -218,7 +211,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
         */
@@ -235,7 +228,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
         * <p>
         * setSelectionInternal
         * </p>
-        * 
+        *
         * @param selection
         *            a T object.
         */
@@ -250,7 +243,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
         * <p>
         * Setter for the field <code>entity</code>.
         * </p>
-        * 
+        *
         * @param selection
         *            a T object.
         */
@@ -273,12 +266,8 @@ public class EntitySelectionElement<T extends ICdmBase> extends
                }
        }
 
-       /**
-        * <p>
-        * updateFromWizard
-        * </p>
-        */
-       protected void updateFromWizard() {
+       @Override
+    public void updateFromWizard() {
                updateElement();
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
        }
@@ -287,7 +276,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
         * <p>
         * getTitle
         * </p>
-        * 
+        *
         * @return a {@link java.lang.String} object.
         */
        protected String getTitle() {
@@ -311,14 +300,14 @@ public class EntitySelectionElement<T extends ICdmBase> extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see eu.etaxonomy.taxeditor.forms.IEntityElement#getEntity()
         */
        /**
         * <p>
         * Getter for the field <code>entity</code>.
         * </p>
-        * 
+        *
         * @return a T object.
         */
        @Override
@@ -328,7 +317,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see eu.etaxonomy.taxeditor.forms.section.cdmdetail.ISelectableElement#
         * getSelectionArbitrator()
         */
@@ -336,7 +325,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
         * <p>
         * Getter for the field <code>selectionArbitrator</code>.
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}
         *         object.
         */
@@ -347,10 +336,11 @@ public class EntitySelectionElement<T extends ICdmBase> extends
 
        /**
         * Convenient access to current shell
-        * 
+        *
         * @return a {@link org.eclipse.swt.widgets.Shell} object.
         */
-       protected Shell getShell() {
+       @Override
+    public Shell getShell() {
                return getLayoutComposite().getShell();
        }
 
@@ -409,7 +399,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
         * <p>
         * getConversationHolder
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *         object.
         */
@@ -436,13 +426,13 @@ public class EntitySelectionElement<T extends ICdmBase> extends
         * <p>
         * Getter for the field <code>label</code>.
         * </p>
-        * 
+        *
         * @return a {@link java.lang.String} object.
         */
        @Override
        public String getLabel() {
                if (label != null) {
-                       return label.getText();
+                       return label.getText() + " : ";
                }
                return null;
        }
index ca90432a5ff9621a29b9d5b84c2f8540327a760b..d516eaef4878ff6c68a6d81bf394258cdaea1e0d 100644 (file)
@@ -14,9 +14,9 @@ import org.eclipse.swt.events.SelectionEvent;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.NomenclaturalAuthorTeamSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * <p>
index 150ed77d18673817b75d0b36d452b7097522a094..8d8d15dfa3e90b20e72a455df11599c0c363aaae 100644 (file)
@@ -15,9 +15,9 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
  * @author n.hoffmann
index 0eb7c6c6ea9283a3be39515e4f70ec4604a49d69..2b89d66973747d8b86b09b27b1af93ccb17fa29e 100644 (file)
@@ -29,9 +29,9 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
index eeddbac30e66026f76a1f06cb4c03af6d99e2565..495d4235239490b84ef804a62f9aa492a941466f 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -17,13 +17,13 @@ import org.eclipse.ui.forms.SectionPart;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.model.IElementHasDetails;
 import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.key.GeographicalScopeDetailSection;
@@ -36,7 +36,7 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSect
  * <p>
  * CdmSectionPart class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Feb 8, 2010
  * @version 1.0
@@ -50,7 +50,7 @@ public class CdmSectionPart<T> extends SectionPart implements
         * <p>
         * Constructor for CdmSectionPart.
         * </p>
-        * 
+        *
         * @param section
         *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
         *            object.
@@ -79,11 +79,11 @@ public class CdmSectionPart<T> extends SectionPart implements
                                        .setTaxonBase((TaxonBase) input);
                        return true;
                }
-               if ((input instanceof DerivedUnitBase)
+               if ((input instanceof DerivedUnit)
                                && (formSection instanceof IDerivedUnitFacadeDetailSection)) {
 
                        try {
-                               input = DerivedUnitFacade.NewInstance((DerivedUnitBase) input,
+                               input = DerivedUnitFacade.NewInstance((DerivedUnit) input,
                                                PreferencesUtil.getDerivedUnitConfigurator());
                        } catch (DerivedUnitFacadeNotSupportedException e) {
                                StoreUtil.error(getClass(), e);
@@ -92,24 +92,24 @@ public class CdmSectionPart<T> extends SectionPart implements
                if (input instanceof PolytomousKeyRelationship) {
                        input = ((PolytomousKeyRelationship) input).getDestination();
                }
-               
-           if ((input instanceof PolytomousKeyNode) && 
-                   (formSection instanceof PolytomousKeyDetailSection || 
-                           formSection instanceof GeographicalScopeDetailSection || 
-                           formSection instanceof ScopeRestrictionSection || 
+
+           if ((input instanceof PolytomousKeyNode) &&
+                   (formSection instanceof PolytomousKeyDetailSection ||
+                           formSection instanceof GeographicalScopeDetailSection ||
+                           formSection instanceof ScopeRestrictionSection ||
                            formSection instanceof TaxonomicScopeSection)) {
                input = ((PolytomousKeyNode)input).getKey();
            }
-           
-               
+
+
                formSection.setEntity((T) input);
-               
+
                return true;
        }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
         * .jface.util.PropertyChangeEvent)
@@ -119,14 +119,14 @@ public class CdmSectionPart<T> extends SectionPart implements
        public void propertyChange(PropertyChangeEvent event) {
                if (event != null) {
 
-                       Object eventSource = event.getSource();                 
-                       
+                       Object eventSource = event.getSource();
+
                        if (formSection.equals(eventSource)){
                                markDirty();
                        }
                        if((
-                                               (eventSource instanceof AbstractCdmFormElement) 
-                                               && formSection.containsFormElement((AbstractCdmFormElement) eventSource))
+                                               (eventSource instanceof ICdmFormElement)
+                                               && formSection.containsFormElement((ICdmFormElement) eventSource))
                                                ) {
                                markDirty();
                        }
index 6ae7c256f320f4c935e4903a460f251953297d65..07cbf2884107c3a41b2fc8984836046285b2ddcb 100644 (file)
@@ -37,7 +37,9 @@ 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.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
@@ -47,6 +49,12 @@ import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationDetailsSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.FieldObservationGeneralSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation.GatheringEventSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.DerivedUnitDetailsSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenDetailsSection;
+import eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen.SpecimenGeneralSection;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.RootElement;
 import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailSection;
@@ -74,11 +82,6 @@ import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
 import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection;
@@ -135,21 +138,31 @@ public class DetailsViewer extends AbstractCdmDataViewer {
      */
     @Override
     public void setInput(Object input) {
-        if (input instanceof DerivedUnitBase) {
+               if (input instanceof DerivedUnit) {
             try {
-                input = DerivedUnitFacade.NewInstance((DerivedUnitBase) input,
-                        PreferencesUtil.getDerivedUnitConfigurator());
+                               input = DerivedUnitFacade.NewInstance((DerivedUnit) input,PreferencesUtil.getDerivedUnitConfigurator());
             } catch (DerivedUnitFacadeNotSupportedException e) {
                 AbstractUtility.error(getClass(), e);
             }
         }
+               else if(input instanceof FieldUnit){
+                   input = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit) input,PreferencesUtil.getDerivedUnitConfigurator());
+               }
         super.setInput(input);
     }
 
     @Override
     protected void markViewPartDirty() {
         if (getInput() instanceof DerivedUnitFacade) {
-            getViewPart().changed(((DerivedUnitFacade) getInput()).innerDerivedUnit());
+            DerivedUnitFacade derivedUnitFacade = (DerivedUnitFacade) getInput();
+            DerivedUnit innerDerivedUnit = derivedUnitFacade.innerDerivedUnit();
+            FieldUnit innerFieldUnit = derivedUnitFacade.innerFieldUnit();
+            if(innerDerivedUnit!=null){
+                getViewPart().changed(innerDerivedUnit);
+            }
+            else if(innerFieldUnit!=null){
+                getViewPart().changed(innerFieldUnit);
+            }
         }
 
         super.markViewPartDirty();
@@ -228,8 +241,13 @@ public class DetailsViewer extends AbstractCdmDataViewer {
             createMediaElementSection(rootElement);
 
         } else if (input instanceof DerivedUnitFacade) {
-            createDerivedUnitBaseElementSection(rootElement);
+            DerivedUnitFacade derivedUnitFacade = (DerivedUnitFacade)input;
 
+            if(derivedUnitFacade.getType()==SpecimenOrObservationType.FieldUnit){
+                createFieldObservationDetailsView(rootElement);
+            } else{
+                createSpecimenDetailsView(rootElement);
+            }
         } else if (input instanceof FeatureNodeContainer) {
             createFeatureDistributionSection(rootElement);
 
@@ -475,9 +493,9 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
-
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+//        DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
+//
+//        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         ScopeSection scopeSection = formFactory.createScopeSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
@@ -486,7 +504,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         addPart(descriptionDetailSection);
         addPart(naturalLanguageSection);
         addPart(describedSpecimenSection);
-        addPart(descriptionSourceSection);
+//        addPart(descriptionSourceSection);
         addPart(scopeSection);
     }
 
@@ -538,32 +556,55 @@ public class DetailsViewer extends AbstractCdmDataViewer {
      *
      * @param parent
      */
-    private void createDerivedUnitBaseElementSection(RootElement parent) {
+    private void createFieldObservationDetailsView(RootElement parent) {
         destroySections();
 
-        GeneralDetailSection generalDetailSection = formFactory.createGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+        FieldObservationGeneralSection fieldObservationSection = formFactory.createFieldObservationGeneralSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+
+        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+
+        GatheringEventSection gatheringEventDetailSection = formFactory.createGatheringEventSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
+        FieldObservationDetailsSection fieldObservationDetailSection = formFactory.createFieldObservationDetailsSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        FieldObservationDetailSection fieldObservationDetailSection = formFactory.createFieldObservationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
+//        DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
+//
+//        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+//
+//        DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
+
+        addPart(fieldObservationSection);
+        addPart(gatheringEventDetailSection);
+        addPart(fieldObservationDetailSection);
+//        addPart(derivedUnitBaseDetailSection);
+//        addPart(determinationDetailSection);
+    }
+
+    /**
+     * createDerivedUnitBaseElementSection
+     *
+     * @param parent
+     */
+    private void createSpecimenDetailsView(RootElement parent) {
+        destroySections();
+
+        SpecimenGeneralSection specimenSection = formFactory.createSpecimenSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
+        SpecimenDetailsSection specimenDetailsSection = formFactory.createSpecimenDetailsSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
+        DerivedUnitDetailsSection derivedUnitDetailsSection = formFactory.createDerivedUnitDetailsSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
-        addPart(generalDetailSection);
-        addPart(gatheringEventDetailSection);
-        addPart(fieldObservationDetailSection);
-        addPart(derivedUnitBaseDetailSection);
-        addPart(determinationDetailSection);
+        addPart(specimenSection);
+        addPart(specimenDetailsSection);
+        addPart(derivedUnitDetailsSection);
     }
 
     /**
@@ -669,22 +710,4 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         AbstractFormSection definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
         addPart(definedTermDetailSection);
     }
-
-    private void createFODetailsView(RootElement parent) {
-        destroySections();
-
-        GeneralDetailSection generalDetailSection = formFactory.createFOSection(getConversationHolder(), parent, this,ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
-
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        FieldObservationDetailSection fieldObservationDetailSection = formFactory.createFODetailsSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
-
-        addPart(generalDetailSection);
-        addPart(gatheringEventDetailSection);
-        addPart(fieldObservationDetailSection);
-    }
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/ResourceManager.java b/eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/ResourceManager.java
new file mode 100644 (file)
index 0000000..4bfbc6b
--- /dev/null
@@ -0,0 +1,415 @@
+/*******************************************************************************\r
+ * Copyright (c) 2011 Google, Inc.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the terms of the Eclipse Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/epl-v10.html\r
+ *\r
+ * Contributors:\r
+ *    Google, Inc. - initial API and implementation\r
+ *******************************************************************************/\r
+package org.eclipse.wb.swt;
+
+import java.io.File;
+import java.io.InputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.CompositeImageDescriptor;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.osgi.framework.Bundle;
+
+/**
+ * Utility class for managing OS resources associated with SWT/JFace controls such as colors, fonts, images,
+ * etc.
+ * 
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ * 
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ * 
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class ResourceManager extends SWTResourceManager {
+       ////////////////////////////////////////////////////////////////////////////
+       //
+       // Image
+       //
+       ////////////////////////////////////////////////////////////////////////////
+       private static Map<ImageDescriptor, Image> m_descriptorImageMap = new HashMap<ImageDescriptor, Image>();
+       /**
+        * Returns an {@link ImageDescriptor} stored in the file at the specified path relative to the specified
+        * class.
+        * 
+        * @param clazz
+        *            the {@link Class} relative to which to find the image descriptor.
+        * @param path
+        *            the path to the image file.
+        * @return the {@link ImageDescriptor} stored in the file at the specified path.
+        */
+       public static ImageDescriptor getImageDescriptor(Class<?> clazz, String path) {
+               return ImageDescriptor.createFromFile(clazz, path);
+       }
+       /**
+        * Returns an {@link ImageDescriptor} stored in the file at the specified path.
+        * 
+        * @param path
+        *            the path to the image file.
+        * @return the {@link ImageDescriptor} stored in the file at the specified path.
+        */
+       public static ImageDescriptor getImageDescriptor(String path) {
+               try {
+                       return ImageDescriptor.createFromURL(new File(path).toURI().toURL());
+               } catch (MalformedURLException e) {
+                       return null;
+               }
+       }
+       /**
+        * Returns an {@link Image} based on the specified {@link ImageDescriptor}.
+        * 
+        * @param descriptor
+        *            the {@link ImageDescriptor} for the {@link Image}.
+        * @return the {@link Image} based on the specified {@link ImageDescriptor}.
+        */
+       public static Image getImage(ImageDescriptor descriptor) {
+               if (descriptor == null) {
+                       return null;
+               }
+               Image image = m_descriptorImageMap.get(descriptor);
+               if (image == null) {
+                       image = descriptor.createImage();
+                       m_descriptorImageMap.put(descriptor, image);
+               }
+               return image;
+       }
+       /**
+        * Maps images to decorated images.
+        */
+       @SuppressWarnings("unchecked")
+       private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+       /**
+        * Returns an {@link Image} composed of a base image decorated by another image.
+        * 
+        * @param baseImage
+        *            the base {@link Image} that should be decorated.
+        * @param decorator
+        *            the {@link Image} to decorate the base image.
+        * @return {@link Image} The resulting decorated image.
+        */
+       public static Image decorateImage(Image baseImage, Image decorator) {
+               return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+       }
+       /**
+        * Returns an {@link Image} composed of a base image decorated by another image.
+        * 
+        * @param baseImage
+        *            the base {@link Image} that should be decorated.
+        * @param decorator
+        *            the {@link Image} to decorate the base image.
+        * @param corner
+        *            the corner to place decorator image.
+        * @return the resulting decorated {@link Image}.
+        */
+       public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) {
+               if (corner <= 0 || corner >= LAST_CORNER_KEY) {
+                       throw new IllegalArgumentException("Wrong decorate corner");
+               }
+               Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+               if (cornerDecoratedImageMap == null) {
+                       cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+                       m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+               }
+               Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+               if (decoratedMap == null) {
+                       decoratedMap = new HashMap<Image, Image>();
+                       cornerDecoratedImageMap.put(baseImage, decoratedMap);
+               }
+               //
+               Image result = decoratedMap.get(decorator);
+               if (result == null) {
+                       final Rectangle bib = baseImage.getBounds();
+                       final Rectangle dib = decorator.getBounds();
+                       final Point baseImageSize = new Point(bib.width, bib.height);
+                       CompositeImageDescriptor compositImageDesc = new CompositeImageDescriptor() {
+                               @Override
+                               protected void drawCompositeImage(int width, int height) {
+                                       drawImage(baseImage.getImageData(), 0, 0);
+                                       if (corner == TOP_LEFT) {
+                                               drawImage(decorator.getImageData(), 0, 0);
+                                       } else if (corner == TOP_RIGHT) {
+                                               drawImage(decorator.getImageData(), bib.width - dib.width, 0);
+                                       } else if (corner == BOTTOM_LEFT) {
+                                               drawImage(decorator.getImageData(), 0, bib.height - dib.height);
+                                       } else if (corner == BOTTOM_RIGHT) {
+                                               drawImage(decorator.getImageData(), bib.width - dib.width, bib.height - dib.height);
+                                       }
+                               }
+                               @Override
+                               protected Point getSize() {
+                                       return baseImageSize;
+                               }
+                       };
+                       //
+                       result = compositImageDesc.createImage();
+                       decoratedMap.put(decorator, result);
+               }
+               return result;
+       }
+       /**
+        * Dispose all of the cached images.
+        */
+       public static void disposeImages() {
+               SWTResourceManager.disposeImages();
+               // dispose ImageDescriptor images
+               {
+                       for (Iterator<Image> I = m_descriptorImageMap.values().iterator(); I.hasNext();) {
+                               I.next().dispose();
+                       }
+                       m_descriptorImageMap.clear();
+               }
+               // dispose decorated images
+               for (int i = 0; i < m_decoratedImageMap.length; i++) {
+                       Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+                       if (cornerDecoratedImageMap != null) {
+                               for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) {
+                                       for (Image image : decoratedMap.values()) {
+                                               image.dispose();
+                                       }
+                                       decoratedMap.clear();
+                               }
+                               cornerDecoratedImageMap.clear();
+                       }
+               }
+               // dispose plugin images
+               {
+                       for (Iterator<Image> I = m_URLImageMap.values().iterator(); I.hasNext();) {
+                               I.next().dispose();
+                       }
+                       m_URLImageMap.clear();
+               }
+       }
+       ////////////////////////////////////////////////////////////////////////////
+       //
+       // Plugin images support
+       //
+       ////////////////////////////////////////////////////////////////////////////
+       /**
+        * Maps URL to images.
+        */
+       private static Map<String, Image> m_URLImageMap = new HashMap<String, Image>();
+       /**
+        * Provider for plugin resources, used by WindowBuilder at design time.
+        */
+       public interface PluginResourceProvider {
+               URL getEntry(String symbolicName, String path);
+       }
+       /**
+        * Instance of {@link PluginResourceProvider}, used by WindowBuilder at design time.
+        */
+       private static PluginResourceProvider m_designTimePluginResourceProvider = null;
+       /**
+        * Returns an {@link Image} based on a plugin and file path.
+        * 
+        * @param plugin
+        *            the plugin {@link Object} containing the image
+        * @param name
+        *            the path to the image within the plugin
+        * @return the {@link Image} stored in the file at the specified path
+        * 
+        * @deprecated Use {@link #getPluginImage(String, String)} instead.
+        */
+       @Deprecated
+       public static Image getPluginImage(Object plugin, String name) {
+               try {
+                       URL url = getPluginImageURL(plugin, name);
+                       if (url != null) {
+                               return getPluginImageFromUrl(url);
+                       }
+               } catch (Throwable e) {
+                       // Ignore any exceptions
+               }
+               return null;
+       }
+       /**
+        * Returns an {@link Image} based on a {@link Bundle} and resource entry path.
+        * 
+        * @param symbolicName
+        *            the symbolic name of the {@link Bundle}.
+        * @param path
+        *            the path of the resource entry.
+        * @return the {@link Image} stored in the file at the specified path.
+        */
+       public static Image getPluginImage(String symbolicName, String path) {
+               try {
+                       URL url = getPluginImageURL(symbolicName, path);
+                       if (url != null) {
+                               return getPluginImageFromUrl(url);
+                       }
+               } catch (Throwable e) {
+                       // Ignore any exceptions
+               }
+               return null;
+       }
+       /**
+        * Returns an {@link Image} based on given {@link URL}.
+        */
+       private static Image getPluginImageFromUrl(URL url) {
+               try {
+                       try {
+                               String key = url.toExternalForm();
+                               Image image = m_URLImageMap.get(key);
+                               if (image == null) {
+                                       InputStream stream = url.openStream();
+                                       try {
+                                               image = getImage(stream);
+                                               m_URLImageMap.put(key, image);
+                                       } finally {
+                                               stream.close();
+                                       }
+                               }
+                               return image;
+                       } catch (Throwable e) {
+                               // Ignore any exceptions
+                       }
+               } catch (Throwable e) {
+                       // Ignore any exceptions
+               }
+               return null;
+       }
+       /**
+        * Returns an {@link ImageDescriptor} based on a plugin and file path.
+        * 
+        * @param plugin
+        *            the plugin {@link Object} containing the image.
+        * @param name
+        *            the path to th eimage within the plugin.
+        * @return the {@link ImageDescriptor} stored in the file at the specified path.
+        * 
+        * @deprecated Use {@link #getPluginImageDescriptor(String, String)} instead.
+        */
+       @Deprecated
+       public static ImageDescriptor getPluginImageDescriptor(Object plugin, String name) {
+               try {
+                       try {
+                               URL url = getPluginImageURL(plugin, name);
+                               return ImageDescriptor.createFromURL(url);
+                       } catch (Throwable e) {
+                               // Ignore any exceptions
+                       }
+               } catch (Throwable e) {
+                       // Ignore any exceptions
+               }
+               return null;
+       }
+       /**
+        * Returns an {@link ImageDescriptor} based on a {@link Bundle} and resource entry path.
+        * 
+        * @param symbolicName
+        *            the symbolic name of the {@link Bundle}.
+        * @param path
+        *            the path of the resource entry.
+        * @return the {@link ImageDescriptor} based on a {@link Bundle} and resource entry path.
+        */
+       public static ImageDescriptor getPluginImageDescriptor(String symbolicName, String path) {
+               try {
+                       URL url = getPluginImageURL(symbolicName, path);
+                       if (url != null) {
+                               return ImageDescriptor.createFromURL(url);
+                       }
+               } catch (Throwable e) {
+                       // Ignore any exceptions
+               }
+               return null;
+       }
+       /**
+        * Returns an {@link URL} based on a {@link Bundle} and resource entry path.
+        */
+       private static URL getPluginImageURL(String symbolicName, String path) {
+               // try runtime plugins
+               {
+                       Bundle bundle = Platform.getBundle(symbolicName);
+                       if (bundle != null) {
+                               return bundle.getEntry(path);
+                       }
+               }
+               // try design time provider
+               if (m_designTimePluginResourceProvider != null) {
+                       return m_designTimePluginResourceProvider.getEntry(symbolicName, path);
+               }
+               // no such resource
+               return null;
+       }
+       /**
+        * Returns an {@link URL} based on a plugin and file path.
+        * 
+        * @param plugin
+        *            the plugin {@link Object} containing the file path.
+        * @param name
+        *            the file path.
+        * @return the {@link URL} representing the file at the specified path.
+        * @throws Exception
+        */
+       private static URL getPluginImageURL(Object plugin, String name) throws Exception {
+               // try to work with 'plugin' as with OSGI BundleContext
+               try {
+                       Class<?> BundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$
+                       Class<?> BundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$
+                       if (BundleContextClass.isAssignableFrom(plugin.getClass())) {
+                               Method getBundleMethod = BundleContextClass.getMethod("getBundle", new Class[0]); //$NON-NLS-1$
+                               Object bundle = getBundleMethod.invoke(plugin, new Object[0]);
+                               //
+                               Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
+                               Constructor<?> pathConstructor = PathClass.getConstructor(new Class[]{String.class});
+                               Object path = pathConstructor.newInstance(new Object[]{name});
+                               //
+                               Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
+                               Class<?> PlatformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$
+                               Method findMethod = PlatformClass.getMethod("find", new Class[]{BundleClass, IPathClass}); //$NON-NLS-1$
+                               return (URL) findMethod.invoke(null, new Object[]{bundle, path});
+                       }
+               } catch (Throwable e) {
+                       // Ignore any exceptions
+               }
+               // else work with 'plugin' as with usual Eclipse plugin
+               {
+                       Class<?> PluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$
+                       if (PluginClass.isAssignableFrom(plugin.getClass())) {
+                               //
+                               Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
+                               Constructor<?> pathConstructor = PathClass.getConstructor(new Class[]{String.class});
+                               Object path = pathConstructor.newInstance(new Object[]{name});
+                               //
+                               Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
+                               Method findMethod = PluginClass.getMethod("find", new Class[]{IPathClass}); //$NON-NLS-1$
+                               return (URL) findMethod.invoke(plugin, new Object[]{path});
+                       }
+               }
+               return null;
+       }
+       ////////////////////////////////////////////////////////////////////////////
+       //
+       // General
+       //
+       ////////////////////////////////////////////////////////////////////////////
+       /**
+        * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+        * objects are no longer needed (e.g. on application shutdown).
+        */
+       public static void dispose() {
+               disposeColors();
+               disposeFonts();
+               disposeImages();
+       }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java b/eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java
new file mode 100644 (file)
index 0000000..8b6d4cc
--- /dev/null
@@ -0,0 +1,447 @@
+/*******************************************************************************\r
+ * Copyright (c) 2011 Google, Inc.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the terms of the Eclipse Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/epl-v10.html\r
+ *\r
+ * Contributors:\r
+ *    Google, Inc. - initial API and implementation\r
+ *******************************************************************************/\r
+package org.eclipse.wb.swt;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc.
+ * <p>
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ * <p>
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class SWTResourceManager {
+       ////////////////////////////////////////////////////////////////////////////
+       //
+       // Color
+       //
+       ////////////////////////////////////////////////////////////////////////////
+       private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
+       /**
+        * Returns the system {@link Color} matching the specific ID.
+        * 
+        * @param systemColorID
+        *            the ID value for the color
+        * @return the system {@link Color} matching the specific ID
+        */
+       public static Color getColor(int systemColorID) {
+               Display display = Display.getCurrent();
+               return display.getSystemColor(systemColorID);
+       }
+       /**
+        * Returns a {@link Color} given its red, green and blue component values.
+        * 
+        * @param r
+        *            the red component of the color
+        * @param g
+        *            the green component of the color
+        * @param b
+        *            the blue component of the color
+        * @return the {@link Color} matching the given red, green and blue component values
+        */
+       public static Color getColor(int r, int g, int b) {
+               return getColor(new RGB(r, g, b));
+       }
+       /**
+        * Returns a {@link Color} given its RGB value.
+        * 
+        * @param rgb
+        *            the {@link RGB} value of the color
+        * @return the {@link Color} matching the RGB value
+        */
+       public static Color getColor(RGB rgb) {
+               Color color = m_colorMap.get(rgb);
+               if (color == null) {
+                       Display display = Display.getCurrent();
+                       color = new Color(display, rgb);
+                       m_colorMap.put(rgb, color);
+               }
+               return color;
+       }
+       /**
+        * Dispose of all the cached {@link Color}'s.
+        */
+       public static void disposeColors() {
+               for (Color color : m_colorMap.values()) {
+                       color.dispose();
+               }
+               m_colorMap.clear();
+       }
+       ////////////////////////////////////////////////////////////////////////////
+       //
+       // Image
+       //
+       ////////////////////////////////////////////////////////////////////////////
+       /**
+        * Maps image paths to images.
+        */
+       private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
+       /**
+        * Returns an {@link Image} encoded by the specified {@link InputStream}.
+        * 
+        * @param stream
+        *            the {@link InputStream} encoding the image data
+        * @return the {@link Image} encoded by the specified input stream
+        */
+       protected static Image getImage(InputStream stream) throws IOException {
+               try {
+                       Display display = Display.getCurrent();
+                       ImageData data = new ImageData(stream);
+                       if (data.transparentPixel > 0) {
+                               return new Image(display, data, data.getTransparencyMask());
+                       }
+                       return new Image(display, data);
+               } finally {
+                       stream.close();
+               }
+       }
+       /**
+        * Returns an {@link Image} stored in the file at the specified path.
+        * 
+        * @param path
+        *            the path to the image file
+        * @return the {@link Image} stored in the file at the specified path
+        */
+       public static Image getImage(String path) {
+               Image image = m_imageMap.get(path);
+               if (image == null) {
+                       try {
+                               image = getImage(new FileInputStream(path));
+                               m_imageMap.put(path, image);
+                       } catch (Exception e) {
+                               image = getMissingImage();
+                               m_imageMap.put(path, image);
+                       }
+               }
+               return image;
+       }
+       /**
+        * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
+        * 
+        * @param clazz
+        *            the {@link Class} relative to which to find the image
+        * @param path
+        *            the path to the image file, if starts with <code>'/'</code>
+        * @return the {@link Image} stored in the file at the specified path
+        */
+       public static Image getImage(Class<?> clazz, String path) {
+               String key = clazz.getName() + '|' + path;
+               Image image = m_imageMap.get(key);
+               if (image == null) {
+                       try {
+                               image = getImage(clazz.getResourceAsStream(path));
+                               m_imageMap.put(key, image);
+                       } catch (Exception e) {
+                               image = getMissingImage();
+                               m_imageMap.put(key, image);
+                       }
+               }
+               return image;
+       }
+       private static final int MISSING_IMAGE_SIZE = 10;
+       /**
+        * @return the small {@link Image} that can be used as placeholder for missing image.
+        */
+       private static Image getMissingImage() {
+               Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+               //
+               GC gc = new GC(image);
+               gc.setBackground(getColor(SWT.COLOR_RED));
+               gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+               gc.dispose();
+               //
+               return image;
+       }
+       /**
+        * Style constant for placing decorator image in top left corner of base image.
+        */
+       public static final int TOP_LEFT = 1;
+       /**
+        * Style constant for placing decorator image in top right corner of base image.
+        */
+       public static final int TOP_RIGHT = 2;
+       /**
+        * Style constant for placing decorator image in bottom left corner of base image.
+        */
+       public static final int BOTTOM_LEFT = 3;
+       /**
+        * Style constant for placing decorator image in bottom right corner of base image.
+        */
+       public static final int BOTTOM_RIGHT = 4;
+       /**
+        * Internal value.
+        */
+       protected static final int LAST_CORNER_KEY = 5;
+       /**
+        * Maps images to decorated images.
+        */
+       @SuppressWarnings("unchecked")
+       private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+       /**
+        * Returns an {@link Image} composed of a base image decorated by another image.
+        * 
+        * @param baseImage
+        *            the base {@link Image} that should be decorated
+        * @param decorator
+        *            the {@link Image} to decorate the base image
+        * @return {@link Image} The resulting decorated image
+        */
+       public static Image decorateImage(Image baseImage, Image decorator) {
+               return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+       }
+       /**
+        * Returns an {@link Image} composed of a base image decorated by another image.
+        * 
+        * @param baseImage
+        *            the base {@link Image} that should be decorated
+        * @param decorator
+        *            the {@link Image} to decorate the base image
+        * @param corner
+        *            the corner to place decorator image
+        * @return the resulting decorated {@link Image}
+        */
+       public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) {
+               if (corner <= 0 || corner >= LAST_CORNER_KEY) {
+                       throw new IllegalArgumentException("Wrong decorate corner");
+               }
+               Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+               if (cornerDecoratedImageMap == null) {
+                       cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+                       m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+               }
+               Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+               if (decoratedMap == null) {
+                       decoratedMap = new HashMap<Image, Image>();
+                       cornerDecoratedImageMap.put(baseImage, decoratedMap);
+               }
+               //
+               Image result = decoratedMap.get(decorator);
+               if (result == null) {
+                       Rectangle bib = baseImage.getBounds();
+                       Rectangle dib = decorator.getBounds();
+                       //
+                       result = new Image(Display.getCurrent(), bib.width, bib.height);
+                       //
+                       GC gc = new GC(result);
+                       gc.drawImage(baseImage, 0, 0);
+                       if (corner == TOP_LEFT) {
+                               gc.drawImage(decorator, 0, 0);
+                       } else if (corner == TOP_RIGHT) {
+                               gc.drawImage(decorator, bib.width - dib.width, 0);
+                       } else if (corner == BOTTOM_LEFT) {
+                               gc.drawImage(decorator, 0, bib.height - dib.height);
+                       } else if (corner == BOTTOM_RIGHT) {
+                               gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
+                       }
+                       gc.dispose();
+                       //
+                       decoratedMap.put(decorator, result);
+               }
+               return result;
+       }
+       /**
+        * Dispose all of the cached {@link Image}'s.
+        */
+       public static void disposeImages() {
+               // dispose loaded images
+               {
+                       for (Image image : m_imageMap.values()) {
+                               image.dispose();
+                       }
+                       m_imageMap.clear();
+               }
+               // dispose decorated images
+               for (int i = 0; i < m_decoratedImageMap.length; i++) {
+                       Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+                       if (cornerDecoratedImageMap != null) {
+                               for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) {
+                                       for (Image image : decoratedMap.values()) {
+                                               image.dispose();
+                                       }
+                                       decoratedMap.clear();
+                               }
+                               cornerDecoratedImageMap.clear();
+                       }
+               }
+       }
+       ////////////////////////////////////////////////////////////////////////////
+       //
+       // Font
+       //
+       ////////////////////////////////////////////////////////////////////////////
+       /**
+        * Maps font names to fonts.
+        */
+       private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
+       /**
+        * Maps fonts to their bold versions.
+        */
+       private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
+       /**
+        * Returns a {@link Font} based on its name, height and style.
+        * 
+        * @param name
+        *            the name of the font
+        * @param height
+        *            the height of the font
+        * @param style
+        *            the style of the font
+        * @return {@link Font} The font matching the name, height and style
+        */
+       public static Font getFont(String name, int height, int style) {
+               return getFont(name, height, style, false, false);
+       }
+       /**
+        * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
+        * flags are also supported.
+        * 
+        * @param name
+        *            the name of the font
+        * @param size
+        *            the size of the font
+        * @param style
+        *            the style of the font
+        * @param strikeout
+        *            the strikeout flag (warning: Windows only)
+        * @param underline
+        *            the underline flag (warning: Windows only)
+        * @return {@link Font} The font matching the name, height, style, strikeout and underline
+        */
+       public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) {
+               String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
+               Font font = m_fontMap.get(fontName);
+               if (font == null) {
+                       FontData fontData = new FontData(name, size, style);
+                       if (strikeout || underline) {
+                               try {
+                                       Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
+                                       Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
+                                       if (logFont != null && logFontClass != null) {
+                                               if (strikeout) {
+                                                       logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
+                                               }
+                                               if (underline) {
+                                                       logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
+                                               }
+                                       }
+                               } catch (Throwable e) {
+                                       System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
+                               }
+                       }
+                       font = new Font(Display.getCurrent(), fontData);
+                       m_fontMap.put(fontName, font);
+               }
+               return font;
+       }
+       /**
+        * Returns a bold version of the given {@link Font}.
+        * 
+        * @param baseFont
+        *            the {@link Font} for which a bold version is desired
+        * @return the bold version of the given {@link Font}
+        */
+       public static Font getBoldFont(Font baseFont) {
+               Font font = m_fontToBoldFontMap.get(baseFont);
+               if (font == null) {
+                       FontData fontDatas[] = baseFont.getFontData();
+                       FontData data = fontDatas[0];
+                       font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
+                       m_fontToBoldFontMap.put(baseFont, font);
+               }
+               return font;
+       }
+       /**
+        * Dispose all of the cached {@link Font}'s.
+        */
+       public static void disposeFonts() {
+               // clear fonts
+               for (Font font : m_fontMap.values()) {
+                       font.dispose();
+               }
+               m_fontMap.clear();
+               // clear bold fonts
+               for (Font font : m_fontToBoldFontMap.values()) {
+                       font.dispose();
+               }
+               m_fontToBoldFontMap.clear();
+       }
+       ////////////////////////////////////////////////////////////////////////////
+       //
+       // Cursor
+       //
+       ////////////////////////////////////////////////////////////////////////////
+       /**
+        * Maps IDs to cursors.
+        */
+       private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
+       /**
+        * Returns the system cursor matching the specific ID.
+        * 
+        * @param id
+        *            int The ID value for the cursor
+        * @return Cursor The system cursor matching the specific ID
+        */
+       public static Cursor getCursor(int id) {
+               Integer key = Integer.valueOf(id);
+               Cursor cursor = m_idToCursorMap.get(key);
+               if (cursor == null) {
+                       cursor = new Cursor(Display.getDefault(), id);
+                       m_idToCursorMap.put(key, cursor);
+               }
+               return cursor;
+       }
+       /**
+        * Dispose all of the cached cursors.
+        */
+       public static void disposeCursors() {
+               for (Cursor cursor : m_idToCursorMap.values()) {
+                       cursor.dispose();
+               }
+               m_idToCursorMap.clear();
+       }
+       ////////////////////////////////////////////////////////////////////////////
+       //
+       // General
+       //
+       ////////////////////////////////////////////////////////////////////////////
+       /**
+        * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+        * objects are no longer needed (e.g. on application shutdown).
+        */
+       public static void dispose() {
+               disposeColors();
+               disposeImages();
+               disposeFonts();
+               disposeCursors();
+       }
+}
\ No newline at end of file
index 63c1e666a3ee219b7ded38e7777fa1fbae0804f1..7d0868eff15e7174b4cf6f4492ed18c5287c9693 100644 (file)
   <REPRESENTATION ID="963" CREATED="2009-01-28 17:07:04.0" UUID="3c05a6f5-8799-4d36-85ee-135f01bee90c" TEXT="TDWG Level 2" ABBREVIATEDLABEL="" LABEL="TDWG Level 2" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="964" CREATED="2009-01-28 17:07:04.0" UUID="010f5578-5a9e-4d9c-94fe-2302a9e14dfd" TEXT=" &quot;TDWG Level 1" ABBREVIATEDLABEL="" LABEL="TDWG Level 1" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="965" CREATED="2009-01-28 17:07:04.0" UUID="1db3d6d4-a65b-4ee8-b5dd-0b1e9539de5b" TEXT="eu.etaxonomy.cdm.model.name.NomenclaturalCode" LABEL="NomenclaturalCode" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="966" CREATED="2009-01-28 17:07:04.0" UUID="4ba9790d-8749-48ec-89ce-3d104e3673a8" TEXT="ICBN" ABBREVIATEDLABEL="" LABEL="International Code of Botanical Nomenclature" LANGUAGE_ID="406"/>\r
+  <REPRESENTATION ID="966" CREATED="2009-01-28 17:07:04.0" UUID="4ba9790d-8749-48ec-89ce-3d104e3673a8" TEXT="ICNAFP" ABBREVIATEDLABEL="" LABEL="International Code of Botanical Nomenclature" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="967" CREATED="2009-01-28 17:07:04.0" UUID="42222d02-7af4-4eb9-87bb-020fe08ee1b8" TEXT="ICVCN" ABBREVIATEDLABEL="" LABEL="International Code of Virus Classification and Nomenclature" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="968" CREATED="2009-01-28 17:07:04.0" UUID="8c5d79e3-3ff6-4781-a298-71ea07fe7a85" TEXT="ICZN" ABBREVIATEDLABEL="" LABEL="International Code of Zoological Nomenclature" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="969" CREATED="2009-01-28 17:07:04.0" UUID="068331bf-a9da-4182-96b7-b9f7e8aa0238" TEXT="ICNCP" ABBREVIATEDLABEL="" LABEL="International Code of Nomenclature for Cultivated Plants" LANGUAGE_ID="406"/>\r
index 63c1e666a3ee219b7ded38e7777fa1fbae0804f1..7d0868eff15e7174b4cf6f4492ed18c5287c9693 100644 (file)
   <REPRESENTATION ID="963" CREATED="2009-01-28 17:07:04.0" UUID="3c05a6f5-8799-4d36-85ee-135f01bee90c" TEXT="TDWG Level 2" ABBREVIATEDLABEL="" LABEL="TDWG Level 2" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="964" CREATED="2009-01-28 17:07:04.0" UUID="010f5578-5a9e-4d9c-94fe-2302a9e14dfd" TEXT=" &quot;TDWG Level 1" ABBREVIATEDLABEL="" LABEL="TDWG Level 1" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="965" CREATED="2009-01-28 17:07:04.0" UUID="1db3d6d4-a65b-4ee8-b5dd-0b1e9539de5b" TEXT="eu.etaxonomy.cdm.model.name.NomenclaturalCode" LABEL="NomenclaturalCode" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="966" CREATED="2009-01-28 17:07:04.0" UUID="4ba9790d-8749-48ec-89ce-3d104e3673a8" TEXT="ICBN" ABBREVIATEDLABEL="" LABEL="International Code of Botanical Nomenclature" LANGUAGE_ID="406"/>\r
+  <REPRESENTATION ID="966" CREATED="2009-01-28 17:07:04.0" UUID="4ba9790d-8749-48ec-89ce-3d104e3673a8" TEXT="ICNAFP" ABBREVIATEDLABEL="" LABEL="International Code of Botanical Nomenclature" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="967" CREATED="2009-01-28 17:07:04.0" UUID="42222d02-7af4-4eb9-87bb-020fe08ee1b8" TEXT="ICVCN" ABBREVIATEDLABEL="" LABEL="International Code of Virus Classification and Nomenclature" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="968" CREATED="2009-01-28 17:07:04.0" UUID="8c5d79e3-3ff6-4781-a298-71ea07fe7a85" TEXT="ICZN" ABBREVIATEDLABEL="" LABEL="International Code of Zoological Nomenclature" LANGUAGE_ID="406"/>\r
   <REPRESENTATION ID="969" CREATED="2009-01-28 17:07:04.0" UUID="068331bf-a9da-4182-96b7-b9f7e8aa0238" TEXT="ICNCP" ABBREVIATEDLABEL="" LABEL="International Code of Nomenclature for Cultivated Plants" LANGUAGE_ID="406"/>\r