merged trunk into branch
authorPatric Plitzner <p.plitzner@bgbm.org>
Mon, 12 Aug 2013 13:05:47 +0000 (13:05 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Mon, 12 Aug 2013 13:05:47 +0000 (13:05 +0000)
119 files changed:
.gitattributes
eu.etaxonomy.taxeditor.application/plugin.xml
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/command/DynamicNewObjectMenu.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/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.cdmlib/.classpath
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/build.properties
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/operation/ChangeSynonymToAcceptedTaxonOperation.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.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/operation/MoveTaxonOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java
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/model/DescriptionHelper.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/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/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/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/OriginalSourceTypeSelectionDialog.java [new file with mode: 0644]
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/CdmFormFactory.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/MinMaxTextSection.java [new file with mode: 0644]
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/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/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/DescriptionSourceSection.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/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/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/detail/IndividualsAssociationDetailElement.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/ScopeRestrictionSection.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/MediaRepresentationPartElement.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/SpecimenTypeDesignationElement.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/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/DeterminationEventDetailElement.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/GatheringEventDetailElement.java
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/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/supplemental/AbstractOriginalSourceElement.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/RightsElement.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/userecords/UseRecordDetailElement.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/view/detail/CdmSectionPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java
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
pom.xml

index f19d32bc91c8270ac9e12d41db628d8c69e15061..cadffbe930bd4d86374874229f36fa0b1d294250 100644 (file)
@@ -1060,6 +1060,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 +1069,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
@@ -1232,6 +1225,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumC
 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 +1240,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,6 +1259,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/GatheringEventUnitElement.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/IEnableableFormElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEntityElement.java -text
@@ -1279,6 +1276,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
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 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 60535de12ff220caf42a405cc792dbf448bfd1d4..cf09eda13ffeb7456c33c8083f8a648d47317747 100644 (file)
@@ -26,6 +26,7 @@ import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.actions.CompoundContributionItem;
 import org.eclipse.ui.handlers.IHandlerService;
 
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
@@ -83,6 +84,11 @@ public class DynamicNewObjectMenu extends CompoundContributionItem {
                                }
                        }                               
                });
+               
+               //FIXME:3.3MC Need corresponding Details Viewer section for FieldUnit
+               if(key == SpecimenOrObservationType.FieldUnit){
+                       menuItem.setEnabled(false);
+               }
        }
        
        /**
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 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;
+       }
+
 }
index 9d8630de02850d3b5c639955532155d4a62b292c..f2f431199849f5ea85e6ba2f01627c174ac097f1 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/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.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.3.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.3.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.3.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.3.0-SNAPSHOT.jar" sourcepath="lib/cdmlib-model-3.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.3.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.3.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.3.0-SNAPSHOT.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.0-SNAPSHOT-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.3.0-SNAPSHOT.jar"/>
        <classpathentry kind="output" path="target/classes"/>
 </classpath>
index 761591e1100f31b14c8ba1e459a89284f374503d..14a720436027d6269d3e19f34f7ce4425a506143 100644 (file)
@@ -416,22 +416,6 @@ Bundle-ClassPath: .,
  lib/batik-util-1.7.jar,
  lib/batik-xml-1.7.jar,
  lib/c3p0-0.9.2.jar,
- lib/cdmlib-commons-3.2.3-SNAPSHOT-sources.jar,
- lib/cdmlib-commons-3.2.3-SNAPSHOT.jar,
- lib/cdmlib-ext-3.2.3-SNAPSHOT-sources.jar,
- lib/cdmlib-ext-3.2.3-SNAPSHOT.jar,
- lib/cdmlib-io-3.2.3-SNAPSHOT-sources.jar,
- lib/cdmlib-io-3.2.3-SNAPSHOT.jar,
- lib/cdmlib-model-3.2.3-SNAPSHOT-sources.jar,
- lib/cdmlib-model-3.2.3-SNAPSHOT.jar,
- lib/cdmlib-persistence-3.2.3-SNAPSHOT-sources.jar,
- lib/cdmlib-persistence-3.2.3-SNAPSHOT.jar,
- lib/cdmlib-print-3.2.3-SNAPSHOT-sources.jar,
- lib/cdmlib-print-3.2.3-SNAPSHOT.jar,
- lib/cdmlib-remote-3.2.3-SNAPSHOT-sources.jar,
- lib/cdmlib-remote-3.2.3-SNAPSHOT.jar,
- lib/cdmlib-services-3.2.3-SNAPSHOT-sources.jar,
- lib/cdmlib-services-3.2.3-SNAPSHOT.jar,
  lib/cglib-nodep-2.2.2.jar,
  lib/com.springsource.org.aopalliance-1.0.0.jar,
  lib/com.springsource.org.apache.commons.logging-1.1.1.jar,
@@ -594,4 +578,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.3.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-commons-3.3.0-SNAPSHOT.jar,
+ lib/cdmlib-ext-3.3.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-ext-3.3.0-SNAPSHOT.jar,
+ lib/cdmlib-io-3.3.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-io-3.3.0-SNAPSHOT.jar,
+ lib/cdmlib-model-3.3.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-model-3.3.0-SNAPSHOT.jar,
+ lib/cdmlib-persistence-3.3.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-persistence-3.3.0-SNAPSHOT.jar,
+ lib/cdmlib-print-3.3.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-print-3.3.0-SNAPSHOT.jar,
+ lib/cdmlib-remote-3.3.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-remote-3.3.0-SNAPSHOT.jar,
+ lib/cdmlib-services-3.3.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-services-3.3.0-SNAPSHOT.jar
index f2d0e9890f92c36c5a0407337315c62e53bf7f13..4144cf7fcb54e42720ecd7b50e7e44fa9119a283 100644 (file)
@@ -22,22 +22,6 @@ bin.includes = META-INF/,\
                lib/batik-util-1.7.jar,\\r
                lib/batik-xml-1.7.jar,\\r
                lib/c3p0-0.9.2.jar,\\r
-               lib/cdmlib-commons-3.2.3-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-commons-3.2.3-SNAPSHOT.jar,\\r
-               lib/cdmlib-ext-3.2.3-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-ext-3.2.3-SNAPSHOT.jar,\\r
-               lib/cdmlib-io-3.2.3-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-io-3.2.3-SNAPSHOT.jar,\\r
-               lib/cdmlib-model-3.2.3-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-model-3.2.3-SNAPSHOT.jar,\\r
-               lib/cdmlib-persistence-3.2.3-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-persistence-3.2.3-SNAPSHOT.jar,\\r
-               lib/cdmlib-print-3.2.3-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-print-3.2.3-SNAPSHOT.jar,\\r
-               lib/cdmlib-remote-3.2.3-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-remote-3.2.3-SNAPSHOT.jar,\\r
-               lib/cdmlib-services-3.2.3-SNAPSHOT-sources.jar,\\r
-               lib/cdmlib-services-3.2.3-SNAPSHOT.jar,\\r
                lib/cglib-nodep-2.2.2.jar,\\r
                lib/com.springsource.org.aopalliance-1.0.0.jar,\\r
                lib/com.springsource.org.apache.commons.logging-1.1.1.jar,\\r
@@ -200,5 +184,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.3.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-commons-3.3.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-ext-3.3.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-ext-3.3.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-io-3.3.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-io-3.3.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-model-3.3.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-model-3.3.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-persistence-3.3.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-persistence-3.3.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-print-3.3.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-print-3.3.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-remote-3.3.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-remote-3.3.0-SNAPSHOT.jar,\\r
+               lib/cdmlib-services-3.3.0-SNAPSHOT-sources.jar,\\r
+               lib/cdmlib-services-3.3.0-SNAPSHOT.jar\r
 \r
index 6db78f03df6db3863012bada0fca6d41e774b62c..74b3ff406ccfef11e45314e24b660548da919178 100644 (file)
@@ -190,7 +190,7 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
                ITreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid);
                
                Taxon newTaxon = Taxon.NewInstance(name, parentNode.getReference());
-               TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference(), null);
+               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);
index b4dafb7e7374874d2f83fd4509c3893e446600f8..3d40d7c2e68f8729b9296103fdaf480cf8e3abcc 100644 (file)
@@ -18,13 +18,14 @@ 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.cdm.model.occurrence.DerivedUnit;\r
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
@@ -122,21 +123,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 +160,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 +189,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 +226,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 fa39cab531a7475977055a068e3e35e49c88d1bb..ff4ff1fbd7f631b477dbb34b92aa8cd2add47955 100644 (file)
@@ -84,7 +84,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                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();
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 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 6bf1a5deb460e829737a2e5d53fed52ad04ee70e..5fc9af8317ea992fee407ef71c761f9f0c02b9e1 100644 (file)
@@ -86,8 +86,7 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                try {
                        for (TaxonNode taxonNode : taxonNodes){
                                TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode, 
-                                               newParentTreeNode.getReference(), newParentTreeNode.getMicroReference(), 
-                                               taxonNode.getSynonymToBeUsed());
+                                               newParentTreeNode.getReference(), newParentTreeNode.getMicroReference());
                                taxonNodes.add(newTaxonNode);
                                monitor.worked(2);
                        }
index 3ae83c87f0de4d181344c62d10041351c660d707..0bd7e6d0027f0166eee038ebcbf1784a582081cc 100644 (file)
@@ -92,7 +92,7 @@ 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);
 
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 328f57a227ff68de1d8e68e25783ffa19dfac312..2bfc537d4b8682219402fd459a2505beaeb3796b 100644 (file)
@@ -19,7 +19,7 @@ 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.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.ISourceable;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
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..90e1b3e78ae41ac0f532aeea0299bac24f14ca62 100644 (file)
@@ -13,10 +13,16 @@ 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.common.OriginalSourceType;
+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.dialog.selection.OriginalSourceTypeSelectionDialog;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.SpecimenOrObservationTypeSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
@@ -29,8 +35,17 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralWizardPage;
  * @created Jun 16, 2010
  * @version 1.0
  */
-public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUnitBase> {
+public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUnit> {
+       private SpecimenOrObservationType specOrObsType = null;
        
+       public NewDerivedUnitBaseWizard() {
+               super();        
+       }
+       
+       public NewDerivedUnitBaseWizard(SpecimenOrObservationType specOrObsType) {
+               super();
+               this.specOrObsType = specOrObsType;
+       }
        /** {@inheritDoc} */
        @Override
        public void addPages() {
@@ -38,6 +53,7 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUni
                addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), getFacade()));
                addPage(new FieldObservationWizardPage(formFactory, getConversationHolder(), getFacade()));
                addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), getFacade()));
+               
        }
        
        /**
@@ -45,11 +61,14 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUni
         */
        private DerivedUnitFacade getFacade() {
                try {
-                       return DerivedUnitFacade.NewInstance(getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
+                       if(getEntity() != null) {
+                               return DerivedUnitFacade.NewInstance(getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
+                       }
                } catch (DerivedUnitFacadeNotSupportedException e) {
                        // w should never get here
                        throw new IllegalStateException();
                }
+               return null;
        }
 
        /* (non-Javadoc)
@@ -57,11 +76,18 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUni
         */
        /** {@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 DerivedUnit createNewEntity() {               
+               if(specOrObsType == null) {
+                       return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+               } else {                        
+                       if(SpecimenOrObservationType.Media.equals(specOrObsType) || 
+                                       ((((SpecimenOrObservationType)specOrObsType).getKindOf() != null) &&
+                                       ((SpecimenOrObservationType)specOrObsType).getKindOf().equals(SpecimenOrObservationType.Media))) {
+                               return MediaSpecimen.NewInstance(SpecimenOrObservationType.Media);
+                       } else {
+                               return DerivedUnit.NewInstance((SpecimenOrObservationType)specOrObsType);
+                       }                                               
+               }
        }
 
        /* (non-Javadoc)
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 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..e05e0490693200044f22084906e3766f1d7dca99 100644 (file)
@@ -45,7 +45,7 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITreeNode>{
                        ITreeNode 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());
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();
index addb64ae527100013ec29a88c48570907063b58f..3371a6ae531dbfcd310698b2fd49384153095cda 100644 (file)
@@ -23,7 +23,10 @@ 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;
@@ -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..4fe5b83593f58030a8a7f81b05111a40e971af9d 100644 (file)
@@ -19,7 +19,9 @@ 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;
@@ -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..18641f9
--- /dev/null
@@ -0,0 +1,434 @@
+//$Id$
+
+package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+import java.lang.reflect.Field;
+import java.text.Collator;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+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.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.common.IEnumTerm;
+import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
+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 242af03207e4efce790bf86f87526b2d13f52f03..23f97cd193226cf12c2d49a691fcf417065ca14e 100644 (file)
@@ -461,20 +461,21 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                         */
                        @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();
-                                       
-//                                     addObjectToModel(teamOrPerson);
-                                       refresh();
-                                       setPattern(entity);
-                                       getConversationHolder().bind();
+                               if(wizard.getEntity() != 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();
+                                       }
                                }
                        }
                };
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} */
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 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 408e0acfea307c29a39237870be66c0eaa3639d0..533b43b021722b9146b536c7a9cde59a4c2272e0 100644 (file)
@@ -1,5 +1,5 @@
 /**
- *
+ * 
  */
 package eu.etaxonomy.taxeditor.ui.element;
 
@@ -41,23 +41,27 @@ 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.description.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;
@@ -68,9 +72,7 @@ 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,7 +91,7 @@ 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.occurrence.GatheringEvent;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -97,6 +99,7 @@ import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 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;
@@ -257,1093 +260,1159 @@ import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
  * <p>
  * CdmFormFactory class.
  * </p>
- *
+ * 
  * @author n.hoffmann
  * @created Feb 24, 2010
  * @version 1.0
  */
 public class CdmFormFactory extends FormToolkit {
 
-    private BoldFontHolder2 boldFontHolder2;
-    private MouseListener selectionMouseHandler;
-    private FocusListener selectionFocusHandler;
+       private BoldFontHolder2 boldFontHolder2;
+       private MouseListener selectionMouseHandler;
+       private FocusListener selectionFocusHandler;
 
     private final Set<SelectionListener> selectionListenerList = new HashSet<SelectionListener>();
 
-    private final List<IPropertyChangeListener> propertyChangeListeners = new ArrayList<IPropertyChangeListener>();
-
-    private final int orientation = Window.getDefaultOrientation();
-    private ISelectionProvider selectionProvider;
-
-    /** Constant <code>EMPTY_SELECTION</code> */
-    public static ISelection EMPTY_SELECTION = new ISelection() {
-        @Override
-        public boolean isEmpty() {
-            return true;
-        }
-    };
-
-    /**
-     *
-     * @author n.hoffmann
-     * @date Jan 25, 2010
-     *
-     */
-    private class SelectionMouseHandler extends MouseAdapter {
-        @Override
-        public void mouseDown(MouseEvent e) {
-            notifySelectionListeners(e);
-        }
-    }
-
-    /**
-     *
-     * @author n.hoffmann
-     * @date Jan 25, 2010
-     *
-     */
-    private class SelectionFocusHandler extends FocusAdapter {
-        @Override
-        public void focusGained(FocusEvent e) {
-            notifySelectionListeners(e);
-        }
-    }
-
-    private void notifySelectionListeners(TypedEvent e) {
-        Event event = new Event();
-        event.widget = e.widget;
-        SelectionEvent selectionEvent = new SelectionEvent(event);
+       private final List<IPropertyChangeListener> propertyChangeListeners = new ArrayList<IPropertyChangeListener>();
+
+       private final int orientation = Window.getDefaultOrientation();
+       private ISelectionProvider selectionProvider;
+
+       /** Constant <code>EMPTY_SELECTION</code> */
+       public static ISelection EMPTY_SELECTION = new ISelection() {
+               @Override
+               public boolean isEmpty() {
+                       return true;
+               }
+       };
+       
+       /**
+        * 
+        * @author n.hoffmann
+        * @date Jan 25, 2010
+        *
+        */
+       private class SelectionMouseHandler extends MouseAdapter {
+               @Override
+               public void mouseDown(MouseEvent e) {
+                       notifySelectionListeners(e);
+               }
+       }
+
+       /**
+        * 
+        * @author n.hoffmann
+        * @date Jan 25, 2010
+        *
+        */
+       private class SelectionFocusHandler extends FocusAdapter {
+               @Override
+               public void focusGained(FocusEvent e) {
+                       notifySelectionListeners(e);
+               }
+       }
+
+       private void notifySelectionListeners(TypedEvent e) {
+               Event event = new Event();
+               event.widget = e.widget;
+               SelectionEvent selectionEvent = new SelectionEvent(event);
 
         for (SelectionListener listener : selectionListenerList) {
             listener.widgetSelected(selectionEvent);
-        }
-    }
+               }
+       }
+
+       /**
+        * <p>
+        * Constructor for CdmFormFactory.
+        * </p>
+        * 
+        * @param display
+        *            a {@link org.eclipse.swt.widgets.Display} object.
+        * @param selectionProvider
+        *            a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
+        */
+       public CdmFormFactory(Display display, ISelectionProvider selectionProvider) {
+               super(display);
+               this.selectionProvider = selectionProvider;
+               init();
+       }
+
+       /**
+        * <p>
+        * Constructor for CdmFormFactory.
+        * </p>
+        * 
+        * @param display
+        *            a {@link org.eclipse.swt.widgets.Display} object.
+        */
+       public CdmFormFactory(Display display) {
+               super(display);
+               init();
+       }
 
-    /**
-     * <p>
-     * Constructor for CdmFormFactory.
-     * </p>
-     *
-     * @param display
-     *            a {@link org.eclipse.swt.widgets.Display} object.
-     * @param selectionProvider
-     *            a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-     */
-    public CdmFormFactory(Display display, ISelectionProvider selectionProvider) {
-        super(display);
-        this.selectionProvider = selectionProvider;
-        init();
-    }
-
-    /**
-     * <p>
-     * Constructor for CdmFormFactory.
-     * </p>
-     *
-     * @param display
-     *            a {@link org.eclipse.swt.widgets.Display} object.
-     */
-    public CdmFormFactory(Display display) {
-        super(display);
-        init();
-    }
-
-    /**
-        *
+       /**
+        * 
+        */
+       private void init() {
+               boldFontHolder2 = new BoldFontHolder2();
+               selectionMouseHandler = new SelectionMouseHandler();
+               selectionFocusHandler = new SelectionFocusHandler();
+       }
+
+       /**
+        * Creates an instance initialized with the correct selectionProvider
+        * 
+        * Make sure to remove the instance when the entityComposite disposes via
+        * destroySelectionArbitrator(..)
+        * 
+        * @param entityElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.IEntityElement}
+        *            object.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}
+        *         object.
         */
-    private void init() {
-        boldFontHolder2 = new BoldFontHolder2();
-        selectionMouseHandler = new SelectionMouseHandler();
-        selectionFocusHandler = new SelectionFocusHandler();
-    }
-
-    /**
-     * Creates an instance initialized with the correct selectionProvider
-     *
-     * Make sure to remove the instance when the entityComposite disposes via
-     * destroySelectionArbitrator(..)
-     *
-     * @param entityElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.IEntityElement}
-     *            object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}
-     *         object.
-     */
     public SelectionArbitrator createSelectionArbitrator(IEntityElement entityElement) {
         SelectionArbitrator selectionArbitrator = new SelectionArbitrator(entityElement);
-        selectionArbitrator.addSelectionProvider(selectionProvider);
-        selectionProvider.addSelectionChangedListener(selectionArbitrator);
-        addSelectionListener(selectionArbitrator);
-        return selectionArbitrator;
-    }
-
-    /**
-     * <p>
-     * destroySelectionArbitrator
-     * </p>
-     *
-     * @param selectionArbitrator
+               selectionArbitrator.addSelectionProvider(selectionProvider);
+               selectionProvider.addSelectionChangedListener(selectionArbitrator);
+               addSelectionListener(selectionArbitrator);
+               return selectionArbitrator;
+       }
+
+       /**
+        * <p>
+        * destroySelectionArbitrator
+        * </p>
+        * 
+        * @param selectionArbitrator
      *            a
      *            {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}
-     *            object.
-     */
+        *            object.
+        */
     public void destroySelectionArbitrator(SelectionArbitrator selectionArbitrator) {
-        removeSelectionListener(selectionArbitrator);
-        if (selectionProvider != null) {
+               removeSelectionListener(selectionArbitrator);
+               if (selectionProvider != null) {
             selectionProvider.removeSelectionChangedListener(selectionArbitrator);
-        } else {
+               } else {
             AbstractUtility.error(this.getClass(),
                     "Tried to destroy a selection listener from this factories listeners but was null", null);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void adapt(Composite composite) {
-        composite.addMouseListener(selectionMouseHandler);
-        super.adapt(composite);
-    }
-
-    /**
-     * <p>
+               }
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public void adapt(Composite composite) {
+               composite.addMouseListener(selectionMouseHandler);
+               super.adapt(composite);
+       }
+
+       /**
+        * <p>
      * Adapts the {@link AbstractCdmFormElement}:<br>
      * - sets the {@link IPropertyChangeListener}s handled by this class
-     * </p>
-     *
-     * @param formElement
-     *            a
-     *            {@link eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement}
-     *            object.
-     */
-    public void adapt(AbstractCdmFormElement formElement) {
-        formElement.setPropertyChangeListeners(propertyChangeListeners);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void adapt(Control control, boolean trackFocus, boolean trackKeyboard) {
-        if (trackFocus) {
-            control.addFocusListener(selectionFocusHandler);
-        }
-        super.adapt(control, trackFocus, trackKeyboard);
-    }
-
-    /**
-     * <p>
-     * destroyElement
-     * </p>
-     *
-     * @param formElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     */
-    public void destroyElement(ICdmFormElement formElement) {
-        // return if element was not initialized
-        if (formElement == null) {
-            return;
-        }
-        // destroy selection arbitrator, if any
-        if (formElement instanceof ISelectableElement) {
+        * </p>
+        * 
+        * @param formElement
+        *            a
+        *            {@link eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement}
+        *            object.
+        */
+       public void adapt(AbstractCdmFormElement formElement) {
+               formElement.setPropertyChangeListeners(propertyChangeListeners);
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public void adapt(Control control, boolean trackFocus, boolean trackKeyboard) {
+               if (trackFocus) {
+                       control.addFocusListener(selectionFocusHandler);
+               }
+               super.adapt(control, trackFocus, trackKeyboard);
+       }
+
+       /**
+        * <p>
+        * destroyElement
+        * </p>
+        * 
+        * @param formElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        */
+       public void destroyElement(ICdmFormElement formElement) {
+               // return if element was not initialized
+               if (formElement == null) {
+                       return;
+               }
+               // destroy selection arbitrator, if any
+               if (formElement instanceof ISelectableElement) {
             destroySelectionArbitrator(((ISelectableElement) formElement).getSelectionArbitrator());
-        }
-        // remove this element form its parents list of elements
-        // ICdmFormElement parentElement = formElement.getParentElement();
-        // if(parentElement != null){
-        // parentElement.removeElement(formElement);
-        // }
-        // call destroy on child elements recursively
-        for (ICdmFormElement childElement : formElement.getElements()) {
-            destroyElement(childElement);
-        }
-        // dispose of the controls
-        for (Control control : formElement.getControls()) {
-            // we added the layoutComposite of the parental element as the
-            // layout composite to this formElement
-            // but we do not want to destroy it.
-            if (control.equals(formElement.getLayoutComposite())) {
-                continue;
-            } else {
-                control.dispose();
-                control = null;
-            }
-        }
-    }
-
-    /**
-     * <p>
-     * createEmptyCell
-     * </p>
-     *
-     * @param parent
-     *            a {@link org.eclipse.swt.widgets.Composite} object.
-     * @return a {@link org.eclipse.swt.widgets.Label} object.
-     */
-    public Label createEmptyCell(Composite parent) {
-        return this.createLabel(parent, null);
-    }
-
-    /**
-     * <p>
-     * createMultilineTextWithLabel
-     * </p>
-     *
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param textHeight
-     *            a int.
-     * @param style
-     *            a int.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
-     *         object.
-     */
+               }
+               // remove this element form its parents list of elements
+               // ICdmFormElement parentElement = formElement.getParentElement();
+               // if(parentElement != null){
+               // parentElement.removeElement(formElement);
+               // }
+               // call destroy on child elements recursively
+               for (ICdmFormElement childElement : formElement.getElements()) {
+                       destroyElement(childElement);
+               }
+               // dispose of the controls
+               for (Control control : formElement.getControls()) {
+                       // we added the layoutComposite of the parental element as the
+                       // layout composite to this formElement
+                       // but we do not want to destroy it.
+                       if (control.equals(formElement.getLayoutComposite())) {
+                               continue;
+                       } else {
+                               control.dispose();
+                               control = null;
+                       }
+               }
+       }
+
+       /**
+        * <p>
+        * createEmptyCell
+        * </p>
+        * 
+        * @param parent
+        *            a {@link org.eclipse.swt.widgets.Composite} object.
+        * @return a {@link org.eclipse.swt.widgets.Label} object.
+        */
+       public Label createEmptyCell(Composite parent) {
+               return this.createLabel(parent, null);
+       }
+
+       /**
+        * <p>
+        * createMultilineTextWithLabel
+        * </p>
+        * 
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param textHeight
+        *            a int.
+        * @param style
+        *            a int.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
+        *         object.
+        */
     public TextWithLabelElement createMultilineTextWithLabel(ICdmFormElement parentElement, String labelString,
             int textHeight, int style) {
         TextWithLabelElement element = new TextWithLabelElement(this, parentElement, labelString, "", textHeight, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createMultiLanguageTextElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param multilanguageText
-     *            a {@link java.util.Map} object.
-     * @param textHeight
-     *            a int.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createMultiLanguageTextElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param multilanguageText
+        *            a {@link java.util.Map} object.
+        * @param textHeight
+        *            a int.
+        * @param style
+        *            a int.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement}
+        *         object.
+        */
     public MultilanguageTextElement createMultiLanguageTextElement(ICdmFormElement parentElement, String labelString,
             Map<Language, LanguageString> multilanguageText, int textHeight, int style) {
         MultilanguageTextElement element = new MultilanguageTextElement(this, parentElement, labelString,
                 multilanguageText, textHeight, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
 
     public KeyStatementElement createKeyStatementElement(ICdmFormElement parentElement, String labelString,
-            KeyStatement keyStatement, int textHeight, int style) {
+                       KeyStatement keyStatement, int textHeight, int style) {
         KeyStatementElement element = new KeyStatementElement(this, parentElement, labelString, keyStatement,
                 textHeight, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createTextWithLabelElement
-     * </p>
-     *
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param style
-     *            a int.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createTextWithLabelElement
+        * </p>
+        * 
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param initialText
+        *            a {@link java.lang.String} object.
+        * @param style
+        *            a int.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
+        *         object.
+        */
     public TextWithLabelElement createTextWithLabelElement(ICdmFormElement parentElement, String labelString,
-            String initialText, int style) {
+                       String initialText, int style) {
         TextWithLabelElement element = new TextWithLabelElement(this, parentElement, labelString, initialText, null,
                 style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
 
     public UriWithLabelElement createUriWithLabelElement(ICdmFormElement parentElement, String labelString,
             URI initialUri, int style) {
         UriWithLabelElement element = new UriWithLabelElement(this, parentElement, labelString, initialUri, null, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * @param element
-     * @param string
-     * @param uri
-     * @param style
-     * @return
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * @param element
+        * @param string
+        * @param uri
+        * @param style
+        * @return
+        */
     public OpenUrlSelectorElement createOpenUrlSelectorElement(ICdmFormElement parentElement, String labelString,
-            IOpenUrlEnabled openUrlEnabled, int style) {
+                       IOpenUrlEnabled openUrlEnabled, int style) {
         OpenUrlSelectorElement element = new OpenUrlSelectorElement(this, parentElement, labelString, openUrlEnabled,
                 style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     *
-     * @param parentElement
-     * @param labelString
-     * @param conversationEnabled
-     * @param user
-     * @param style
-     * @return
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * 
+        * @param parentElement
+        * @param labelString
+        * @param conversationEnabled
+        * @param user
+        * @param style
+        * @return
+        */
     public EditPasswordElement createEditPasswordElement(ICdmFormElement parentElement, String labelString,
-            ConversationHolder conversation, User user, int style) {
+                       ConversationHolder conversation, User user, int style) {
         EditPasswordElement element = new EditPasswordElement(this, parentElement, labelString, user, conversation);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createIntegerTextWithLabelElement
-     * </p>
-     *
-     * @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 style
-     *            a int.
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createIntegerTextWithLabelElement
+        * </p>
+        * 
+        * @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 style
+        *            a int.
      * @return a
      *         {@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;
-    }
-
-    /**
-     * <p>
-     * createLanguageStringWithLabelElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param languageString
-     *            a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement}
-     *         object.
-     */
+        *         object.
+        */
+       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>
+        * createLanguageStringWithLabelElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param languageString
+        *            a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
+        * @param style
+        *            a int.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement}
+        *         object.
+        */
     public LanguageStringWithLabelElement createLanguageStringWithLabelElement(ICdmFormElement parentElement,
             String labelString, LanguageString languageString, int style) {
         LanguageStringWithLabelElement element = new LanguageStringWithLabelElement(this, parentElement, labelString,
                 languageString, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createLanguageStringWithLabelElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param languageString
-     *            a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
-     * @param height
-     *            a int.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createLanguageStringWithLabelElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param languageString
+        *            a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
+        * @param height
+        *            a int.
+        * @param style
+        *            a int.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement}
+        *         object.
+        */
     public LanguageStringWithLabelElement createLanguageStringWithLabelElement(ICdmFormElement parentElement,
             String labelString, LanguageString languageString, int height, int style) {
         LanguageStringWithLabelElement element = new LanguageStringWithLabelElement(this, parentElement, labelString,
                 languageString, height, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createTextElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createTextElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param initialText
+        *            a {@link java.lang.String} object.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
+        *         object.
+        */
     public TextWithLabelElement createTextElement(ICdmFormElement parentElement, String initialText, int style) {
         TextWithLabelElement element = new TextWithLabelElement(this, parentElement, null, initialText, null, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createKeyValueViewerElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param keyHeading
-     *            a {@link java.lang.String} object.
-     * @param valueHeading
-     *            a {@link java.lang.String} object.
-     * @param map
-     *            a {@link java.util.Map} object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.KeyValueViewerElement}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createKeyValueViewerElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param keyHeading
+        *            a {@link java.lang.String} object.
+        * @param valueHeading
+        *            a {@link java.lang.String} object.
+        * @param map
+        *            a {@link java.util.Map} object.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.KeyValueViewerElement}
+        *         object.
+        */
     public KeyValueViewerElement createKeyValueViewerElement(ICdmFormElement parentElement, String keyHeading,
-            String valueHeading, Map<Object, Object> map) {
+                       String valueHeading, Map<Object, Object> map) {
         KeyValueViewerElement element = new KeyValueViewerElement(this, parentElement, keyHeading, valueHeading, map);
-        adapt(element);
-        parentElement.addElement(element);
-        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.
-     */
-
+               adapt(element);
+               parentElement.addElement(element);
+               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> createTermComboElement(Class<T> termComboType,
             ICdmFormElement parentElement, String labelString, T selection, int style) {
         TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termComboType, labelString,
                 selection, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createEnumComboElement
-     * </p>
-     *
-     * @param enumComboType
-     *            a
-     *            {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EnumComboType}
-     *            object.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.term.AbstractEnumComboElement}
-     *         object.
-     */
-    public <T extends IDefinedTerm> 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);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createBrowserElement
-     * </p>
-     *
-     * @param imageUri
-     *            a {@link java.net.URI} object.
-     * @param style
-     *            a int.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
+               adapt(element);
+               parentElement.addElement(element);
+               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
+        * </p>
+        * 
+        * @param enumComboType
+        *            a
+        *            {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EnumComboType}
+        *            object.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.term.AbstractEnumComboElement}
+        *         object.
+        */
+       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);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createBrowserElement
+        * </p>
+        * 
+        * @param imageUri
+        *            a {@link java.net.URI} object.
+        * @param style
+        *            a int.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
      * @return a {@link eu.etaxonomy.taxeditor.ui.element.BrowserElement}
      *         object.
-     */
+        */
     public BrowserElement createBrowserElement(ICdmFormElement parentElement, URI imageUri, int style) {
         BrowserElement element = new BrowserElement(this, parentElement, imageUri, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createImageElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param imageUri
-     *            a {@link java.net.URI} object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.ImageElement} object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createImageElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param imageUri
+        *            a {@link java.net.URI} object.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.ImageElement} object.
+        */
     public ImageElement createImageElement(ICdmFormElement parentElement, URI imageUri, int style) {
         ImageElement element = new ImageElement(this, parentElement, imageUri, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createTextActionElement
-     * </p>
-     *
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param style
-     *            a int.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param buttonLabel
-     *            a {@link java.lang.String} object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextActionElement}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createTextActionElement
+        * </p>
+        * 
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param initialText
+        *            a {@link java.lang.String} object.
+        * @param style
+        *            a int.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param buttonLabel
+        *            a {@link java.lang.String} object.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextActionElement}
+        *         object.
+        */
     public TextActionElement createTextActionElement(ICdmFormElement parentElement, String labelString,
-            String buttonLabel, String initialText, int style) {
+                       String buttonLabel, String initialText, int style) {
         TextActionElement element = new TextActionElement(this, parentElement, labelString, buttonLabel, initialText,
                 style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createCheckbox
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param label
-     *            a {@link java.lang.String} object.
-     * @param initialState
-     *            a boolean.
-     * @param style
-     *            a int.
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createCheckbox
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param label
+        *            a {@link java.lang.String} object.
+        * @param initialState
+        *            a boolean.
+        * @param style
+        *            a int.
      * @return a {@link eu.etaxonomy.taxeditor.ui.element.CheckboxElement}
      *         object.
-     */
+        */
     public CheckboxElement createCheckbox(ICdmFormElement parentElement, String label, boolean initialState, int style) {
         CheckboxElement element = new CheckboxElement(this, parentElement, label, initialState, style | orientation);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * Creates a section as a part of the form.
-     *
-     * @return the section widget
-     * @param section
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * Creates a section as a part of the form.
+        * 
+        * @return the section widget
+        * @param section
      *            a
      *            {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-     *            object.
-     */
-    public Section adapt(AbstractFormSection section) {
-        section.setMenu(section.getLayoutComposite().getMenu());
-        adapt(section, true, true);
+        *            object.
+        */
+       public Section adapt(AbstractFormSection section) {
+               section.setMenu(section.getLayoutComposite().getMenu());
+               adapt(section, true, true);
 
-        // handle focus and property change events for cdm use
-        section.addFocusListener(selectionFocusHandler);
-        section.setPropertyChangeListeners(propertyChangeListeners);
+               // handle focus and property change events for cdm use
+               section.addFocusListener(selectionFocusHandler);
+               section.setPropertyChangeListeners(propertyChangeListeners);
 
-        if (section.getToggle() != null) {
+               if (section.getToggle() != null) {
             section.getToggle().setHoverDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE_HOVER));
             section.getToggle().setDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE));
-        }
+               }
 
         section.setFont(boldFontHolder2.getBoldFont(section.getLayoutComposite().getFont()));
 
         if ((section.getStyle() & ExpandableComposite.TITLE_BAR) != 0
                 || (section.getStyle() & ExpandableComposite.SHORT_TITLE_BAR) != 0) {
-            getColors().initializeSectionToolBarColors();
+                       getColors().initializeSectionToolBarColors();
             section.setTitleBarBackground(getColors().getColor(IFormColors.TB_BG));
             section.setTitleBarBorderColor(getColors().getColor(IFormColors.TB_BORDER));
-        }
-        // call setTitleBarForeground regardless as it also sets the label color
+               }
+               // call setTitleBarForeground regardless as it also sets the label color
         section.setTitleBarForeground(getColors().getColor(IFormColors.TB_TOGGLE));
-        return section;
-    }
+               return section;
+       }
 
-    private class BoldFontHolder2 {
-        private Font normalFont;
+       private class BoldFontHolder2 {
+               private Font normalFont;
 
-        private Font boldFont;
+               private Font boldFont;
 
-        public BoldFontHolder2() {
-        }
+               public BoldFontHolder2() {
+               }
 
-        public Font getBoldFont(Font font) {
-            createBoldFont(font);
-            return boldFont;
-        }
+               public Font getBoldFont(Font font) {
+                       createBoldFont(font);
+                       return boldFont;
+               }
 
-        private void createBoldFont(Font font) {
-            if (normalFont == null || !normalFont.equals(font)) {
-                normalFont = font;
-                dispose();
-            }
-            if (boldFont == null) {
+               private void createBoldFont(Font font) {
+                       if (normalFont == null || !normalFont.equals(font)) {
+                               normalFont = font;
+                               dispose();
+                       }
+                       if (boldFont == null) {
                 boldFont = FormFonts.getInstance().getBoldFont(getColors().getDisplay(), normalFont);
-            }
-        }
+                       }
+               }
 
-        public void dispose() {
-            if (boldFont != null) {
+               public void dispose() {
+                       if (boldFont != null) {
                 FormFonts.getInstance().markFinished(boldFont, getColors().getDisplay());
-                boldFont = null;
-            }
-        }
-    }
-
-    /**
-     * <p>
-     * createToggleableTextField
-     * </p>
-     *
-     * @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.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement}
-     *         object.
-     */
+                               boldFont = null;
+                       }
+               }
+       }
+
+       /**
+        * <p>
+        * createToggleableTextField
+        * </p>
+        * 
+        * @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.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement}
+        *         object.
+        */
     public ToggleableTextElement createToggleableTextField(ICdmFormElement parentElement, String labelString,
-            String initialText, boolean initialState, int style) {
+                       String initialText, boolean initialState, int style) {
         ToggleableTextElement element = new ToggleableTextElement(this, parentElement, labelString, initialText,
                 initialState, style | orientation);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createTimePeriodElement
-     * </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.TimePeriod} object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TimePeriodElement}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createTimePeriodElement
+        * </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.TimePeriod} object.
+        * @param style
+        *            a int.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.TimePeriodElement}
+        *         object.
+        */
     public TimePeriodElement createTimePeriodElement(ICdmFormElement parentElement, String labelString,
-            TimePeriod timePeriod, int style) {
+                       TimePeriod timePeriod, int style) {
         TimePeriodElement element = new TimePeriodElement(this, parentElement, labelString, timePeriod, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createPointElement
-     * </p>
-     *
-     * @param style
-     *            a int.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param point
-     *            a {@link eu.etaxonomy.cdm.model.location.Point} object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.PointElement} object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               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
+        * </p>
+        * 
+        * @param style
+        *            a int.
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param point
+        *            a {@link eu.etaxonomy.cdm.model.location.Point} object.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.element.PointElement} object.
+        */
     public PointElement createPointElement(ICdmFormElement parentElement, Point point, int style) {
         PointElement element = new PointElement(this, parentElement, point, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <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.DateDetailSection}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <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.DateDetailSection}
+        *         object.
+        */
     public DateDetailSection createDateDetailSection(ICdmFormElement parentElement, int style) {
         DateDetailSection section = new DateDetailSection(this, parentElement, style);
-        parentElement.addElement(section);
-        adapt(section);
-        return section;
-    }
-
-    /**
-     * <p>
-     * createPartialElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param partial
-     *            a {@link org.joda.time.Partial} object.
-     * @param style
-     *            a int.
+               parentElement.addElement(section);
+               adapt(section);
+               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
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param labelString
+        *            a {@link java.lang.String} object.
+        * @param partial
+        *            a {@link org.joda.time.Partial} object.
+        * @param style
+        *            a int.
      * @return a {@link eu.etaxonomy.taxeditor.ui.element.PartialElement}
      *         object.
-     */
+        */
     public PartialElement createPartialElement(ICdmFormElement parentElement, String labelString, Partial partial,
             int style) {
         PartialElement element = new PartialElement(this, parentElement, labelString, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * addSelectionListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     */
-    public void addSelectionListener(SelectionListener listener) {
-        selectionListenerList.add(listener);
-    }
-
-    /**
-     * <p>
-     * removeSelectionListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     */
-    public void removeSelectionListener(SelectionListener listener) {
-        if (listener == null) {
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * addSelectionListener
+        * </p>
+        * 
+        * @param listener
+        *            a {@link org.eclipse.swt.events.SelectionListener} object.
+        */
+       public void addSelectionListener(SelectionListener listener) {
+               selectionListenerList.add(listener);
+       }
+
+       /**
+        * <p>
+        * removeSelectionListener
+        * </p>
+        * 
+        * @param listener
+        *            a {@link org.eclipse.swt.events.SelectionListener} object.
+        */
+       public void removeSelectionListener(SelectionListener listener) {
+               if (listener == null) {
             AbstractUtility.error(this.getClass(),
                     "Tried to remove a selection listener from this factories listeners but was null", null);
-        } else {
-            selectionListenerList.remove(listener);
-        }
-    }
-
-    /**
-     * <p>
-     * addPropertyChangeListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.jface.util.IPropertyChangeListener}
-     *            object.
-     */
-    public void addPropertyChangeListener(IPropertyChangeListener listener) {
-        if (propertyChangeListeners.contains(listener)) {
-            return;
-        }
-        propertyChangeListeners.add(0, listener);
-    }
-
-    /**
-     * <p>
-     * removePropertyChangeListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.jface.util.IPropertyChangeListener}
-     *            object.
-     */
-    public void removePropertyChangeListener(IPropertyChangeListener listener) {
-        propertyChangeListeners.remove(listener);
-    }
-
-    /**
-     * <p>
-     * createHorizontalSeparator
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a {@link org.eclipse.swt.widgets.Label} object.
-     */
+               } else {
+                       selectionListenerList.remove(listener);
+               }
+       }
+
+       /**
+        * <p>
+        * addPropertyChangeListener
+        * </p>
+        * 
+        * @param listener
+        *            a {@link org.eclipse.jface.util.IPropertyChangeListener}
+        *            object.
+        */
+       public void addPropertyChangeListener(IPropertyChangeListener listener) {
+               if(propertyChangeListeners.contains(listener)){
+                       return;
+               }
+               propertyChangeListeners.add(0, listener);
+       }
+
+       /**
+        * <p>
+        * removePropertyChangeListener
+        * </p>
+        * 
+        * @param listener
+        *            a {@link org.eclipse.jface.util.IPropertyChangeListener}
+        *            object.
+        */
+       public void removePropertyChangeListener(IPropertyChangeListener listener) {
+               propertyChangeListeners.remove(listener);
+       }
+
+       /**
+        * <p>
+        * createHorizontalSeparator
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a {@link org.eclipse.swt.widgets.Label} object.
+        */
     public Label createHorizontalSeparator(ICdmFormElement parentElement, int style) {
         Label separator = this.createSeparator(parentElement.getLayoutComposite(), SWT.HORIZONTAL | style);
-        separator.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
-        return separator;
-    }
-
-    /**
-     * <p>
-     * createVersionElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param entity
-     *            a {@link eu.etaxonomy.cdm.model.common.VersionableEntity}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionElement}
-     *         object.
-     */
+               separator.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+               return separator;
+       }
+
+       /**
+        * <p>
+        * createVersionElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param entity
+        *            a {@link eu.etaxonomy.cdm.model.common.VersionableEntity}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionElement}
+        *         object.
+        */
     public VersionElement createVersionElement(ICdmFormElement parentElement, VersionableEntity entity, int style) {
         VersionElement element = new VersionElement(this, parentElement, entity, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * @param cdmBaseSection
-     * @param object
-     * @param style
-     * @return
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+       
+       /**
+        * @param cdmBaseSection
+        * @param object
+        * @param style
+        * @return
+        */
     public CdmBaseElement createCdmBaseElement(ICdmFormElement parentElement, CdmBase entity, int style) {
         CdmBaseElement element = new CdmBaseElement(this, parentElement, entity, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createVersionSection
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection}
-     *         object.
-     */
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+
+       /**
+        * <p>
+        * createVersionSection
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection}
+        *         object.
+        */
     public VersionSection createVersionSection(ICdmFormElement parentElement, int style) {
-        VersionSection section = new VersionSection(this, parentElement, style);
-        parentElement.addElement(section);
-        adapt(section);
-        return section;
-    }
-
-    /**
-     * @param parent
-     * @param i
-     * @return
-     */
-    public CdmBaseSection createCdmBaseSection(ICdmFormElement parentElement, int style) {
-        CdmBaseSection section = new CdmBaseSection(this, parentElement, style);
-        parentElement.addElement(section);
-        adapt(section);
-        return section;
-    }
-
-    /**
-     * <p>
-     * createEmptyElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.section.EmptyElement} object.
-     */
-    public EmptyElement createEmptyElement(ICdmFormElement parentElement) {
+               VersionSection section = new VersionSection(this, parentElement, style);
+               parentElement.addElement(section);
+               adapt(section);
+               return section;
+       }
+       
+       /**
+        * @param parent
+        * @param i
+        * @return
+        */
+       public CdmBaseSection createCdmBaseSection(ICdmFormElement parentElement, int style) {
+               CdmBaseSection section = new CdmBaseSection(this, parentElement, style);
+               parentElement.addElement(section);
+               adapt(section);
+               return section;
+       }
+
+       /**
+        * <p>
+        * createEmptyElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @return a {@link eu.etaxonomy.taxeditor.ui.section.EmptyElement} object.
+        */
+       public EmptyElement createEmptyElement(ICdmFormElement parentElement) {
         EmptyElement element = new EmptyElement(this, parentElement, null, SWT.NULL);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createHeadlineSection
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection}
-     *         object.
-     */
-    public HeadlineSection createHeadlineSection(ICdmFormElement parentElement) {
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * createHeadlineSection
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection}
+        *         object.
+        */
+       public HeadlineSection createHeadlineSection(ICdmFormElement parentElement) {
         HeadlineSection section = new HeadlineSection(this, parentElement, SWT.NULL);
-        parentElement.addElement(section);
-        adapt(section);
-        return section;
-    }
-
-    /**
-     * <p>
-     * createParsingMessageElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param parserProblem
-     *            a {@link eu.etaxonomy.cdm.strategy.parser.ParserProblem}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessageElement}
-     *         object.
-     */
+               parentElement.addElement(section);
+               adapt(section);
+               return section;
+       }
+
+       /**
+        * <p>
+        * createParsingMessageElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param parserProblem
+        *            a {@link eu.etaxonomy.cdm.strategy.parser.ParserProblem}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessageElement}
+        *         object.
+        */
     public ParsingMessageElement createParsingMessageElement(ICdmFormElement parentElement,
             ParserProblem parserProblem, int style) {
         ParsingMessageElement element = new ParsingMessageElement(this, parentElement, parserProblem, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
 
     public AbstractFormSection createDefinedTermDetailSection(Class definedTermClass, ConversationHolder conversation,
             ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
 
         AbstractFormSection section = new DefinedTermDetailSection(this, definedTermClass, conversation, parentElement,
                 selectionProvider, style);
-
-        parentElement.addElement(section);
-        adapt(section);
-        return section;
-
-    }
-
-    /**
-     * @param definedTermClass
-     * @param formElement
-     * @param style
-     * @return
-     */
+       
+               parentElement.addElement(section);
+               adapt(section);
+               return section;
+               
+       }
+       
+       /**
+        * @param definedTermClass
+        * @param formElement
+        * @param style
+        * @return
+        */
     public AbstractCdmDetailElement createDefinedTermDetailElement(Class definedTermClass, AbstractCdmDetailSection parentElement, int style) {
-        AbstractCdmDetailElement element = null;
-
-        if (NamedArea.class.isAssignableFrom(definedTermClass)) {
-            element = new eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailElement(this, parentElement);
+               AbstractCdmDetailElement element = null;
+               
+               if (NamedArea.class.isAssignableFrom(definedTermClass)){
+                       element = new eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailElement(this, parentElement);
         } else {
-            element = new DefinedTermDetailElement(this, parentElement);
-        }
-
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
+                       element = new DefinedTermDetailElement(this, parentElement);
+               }
+               
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
 
 
     //--------DetailSections---------
@@ -1556,8 +1625,8 @@ public class CdmFormFactory extends FormToolkit {
         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);
@@ -1568,12 +1637,12 @@ public class CdmFormFactory extends FormToolkit {
         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);
-    }
+               parentElement.addElement(section);
+               adapt(section);
+       }
 
     //--------DetailElements------------
 
@@ -1750,8 +1819,8 @@ public class CdmFormFactory extends FormToolkit {
         addAndAdaptElement(parentElement, element);
         return element;
     }
-
-
+       
+       
     public GeneralDetailElement createGeneralDetailElement(ICdmFormElement parentElement){
         GeneralDetailElement element = new GeneralDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
@@ -1762,30 +1831,30 @@ public class CdmFormFactory extends FormToolkit {
         GatheringEventDetailElement element = new GatheringEventDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
-    }
+               }
 
     public FieldObservationDetailElement createFieldObservationDetailElement(ICdmFormElement parentElement) {
         FieldObservationDetailElement element = new FieldObservationDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
-    }
+               }
 
     public DerivedUnitBaseDetailElement createDerivedUnitBaseDetailElement(ICdmFormElement parentElement) {
         DerivedUnitBaseDetailElement element = new DerivedUnitBaseDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
-        return element;
-    }
+               return element;
+       }
 
     public DeterminationDetailElement createDeterminationDetailElement(ICdmFormElement parentElement) {
         DeterminationDetailElement element = new DeterminationDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
-    }
+       }
 
-    /**
-     * @param parentElement
+       /**
+        * @param parentElement
      * @param element
-     */
+        */
     private void addAndAdaptElement(ICdmFormElement parentElement, AbstractCdmDetailElement<?> element) {
         adapt(element);
         parentElement.addElement(element);
@@ -1982,286 +2051,326 @@ public class CdmFormFactory extends FormToolkit {
         GroupsByUserDetailSection section = new GroupsByUserDetailSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
-    }
+               }
 
     public TaxonomicScopeSection createTaxonomicScopeSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
         TaxonomicScopeSection section = new TaxonomicScopeSection(this, conversation, parentElement, style);
         addAndAdaptSection(parentElement, section);
-        return section;
-    }
-
-    /**
-     * <p>
-     * createEntityCollectionElement
-     * </p>
-     *
-     * @param removeListener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     * @param style
-     *            a int.
-     * @param parentElement
+               return section;
+       }
+
+       /**
+        * <p>
+        * createEntityCollectionElement
+        * </p>
+        * 
+        * @param removeListener
+        *            a {@link org.eclipse.swt.events.SelectionListener} object.
+        * @param style
+        *            a int.
+        * @param parentElement
      *            a
      *            {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-     *            object.
-     * @param versionableEntity
-     *            a {@link eu.etaxonomy.cdm.model.common.IVersionableEntity}
-     *            object.
-     * @param backgroundColor
-     *            a {@link org.eclipse.swt.graphics.Color} object.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement}
-     *         object.
-     */
+        *            object.
+        * @param versionableEntity
+        *            a {@link eu.etaxonomy.cdm.model.common.IVersionableEntity}
+        *            object.
+        * @param backgroundColor
+        *            a {@link org.eclipse.swt.graphics.Color} object.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement}
+        *         object.
+        */
     public AbstractEntityCollectionElement createEntityCollectionElement(AbstractFormSection parentElement,
             Object versionableEntity, SelectionListener removeListener, Color backgroundColor, int style) {
-        AbstractEntityCollectionElement element = null;
+               AbstractEntityCollectionElement element = null;
 
-        Object entity = HibernateProxyHelper.deproxy(versionableEntity);
+               Object entity = HibernateProxyHelper.deproxy(versionableEntity);
 
-        if (entity instanceof Annotation) {
+               if (entity instanceof Annotation) {
             element = new AnnotationElement(this, parentElement, (Annotation) entity, removeListener, style);
-        } else if (entity instanceof Person) {
+               } else if (entity instanceof Person) {
             element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
-        } else if (entity instanceof Credit) {
+               } else if (entity instanceof Credit) {
             element = new CreditElement(this, parentElement, (Credit) entity, removeListener, style);
-        } else if (entity instanceof Extension) {
+               } else if (entity instanceof Extension) {
             element = new ExtensionElement(this, parentElement, (Extension) entity, removeListener, style);
-        } else if (entity instanceof Marker) {
+               } else if (entity instanceof Marker) {
             element = new MarkerElement(this, parentElement, (Marker) entity, removeListener, style);
-        } else if (entity instanceof Media) {
+               } else if (entity instanceof Media) {
             element = new MediaElement(this, parentElement, (Media) entity, removeListener, style);
-        } else if (entity instanceof MediaRepresentation) {
+               } else if (entity instanceof MediaRepresentation) {
             element = new MediaRepresentationElement(this, parentElement, (MediaRepresentation) entity, removeListener,
                     style);
-        } else if (entity instanceof ImageFile) {
+               } else if (entity instanceof ImageFile) {
             element = new ImageFileElement(this, parentElement, (ImageFile) entity, removeListener, style);
-        } else if (entity instanceof MediaRepresentationPart) {
+               } else if (entity instanceof MediaRepresentationPart){
             element = new MediaRepresentationPartElement(this, parentElement, (MediaRepresentationPart) entity,
                     removeListener, style);
-        } else if (entity instanceof NomenclaturalStatus) {
+               } else if (entity instanceof NomenclaturalStatus) {
             element = new NomenclaturalStatusElement(this, parentElement, (NomenclaturalStatus) entity, removeListener,
                     style);
-        } else if (entity instanceof Rights) {
+               } else if (entity instanceof Rights) {
             element = new RightsElement(this, parentElement, (Rights) entity, removeListener, style);
         } else if (entity instanceof DescriptionElementSource) {
             element = new DescriptionElementSourceElement(this, parentElement, (DescriptionElementSource) entity,
-                    removeListener, style);
-        } else if (entity instanceof IdentifiableSource) {
+                                       removeListener, style);
+               } 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 Reference) {
+               } 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) {
+               } else if (entity instanceof NameTypeDesignation) {
             element = new NameTypeDesignationElement(this, parentElement, (NameTypeDesignation) entity, removeListener,
                     style);
-        } else if (entity instanceof NameRelationship) {
+               } else if (entity instanceof NameRelationship) {
             element = new NameRelationshipDetailElement(this, parentElement, (NameRelationship) entity, removeListener,
                     style);
-        } else if (entity instanceof SpecimenTypeDesignation) {
+               } else if (entity instanceof SpecimenTypeDesignation) {
             element = new SpecimenTypeDesignationElement(this, parentElement, (SpecimenTypeDesignation) entity,
                     removeListener, style);
-        } else if (entity instanceof StateData) {
+               } else if (entity instanceof StateData) {
             element = new StateDataElement(this, parentElement, (StateData) entity, removeListener, style);
-        } else if (entity instanceof StatisticalMeasurementValue) {
+               } else if (entity instanceof StatisticalMeasurementValue) {
             element = new StatisticalMeasurementValueElement(this, parentElement, (StatisticalMeasurementValue) entity,
-                    removeListener, style);
-        } else if (entity instanceof DerivedUnit) {
-            element = new DerivedUnitElement(this, parentElement, (DerivedUnit) entity, removeListener, style);
-        } else if (entity instanceof NamedArea) {
+                                       removeListener, style);
+               } else if (entity instanceof DerivedUnit) {
+                       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) {
+               } 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);
-        } else if (entity instanceof User) {
+               } else if (entity instanceof User) {
             element = new MemberDetailElement(this, parentElement, (User) entity, removeListener, style);
-        } else if (entity instanceof GrantedAuthority) {
+               } else if (entity instanceof GrantedAuthority) {
             element = new GrantedAuthorityCollectionElement(this, parentElement, (GrantedAuthorityImpl) entity,
                     removeListener, style);
-        } else if (entity instanceof Group) {
+               } else if (entity instanceof Group) {
             element = new GroupsByUserDetailElement(this, parentElement, (Group) entity, removeListener, style);
-        } else if (entity instanceof Taxon) {
+               } else if (entity instanceof Taxon) {
             element = new TaxonDetailElement(this, parentElement, (Taxon) entity, removeListener, style);
-        } else if (entity instanceof DescriptionElementBase) {
-            // this is the special case for protologs, maybe we can do this
-            // differently when API improves
-            DescriptionElementBase descriptionElement = (DescriptionElementBase) entity;
-            if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) {
+               } else if (entity instanceof DescriptionElementBase) {
+                       // this is the special case for protologs, maybe we can do this
+                       // differently when API improves
+                       DescriptionElementBase descriptionElement = (DescriptionElementBase) entity;
+                       if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) {
                 element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
-            }
-        }
+                       }
+               }
 
-        if (element == null) {
+               if (element == null) {
             AbstractUtility.errorDialog("No element for entity", this,
                     "Could not generate element for entity. Looks like the case is not handled already. Check implementation. Entity: "
-                            + entity, null);
-        }
+                                                                       + entity, null);
 
-        else if (backgroundColor != null && !backgroundColor.isDisposed()) {
-            element.setPersistentBackground(backgroundColor);
-        }
+               }
 
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * Creates a selection element for the given type T.
-     * </p>
-     * <p>
-     * <strong>Selection elements not handled by this method:</strong>
-     * <ul>
+        else if (backgroundColor != null && !backgroundColor.isDisposed()) {
+                       element.setPersistentBackground(backgroundColor);
+               }
+
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+
+       /**
+        * <p>
+        * Creates a selection element for the given type T.
+        * </p>
+        * <p>
+        *      <strong>Selection elements not handled by this method:</strong>
+        *      <ul>
      * <li>{@link TaxonNodeSelectionElement} see
      * {@link #createTaxonNodeSelectionElement(ConversationHolder, ICdmFormElement, String, TaxonNode, int, int)}
      * </li>
      * <li>{@link NomenclaturalAuthorTeamSelectionElement} see
      * {@link #createNomenclaturalAuthorTeamSelectionElement(ConversationHolder, ICdmFormElement, String, Team, int, int)}
      * </li>
-     * </ul>
-     * </p>
-     *
-     * @param clazz
+        *      </ul>   
+        * </p>
+        * 
+        * @param clazz
      *            a {@link Class} object of the type that you want the selection
      *            element to handle
-     * @param parentElement
+        * @param parentElement
      *            a {@link ICdmFormElement} object.
-     * @param labelString
-     *            a {@link String} object.
-     * @param selectionType
-     * @param selection
-     *            a {@link ICdmBase} object.
-     * @param style
-     *            a int.
-     * @param conversation
-     *            a {@link ConversationHolder} object.
+        * @param labelString
+        *            a {@link String} object.
+        * @param selectionType
+        * @param selection
+        *            a {@link ICdmBase} object.
+        * @param style
+        *            a int.
+        * @param conversation
+        *            a {@link ConversationHolder} object.
      * @return a {@link EntitySelectionElement} object.
-     */
+        */
     public <T extends ICdmBase> EntitySelectionElement<T> createSelectionElement(Class<T> clazz,
             ConversationHolder conversation, ICdmFormElement parentElement, String labelString, T selection, int mode,
             int style) {
         EntitySelectionElement<T> element = new EntitySelectionElement<T>(this, conversation, parentElement, clazz,
                 labelString, selection, mode, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+       
     public TaxonNodeSelectionElement createTaxonNodeSelectionElement(ConversationHolder conversation,
             ICdmFormElement parentElement, String labelString, TaxonNode selection, int mode, int style) {
         TaxonNodeSelectionElement element = new TaxonNodeSelectionElement(this, conversation, parentElement,
                 labelString, selection, mode, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    public NomenclaturalAuthorTeamSelectionElement createNomenclaturalAuthorTeamSelectionElement(
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+       
+       public NomenclaturalAuthorTeamSelectionElement createNomenclaturalAuthorTeamSelectionElement(
             ConversationHolder conversation, ICdmFormElement parentElement, String labelString, Team selection,
             int mode, int style) {
         NomenclaturalAuthorTeamSelectionElement element = new NomenclaturalAuthorTeamSelectionElement(this,
                 conversation, parentElement, labelString, selection, mode, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /** {@inheritDoc} */
-    public LabelElement createLabel(ICdmFormElement parentElement, String text) {
-        LabelElement labelElement = new LabelElement(this, parentElement, text);
-        adapt(labelElement);
-        parentElement.addElement(labelElement);
-        return labelElement;
-    }
-
-    /**
-     * <p>
-     * Getter for the field <code>selectionProvider</code>.
-     * </p>
-     *
-     * @return a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-     */
-    public ISelectionProvider getSelectionProvider() {
-        return selectionProvider;
-    }
-
-    /**
-     * <p>
-     * createDetailedDescriptionDetailElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param entity
-     *            a
-     *            {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.description.detail.AbstractDetailedDescriptionDetailElement}
-     *         object.
-     */
-    public AbstractDetailedDescriptionDetailElement createDetailedDescriptionDetailElement(
+               adapt(element);
+               parentElement.addElement(element);
+               return element;
+       }
+       
+       
+       /** {@inheritDoc} */
+       public LabelElement createLabel(ICdmFormElement parentElement, String text) {
+               LabelElement labelElement = new LabelElement(this, parentElement, text);
+               adapt(labelElement);
+               parentElement.addElement(labelElement);
+               return labelElement;
+       }
+
+       /**
+        * <p>
+        * Getter for the field <code>selectionProvider</code>.
+        * </p>
+        * 
+        * @return a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
+        */
+       public ISelectionProvider getSelectionProvider() {
+               return selectionProvider;
+       }
+
+       /**
+        * <p>
+        * createDetailedDescriptionDetailElement
+        * </p>
+        * 
+        * @param parentElement
+        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+        *            object.
+        * @param entity
+        *            a
+        *            {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase}
+        *            object.
+        * @param style
+        *            a int.
+        * @return a
+        *         {@link eu.etaxonomy.taxeditor.ui.section.description.detail.AbstractDetailedDescriptionDetailElement}
+        *         object.
+        */
+       public AbstractDetailedDescriptionDetailElement createDetailedDescriptionDetailElement(
             ICdmFormElement parentElement, DescriptionElementBase entity, int style) {
-        AbstractDetailedDescriptionDetailElement detailedDescriptionElement = null;
+               AbstractDetailedDescriptionDetailElement detailedDescriptionElement = null;
 
-        if (entity instanceof CategoricalData) {
+               if (entity instanceof CategoricalData) {
             detailedDescriptionElement = new CategoricalDataDetailElement(this, parentElement,
                     (CategoricalData) entity, style);
-        } else if (entity instanceof CommonTaxonName) {
+               } else if (entity instanceof CommonTaxonName) {
             detailedDescriptionElement = new CommonNameDetailElement(this, parentElement, (CommonTaxonName) entity,
                     style);
-        } else if (entity instanceof Distribution) {
+               } else if (entity instanceof Distribution) {
             detailedDescriptionElement = new DistributionDetailElement(this, parentElement, (Distribution) entity,
                     style);
-        } else if (entity instanceof IndividualsAssociation) {
+               } else if (entity instanceof IndividualsAssociation) {
             detailedDescriptionElement = new IndividualsAssociationDetailElement(this, parentElement,
                     (IndividualsAssociation) entity, style);
-        } else if (entity instanceof QuantitativeData) {
+               } else if (entity instanceof QuantitativeData) {
             detailedDescriptionElement = new QuantitativeDataDetailElement(this, parentElement,
                     (QuantitativeData) entity, style);
-        } else if (entity instanceof TaxonInteraction) {
+               } else if (entity instanceof TaxonInteraction) {
             detailedDescriptionElement = new TaxonInteractionDetailElement(this, parentElement,
                     (TaxonInteraction) entity, style);
-        } else if (entity instanceof TextData) {
+               } else if (entity instanceof TextData) {
             detailedDescriptionElement = new TextDataDetailElement(this, parentElement, (TextData) entity, style);
-        } else {
+               } else {
             throw new IllegalStateException("There is no interface for the given description element");
-        }
-        adapt(detailedDescriptionElement);
-        parentElement.addElement(detailedDescriptionElement);
-        return detailedDescriptionElement;
-
-    }
-
-    /**
-     * Creates a styled text as a part of the form.
-     *
-     * @param parent
-     *            the text parent
-     * @param value
-     *            the text initial value
-     * @param style
-     *            the text style
-     * @return the text widget
-     */
-    public StyledText createStyledText(Composite parent, String value, int style) {
+               }
+               adapt(detailedDescriptionElement);
+               parentElement.addElement(detailedDescriptionElement);
+               return detailedDescriptionElement;
+
+       }
+
+       /**
+        * Creates a styled text as a part of the form.
+        * 
+        * @param parent
+        *            the text parent
+        * @param value
+        *            the text initial value
+        * @param style
+        *            the text style
+        * @return the text widget
+        */
+       public StyledText createStyledText(Composite parent, String value, int style) {
         StyledText text = new StyledText(parent, getBorderStyle() | style | getOrientation());
         if (value != null) {
-            text.setText(value);
+                       text.setText(value);
         }
-        text.setForeground(getColors().getForeground());
-        text.setBackground(getColors().getBackground());
-        // text.addFocusListener(visibilityHandler);
-        return text;
-    }
+               text.setForeground(getColors().getForeground());
+               text.setBackground(getColors().getBackground());
+               // text.addFocusListener(visibilityHandler);
+               return text;
+       }
+
+
+
+
+
 
 }
index c54e04d0327bcee02c5d29920230bf9e69747e2c..b44f464e6802ff2f988186c823aa835f8f2030a5 100644 (file)
@@ -16,6 +16,7 @@ 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;
 
 /**
  * <p>
@@ -145,8 +146,8 @@ public class DateDetailSection extends AbstractFormSection<TimePeriod> {
                        getEntity().setEnd(end);
                } else if (eventSource == text_parseText) {
                        cursorPosition = ((Text) text_parseText.getMainControl())
-                                       .getCaretPosition();
-                       setEntityInternally(TimePeriod.parseString(text_parseText.getText()));
+                                       .getCaretPosition();                    
+                       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..b144231
--- /dev/null
@@ -0,0 +1,112 @@
+// $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.cdm.model.common.TimePeriod;
+import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
+
+/**
+ * <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);
+       }
+}
+
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..6fb22d5
--- /dev/null
@@ -0,0 +1,274 @@
+// $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.layout.RowLayout;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
+
+/**
+ * <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 eab43db6772d2cbfd646e48ef84aa47a030f5540..755ecd3b10e39a60363c0b39f5f95b8d6bae6b77 100644 (file)
@@ -37,47 +37,23 @@ 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>
+        * <p>setNumber</p>
         *
-        * @param number a {@link java.lang.Integer} object.
+        * @param number a {@link java.lang.Number} object.
         */
-       public void setInteger(Integer number) {
-               super.setText(getStringRepresentation(number));
-       }
-       
-       /**
-        * <p>setFloat</p>
-        *
-        * @param number a {@link java.lang.Float} object.
-        */
-       public void setFloat(Float number) {
+       public void setNumber(Number number) {
                super.setText(getStringRepresentation(number));
        }
        
@@ -101,6 +77,16 @@ public class NumberWithLabelElement extends TextWithLabelElement {
                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();
index efcc8541c23fb5fdeaf708a8d7436a868decba81..72b26fcfcc05d890a115df9ca7732d737de9b565 100644 (file)
@@ -49,13 +49,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 +71,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..c6fbd056f10c04187faa9b57b33ed3117047f402 100644 (file)
@@ -74,7 +74,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 +179,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 f05ea9dd512d9e48dd9fa0e0aecb402896f5828f..d1ccc47b6b5290583aa808adc57214aee95c307d 100644 (file)
@@ -12,7 +12,7 @@ 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.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -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..112927630fc5e6e808c8213d8d084e77407460e3 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.dialog.selection.DerivedUnitSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -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..23f8e3f6d4596a07e2a4e578424c5213f93f74d2 100644 (file)
@@ -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 b74c7bfe55e2115c7d06ed681f5b1d89e081d1ab..aff1fbea835495ffde973dd6c9cd5b5761e9d2bd 100644 (file)
@@ -13,7 +13,7 @@ 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.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -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..13da781151f42c72c45e1d1da2d3640d347c6c60 100644 (file)
@@ -7,8 +7,11 @@ import java.util.Collection;
 
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+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;
@@ -37,7 +40,7 @@ public class DescriptionElementSourceSection extends AbstractEntityCollectionSec
        /** {@inheritDoc} */
        @Override
        public DescriptionElementSource createNewElement() {
-               return DescriptionElementSource.NewInstance();
+               return DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
        }
 
        /** {@inheritDoc} */
index 6e7e73d327b19cfe9c47484a7e517dfc5c7b5ba8..7d3b5d613961f2b4a6d837082e3c35e961a1455f 100644 (file)
@@ -14,7 +14,9 @@ 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.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 452d50bcb5c8e55d0153f411db6a37f116a85d66..efcef95e026df1c8327ffc86364b8007637a33b0 100644 (file)
@@ -12,7 +12,8 @@ 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.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -26,9 +27,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 +41,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 +56,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..686da6260d15741a9040fe0b380f9122263f4c8e 100644 (file)
@@ -13,8 +13,9 @@ 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.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 448b567c18bd72f62fd477139f45c00bac089719..db8e4ea2b5bb1533cb25ad4c730655a7d9cc421f 100644 (file)
@@ -12,7 +12,7 @@ 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.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -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..271687deaa8ea5ad3d192db003f657b4c0f434a5 100644 (file)
@@ -13,7 +13,8 @@ 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.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -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 07ea14414b9aa3c88558e624fa9d4b73ce8f1016..71a182699f1af7628e3f7175d52f3a304995925a 100644 (file)
@@ -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..012b6018092a2542ea7a04195b7e27c9153baec2 100644 (file)
@@ -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 9fd82032e8a919903e84099ce1fc3658e0e22d71..0a3090c48838d3956574ce136a779c9a60f011b0 100644 (file)
@@ -16,7 +16,7 @@ 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.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -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 c21c24900d40a42f3540325d3bfce1a74cd5e26c..e5627d0456f362d576c365930789ec39faf8ce97 100644 (file)
@@ -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 dcc723ef614c28a221deb19fd003db0270898cec..a0c12f1ae9c5bf29bbd9361cb2698429dbead165 100644 (file)
@@ -6,8 +6,9 @@ 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.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
@@ -16,7 +17,7 @@ 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 6d790a5ef585765111a9a53ed85c3fcbfba9e560..098620fd70d003c00b96a7bc129492c53277f732 100644 (file)
@@ -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 45d44c50733af89948b20e8da1900c82f2cb64ef..a5ef673414987ed2965ce762c3d0cc092dd6459b 100644 (file)
@@ -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 f628e9e26cb2b2b359cbfc8f9c9dc20cf64aa93d..0b4d91728e2750b88ae0ce417796878e14d1af92 100644 (file)
@@ -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 1fd7f9a170234d6c4bf5dcf0ed96fa3a23281ecc..1376e0ba682c4975ccb47f5a8c814f0e56540aae 100644 (file)
@@ -15,8 +15,8 @@ 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.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -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 2310b3d33266c8ba5d92af60178c2f82e899d8ca..204ab88223a42ca31badc9343260a37f51b49b70 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.
  */
@@ -14,10 +14,13 @@ 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.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -30,7 +33,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * <p>
  * DerivedUnitBaseDetailElement class.
  * </p>
- *
+ * 
  * @author n.hoffmann
  * @created Jun 24, 2010
  * @version 1.0
@@ -47,7 +50,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 +62,7 @@ public class DerivedUnitBaseDetailElement extends
         * <p>
         * Constructor for DerivedUnitBaseDetailElement.
         * </p>
-        *
+        * 
         * @param formFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -74,38 +78,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 edd068f7ff91d83f365e3d54c60da50ae5063128..501f929d2f7d9f3873fbb03fef272de3087ec310 100644 (file)
@@ -15,7 +15,7 @@ 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.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -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..57713fb8407a19523bea8a97e70925b0fd4e0cdc 100644 (file)
@@ -13,7 +13,7 @@ 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.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -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 92c0533da12c8f334ac831132f0c58674a54ae81..0b624b6c804b86b324b3c0bb3b883a181cc49896 100644 (file)
@@ -12,8 +12,9 @@ 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.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
@@ -34,7 +35,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 +106,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 7391066beee23e32ba3cb4ae1cf8bf7a198e78b8..2ed246cd26a19de6812674fd3b2c6deece79c2ed 100644 (file)
@@ -11,8 +11,8 @@
 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.cdm.model.common.TermType;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -40,9 +40,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 +65,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 f7d40c6d800f3b35385f157d575da28ca358c4db..ec26283ecf36e608ed668e8cc7748421049776db 100644 (file)
@@ -16,8 +16,10 @@ import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -34,18 +36,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 +67,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 c62ef9331024697be1a2fcb4a8a563891f8cd2e6..a5e8583a89142ad925344245f0ac76dbcc629229 100644 (file)
@@ -15,7 +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.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
@@ -25,6 +28,7 @@ import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection;
 
 /**
  * @author n.hoffmann
@@ -35,7 +39,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;
@@ -45,6 +49,7 @@ public class GeneralDetailElement extends
        private TextWithLabelElement text_collectingNumber;
        private EntitySelectionElement<Collection> selection_collection;
        private TextWithLabelElement text_accessionNumber;
+       
 
        /**
         * @param formFactory
@@ -68,7 +73,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 +85,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 +137,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 157480d4c45405d32c992c98183c3e82ca97061b..501d000bac2073ec9965b0a81fd5cc58f1a968d0 100644 (file)
@@ -15,6 +15,7 @@ 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.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..d988706447a02cc4846337f8955129614743f91b 100644 (file)
@@ -12,8 +12,7 @@ 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.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -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..7caf8bd4ce5a222857e23815911b7c1df32743b3 100644 (file)
@@ -14,7 +14,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.Specimen;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 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);
        }
 
index e004ba3f3ba908682ffb4d47da0599c8f97d9c8f..97d86685e6a348251f03466948ac1f2ffb0b2119 100644 (file)
@@ -13,6 +13,9 @@ 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.cdm.model.occurrence.SpecimenOrObservationType;
+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;
@@ -26,6 +29,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;
 
@@ -56,6 +60,9 @@ public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase
        /** {@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 f21ad121d5e8f125f47d6d7d8d18c55b11eacc51..4c381f8f6478d4b3034218ecb22b1a713dd7f96a 100644 (file)
@@ -6,6 +6,7 @@ package eu.etaxonomy.taxeditor.ui.section.supplemental;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -55,6 +56,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 +77,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 376afb8ec480326363efd3e1e7a9cf01ae5adf22..e748ba816ffc983511412018aecdcc7f0d6c841a 100644 (file)
@@ -7,7 +7,7 @@ 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.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -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 a176ae026cebd6531277cc66fd3f899d5ffce591..346cee5d4f0f3965418e7839edade9641c3e34ac 100644 (file)
@@ -8,9 +8,14 @@ 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.cdm.model.occurrence.DerivedUnit;
+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;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+
+import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog;;
 
 /**
  * <p>SourceSection class.</p>
@@ -36,7 +41,7 @@ public class SourceSection extends AbstractEntityCollectionSection<IIdentifiable
        /** {@inheritDoc} */
        @Override
        public IdentifiableSource createNewElement() {
-               return IdentifiableSource.NewInstance();
+               return IdentifiableSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
        }
 
        /** {@inheritDoc} */
index 32d02813fde7407d31e8f174597c2776627c0b7f..015af402f763c684af16b1742b20fa4a700b7054 100644 (file)
@@ -17,11 +17,12 @@ import java.util.Set;
 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
@@ -48,10 +49,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,11 +67,11 @@ 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
+               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
@@ -88,19 +89,19 @@ public class UseRecordDetailElement extends
                        combo_UseSubCategory.setEnabled(false);\r
                }\r
                \r
-               List<Modifier> plantPartsToAdd = setModifierComboTerms(TermStore.getTerms(Modifier.class, null, false), UsageTermCollection.plantPartLabel);\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
+               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
+               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
+               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 +117,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
@@ -136,8 +137,8 @@ public class UseRecordDetailElement extends
         * @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
@@ -161,9 +162,9 @@ public class UseRecordDetailElement extends
         * @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
@@ -218,8 +219,8 @@ public class UseRecordDetailElement extends
        \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
@@ -250,11 +251,11 @@ public class UseRecordDetailElement extends
         * @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
+                       for (DefinedTerm term : listOfTerms) {\r
        \r
                                if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(selectedHumangroup.getTitleCache()))) {\r
                                        termsToAdd.add(term);\r
@@ -265,11 +266,11 @@ 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
@@ -296,8 +297,8 @@ 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
@@ -306,7 +307,7 @@ public class UseRecordDetailElement extends
                                                        \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
@@ -335,15 +336,15 @@ public class UseRecordDetailElement extends
                                                        .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
                                combo_UseSubCategory.setEnabled(true);\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
@@ -360,8 +361,8 @@ public class UseRecordDetailElement extends
                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
@@ -386,12 +387,12 @@ public class UseRecordDetailElement extends
                                                        .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
                        } 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,22 +409,22 @@ 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
+                               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
@@ -434,22 +435,22 @@ public class UseRecordDetailElement extends
                }\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
-                               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,39 +461,44 @@ 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
-                               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
                                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
@@ -501,23 +507,23 @@ public class UseRecordDetailElement extends
                }\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
+                                       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
+                                       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
@@ -536,7 +542,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
@@ -567,8 +573,8 @@ public class UseRecordDetailElement extends
                                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
+                                       if (!getEntity().getStateData().isEmpty()) {\r
+                                               Iterator<StateData> itrExistingState = getEntity().getStateData().iterator();\r
                                                while(itrExistingState.hasNext()) {\r
                                                        StateData existingStateData = (StateData) itrExistingState.next();\r
                                                        Map<Language, LanguageString> modifyingText = existingStateData.getModifyingText();\r
@@ -585,13 +591,13 @@ 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
index 7c2da263c727d4019e6e7fb5441488db986f9ce2..caebbee49d8f0f3f6db5bda815ed2c962f933ab7 100644 (file)
@@ -26,7 +26,7 @@ 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;
@@ -95,12 +95,12 @@ 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
index 48679257e4cc203edb5179a63d10415ec15b5aab..ac75ba86b7a4caa422922aae28183125c2fb982c 100644 (file)
@@ -145,7 +145,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);
@@ -442,7 +442,7 @@ public class EntitySelectionElement<T extends ICdmBase> extends
        @Override
        public String getLabel() {
                if (label != null) {
-                       return label.getText();
+                       return label.getText() + " : ";
                }
                return null;
        }
index eeddbac30e66026f76a1f06cb4c03af6d99e2565..2443ae63eecef8cab2ecaf0e3c2610466aa4588f 100644 (file)
@@ -17,7 +17,7 @@ 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;
@@ -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);
index 6ae7c256f320f4c935e4903a460f251953297d65..813e6b782a55fc4a030867fa9f06d268865dc00a 100644 (file)
@@ -1,9 +1,10 @@
+
 // $Id$
 /**
  * Copyright (C) 2011 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.
  */
@@ -37,10 +38,11 @@ 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.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+
 import eu.etaxonomy.taxeditor.editor.UsageTermCollection;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -92,7 +94,7 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer;
 import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
 
 /**
- *
+ * 
  * The DetailsViewer handles the content of the details view (
  * {@link DetailsViewPart}).<br>
  * Depending on the type of the selected element the section of the details view
@@ -104,571 +106,577 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
  */
 public class DetailsViewer extends AbstractCdmDataViewer {
 
-    private ISelection selection;
-
-    /**
-     * <p>
-     * Constructor for DetailsViewer.
-     * </p>
-     *
-     * @param parent
-     *            a {@link org.eclipse.swt.widgets.Composite} object.
-     * @param viewPart
-     *            a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart}
-     *            object.
-     */
-    public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) {
-        super(parent, viewPart);
-    }
-
-    // START HACK TO MAKE THE DERIVED UNIT FACADE WORK
-    // since we are getting implementations of DerivedUnitBase from the bulk
-    // editor
-    // and not derived unit facade objects,
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer#setInput(java
-     * .lang.Object)
-     */
-    @Override
-    public void setInput(Object input) {
-        if (input instanceof DerivedUnitBase) {
-            try {
-                input = DerivedUnitFacade.NewInstance((DerivedUnitBase) input,
-                        PreferencesUtil.getDerivedUnitConfigurator());
-            } catch (DerivedUnitFacadeNotSupportedException e) {
+       private ISelection selection;
+
+       /**
+        * <p>
+        * Constructor for DetailsViewer.
+        * </p>
+        * 
+        * @param parent
+        *            a {@link org.eclipse.swt.widgets.Composite} object.
+        * @param viewPart
+        *            a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart}
+        *            object.
+        */
+       public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) {
+               super(parent, viewPart);
+       }
+
+       // START HACK TO MAKE THE DERIVED UNIT FACADE WORK
+       // since we are getting implementations of DerivedUnitBase from the bulk
+       // editor
+       // and not derived unit facade objects,
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer#setInput(java
+        * .lang.Object)
+        */
+       @Override
+       public void setInput(Object input) {
+               if (input instanceof DerivedUnit) {
+                       try {
+                               input = DerivedUnitFacade.NewInstance((DerivedUnit) input,
+                                               PreferencesUtil.getDerivedUnitConfigurator());
+                       } catch (DerivedUnitFacadeNotSupportedException e) {
                 AbstractUtility.error(getClass(), e);
-            }
-        }
-        super.setInput(input);
-    }
-
-    @Override
-    protected void markViewPartDirty() {
-        if (getInput() instanceof DerivedUnitFacade) {
+                       }
+               }
+               super.setInput(input);
+       }
+
+       @Override
+       protected void markViewPartDirty() {
+               if (getInput() instanceof DerivedUnitFacade) {
             getViewPart().changed(((DerivedUnitFacade) getInput()).innerDerivedUnit());
-        }
-
-        super.markViewPartDirty();
-    }
-
-    // END HACK TO MAKE THE DERIVED UNIT FACADE WORK
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.eclipse.jface.viewers.Viewer#refresh()
-     */
-    /** {@inheritDoc} */
-    @Override
-    protected void showParts() {
-        // FIXME (CM) : Need to clean out this code.
-        // Too much type checking to decide which detail view to display.
-        // Need to build in a mechanism where navigators / editors are 'aware'
-        // of the corresponding detail viewer.
+               }
+
+               super.markViewPartDirty();
+       }
+
+       // END HACK TO MAKE THE DERIVED UNIT FACADE WORK
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see org.eclipse.jface.viewers.Viewer#refresh()
+        */
+       /** {@inheritDoc} */
+       @Override
+       protected void showParts() {
+           // FIXME (CM) : Need to clean out this code.
+           // Too much type checking to decide which detail view to display.
+           // Need to build in a mechanism where navigators / editors are 'aware'
+           // of the corresponding detail viewer.
         Object input = getInput();
         if (input instanceof TaxonBase) {
-            createTaxonSections(rootElement);
+                       createTaxonSections(rootElement);
 
         } else if (input instanceof NonViralName) {
-            createNameSections(rootElement);
+                       createNameSections(rootElement);
 
         } else if (input instanceof Reference) {
-            createReferenceSections(rootElement);
+                       createReferenceSections(rootElement);
 
         } else if (input instanceof Team) {
-            createTeamDetailSection(rootElement);
+                       createTeamDetailSection(rootElement);
 
         } else if (input instanceof Person) {
-            createPersonDetailSection(rootElement);
+                       createPersonDetailSection(rootElement);
 
         } else if (input instanceof TeamOrPersonBase) {
-            createTeamOrPersonBaseDetailSection(rootElement);
+                       createTeamOrPersonBaseDetailSection(rootElement);
 
         } else if (input instanceof DescriptionBase) {
             Set<Marker> descriptionMarkers = ((DescriptionBase) input).getMarkers();
             MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(
                     UsageTermCollection.uuidUseMarkerType);
-            Boolean isUseDescription = false;
-            for (Marker marker : descriptionMarkers) {
-                if (marker.getMarkerType().equals(useMarkertype)) {
-                    isUseDescription = true;
-                }
-            }
+                       Boolean isUseDescription = false;
+                       for (Marker marker : descriptionMarkers) {
+                               if (marker.getMarkerType().equals(useMarkertype)) {
+                                       isUseDescription = true;
+                               }
+                       }
             if (((DescriptionBase) input).isImageGallery()) {
-                createImageGallerySection(rootElement);
+                               createImageGallerySection(rootElement);
 
-            } else if (isUseDescription) {
-                createUseDescriptionSection(rootElement);
-            } else {
-                createDescriptionSection(rootElement);
+                       } else if (isUseDescription) { 
+                               createUseDescriptionSection(rootElement);
+                       } else {
+                               createDescriptionSection(rootElement);
 
-            }
+                       }
         } else if (input instanceof DescriptionElementBase) {
             Set<Marker> descriptionMarkers = ((DescriptionElementBase) input).getInDescription().getMarkers();
             MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(
                     UsageTermCollection.uuidUseMarkerType);
-            Boolean isUseDescription = false;
-            for (Marker marker : descriptionMarkers) {
-                if (marker.getMarkerType().equals(useMarkertype)) {
-                    isUseDescription = true;
-                }
-            }
-
+                       Boolean isUseDescription = false;
+                       for (Marker marker : descriptionMarkers) {
+                               if (marker.getMarkerType().equals(useMarkertype)) {
+                                       isUseDescription = true;
+                               }
+                       }
+                       
             if (isUseDescription == true && input instanceof CategoricalData) {
-                createUseRecordSection(rootElement);
+                               createUseRecordSection(rootElement);
             } else {
-                createDescriptionElementSection(rootElement);
-            }
+                               createDescriptionElementSection(rootElement);
+                       }
 
         } else if (input instanceof Media) {
-            createMediaElementSection(rootElement);
+                       createMediaElementSection(rootElement);
 
         } else if (input instanceof DerivedUnitFacade) {
-            createDerivedUnitBaseElementSection(rootElement);
+                       createDerivedUnitBaseElementSection(rootElement);
 
         } else if (input instanceof FeatureNodeContainer) {
-            createFeatureDistributionSection(rootElement);
+                       createFeatureDistributionSection(rootElement);
 
         } else if (input instanceof PolytomousKey) {
-            // createPolytomousKeySection(rootElement);
+                       //createPolytomousKeySection(rootElement);
 
         } else if ((input instanceof PolytomousKeyNode) || (input instanceof PolytomousKeyRelationship)) {
-            createPolytomousKeyNodeSection(rootElement);
+                       createPolytomousKeyNodeSection(rootElement);
         } else if (input instanceof User) {
-            createUserSection(rootElement);
+                       createUserSection(rootElement);
         } else if (input instanceof Group) {
-            createGroupSection(rootElement);
+                       createGroupSection(rootElement);
         } else if (input instanceof TaxonRelationship) {
-            createTaxonRelationshipSection(rootElement);
+                       createTaxonRelationshipSection(rootElement);
         } else if (input instanceof TermVocabulary) {
-            createTermVocabularySection(rootElement);
+                       createTermVocabularySection(rootElement);
         } else if (input instanceof DefinedTermBase) {
-            createDefinedTermSection(rootElement);
-        } else {
-            destroySections();
-        }
-        layout();
-    }
-
-    /**
-     * @param rootElement
-     */
-    private void createGroupSection(RootElement parent) {
-        destroySections();
+                       createDefinedTermSection(rootElement);
+               } else {
+                       destroySections();
+               }
+               layout();
+       }
+
+       
+       /**
+        * @param rootElement
+        */
+       private void createGroupSection(RootElement parent) {
+               destroySections();
 
         GroupDetailSection groupDetailSection = formFactory.createGroupDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE| ExpandableComposite.EXPANDED);
         MemberDetailSection memberDetailSection = formFactory.createMemberDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
         GrantedAuthorityDetailSection grantedAuthorityDetailSection = formFactory.createGrantedAuthorityDetailSection(getConversationHolder(), parent,ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        addPart(groupDetailSection);
-        addPart(memberDetailSection);
-        addPart(grantedAuthorityDetailSection);
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.eclipse.jface.viewers.Viewer#getSelection()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public ISelection getSelection() {
-        return selection;
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers
-     * .ISelection, boolean)
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void setSelection(ISelection selection, boolean reveal) {
-        this.selection = selection;
+               addPart(groupDetailSection);
+               addPart(memberDetailSection);
+               addPart(grantedAuthorityDetailSection);
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see org.eclipse.jface.viewers.Viewer#getSelection()
+        */
+       /** {@inheritDoc} */
+       @Override
+       public ISelection getSelection() {
+               return selection;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers
+        * .ISelection, boolean)
+        */
+       /** {@inheritDoc} */
+       @Override
+       public void setSelection(ISelection selection, boolean reveal) {
+               this.selection = selection;
         SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent(this, selection);
-        fireSelectionChanged(selectionChangedEvent);
-    }
+               fireSelectionChanged(selectionChangedEvent);
+       }
 
-    /**
-     * createTaxonSections(RootElement parent)
+       /**
+        * createTaxonSections(RootElement parent)
      *
-     * @param parent
-     */
-    private void createTaxonSections(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createTaxonSections(RootElement parent) {
+               destroySections();
 
         TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NonViralNameDetailSection nonViralNameSection = formFactory.createNonViralNameDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE
                         | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(getConversationHolder(), parent, this, ExpandableComposite.EXPANDED);
 
-        addPart(taxonBaseDetailSection);
-        addPart(nonViralNameSection);
-        addPart(nomenclaturalStatusSection);
-        addPart(protologSection);
-        addPart(referenceDetailSection);
-        addPart(typeDesignationSection);
-        addPart(nameRelationshipSection);
-        addPart(parsingMessagesSection);
-    }
-
-    /**
-     * createNameSections
+               addPart(taxonBaseDetailSection);
+               addPart(nonViralNameSection);
+               addPart(nomenclaturalStatusSection);
+               addPart(protologSection);
+               addPart(referenceDetailSection);
+               addPart(typeDesignationSection);
+               addPart(nameRelationshipSection);
+               addPart(parsingMessagesSection);
+       }
+
+       /**
+        * createNameSections
      *
-     * @param parent
-     */
-    private void createNameSections(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createNameSections(RootElement parent) {
+               destroySections();
         NonViralNameDetailSection nonViralNameSection = formFactory.createNonViralNameDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        addPart(nonViralNameSection);
-        addPart(nomenclaturalStatusSection);
-        addPart(protologSection);
-        addPart(referenceDetailSection);
-        addPart(typeDesignationSection);
-        addPart(nameRelationshipSection);
-    }
+               addPart(nonViralNameSection);
+               addPart(nomenclaturalStatusSection);
+               addPart(protologSection);
+               addPart(referenceDetailSection);
+               addPart(typeDesignationSection);
+               addPart(nameRelationshipSection);
+       }
 
-    /**
-     * createReferenceSections
+       /**
+        * createReferenceSections
      *
-     * @param parent
-     */
-    private void createReferenceSections(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createReferenceSections(RootElement parent) {
+               destroySections();
 
         ReferenceDetailSection referenceDetailSection = formFactory.createReferenceDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        addPart(referenceDetailSection);
-    }
+               addPart(referenceDetailSection);
+       }
 
-    /**
-     * createTeamOrPersonBaseDetailSection
+       /**
+        * createTeamOrPersonBaseDetailSection
      *
-     * @param parent
-     */
-    private void createTeamOrPersonBaseDetailSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createTeamOrPersonBaseDetailSection(RootElement parent) {
+               destroySections();
         TeamOrPersonBaseDetailSection teamOrPersonBaseDetailSection = formFactory.createTeamOrPersonBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        addPart(teamOrPersonBaseDetailSection);
-    }
+               addPart(teamOrPersonBaseDetailSection);
+       }
 
-    /**
-     * createTeamDetailSection
+       /**
+        * createTeamDetailSection
      *
-     * @param parent
-     */
-    private void createTeamDetailSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createTeamDetailSection(RootElement parent) {
+               destroySections();
         TeamDetailSection teamDetailSection = formFactory.createTeamDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        addPart(teamDetailSection);
-    }
-
-    /**
-     * createPersonDetailSection
+               addPart(teamDetailSection);
+       }
+       
+       /**
+        * createPersonDetailSection
      *
-     * @param parent
-     */
-    private void createPersonDetailSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createPersonDetailSection(RootElement parent) {
+               destroySections();
         PersonDetailSection personDetailSection = formFactory.createPersonDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-        addPart(personDetailSection);
-    }
+               addPart(personDetailSection);
+       }
 
-    /**
-     * createDescriptionElementSection
+       /**
+        * createDescriptionElementSection
      *
-     * @param parent
-     */
-    private void createDescriptionElementSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createDescriptionElementSection(RootElement parent) {
+               destroySections();
 
         DescriptionElementDetailSection descriptionElementDetailSection = formFactory.createDescriptionElementDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         DescriptionElementSourceSection descriptionElementSourceSection = formFactory.createDescriptionElementSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         DescriptionElementMediaSection descriptionElementMediaSection = formFactory.createDescriptionElementMediaSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        addPart(descriptionElementDetailSection);
-        addPart(descriptionElementSourceSection);
-        addPart(descriptionElementMediaSection);
-    }
+               addPart(descriptionElementDetailSection);
+               addPart(descriptionElementSourceSection);
+               addPart(descriptionElementMediaSection);
+       }
 
-    /**
-     * createDescriptionSection
+       /**
+        * createDescriptionSection
      *
-     * @param parent
-     */
-    private void createDescriptionSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createDescriptionSection(RootElement parent) {
+               destroySections();
         DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NaturalLanguageSection naturalLanguageSection = formFactory.createNaturalLanguageSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         DescribedSpecimenSection describedSpecimenSection = formFactory.createDescribedSpecimenSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
-
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+//             DescriptionSourceSection descriptionSourceSection = (DescriptionSourceSection) formFactory
+//                             .createEntityDetailSection(EntityDetailType.DESCRIPTIONSOURCE,
+//                                             getConversationHolder(), parent, Section.TWISTIE);
+//
+//             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         ScopeSection scopeSection = formFactory.createScopeSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        addPart(descriptionDetailSection);
-        addPart(naturalLanguageSection);
-        addPart(describedSpecimenSection);
-        addPart(descriptionSourceSection);
-        addPart(scopeSection);
-    }
-
-    /**
-     * Creates the use Description section
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+
+               addPart(descriptionDetailSection);
+               addPart(naturalLanguageSection);
+               addPart(describedSpecimenSection);
+//             addPart(descriptionSourceSection);
+               addPart(scopeSection);
+       }
+       
+       /**
+        * Creates the use Description section
      *
-     * @param parent
-     */
-    private void createUseDescriptionSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createUseDescriptionSection(RootElement parent) {
+               destroySections();
         DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        addPart(descriptionDetailSection);
-        addPart(descriptionSourceSection);
+               addPart(descriptionDetailSection);
+               addPart(descriptionSourceSection);
+               
+       }
 
-    }
 
-    /**
-     * @param rootElement
-     */
-    private void createImageGallerySection(RootElement parent) {
-        destroySections();
+       /**
+        * @param rootElement
+        */
+       private void createImageGallerySection(RootElement parent) {
+               destroySections();
         DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        addPart(descriptionDetailSection);
-    }
-
-    /**
-     * createMediaElementSection
+               addPart(descriptionDetailSection);
+       }
+       
+       /**
+        * createMediaElementSection
      *
-     * @param parent
-     */
+        * @param parent
+        */
 
-    private void createMediaElementSection(RootElement parent) {
-        destroySections();
+       private void createMediaElementSection(RootElement parent) {
+               destroySections();
         MediaDetailsSection mediaDetailSection = formFactory.createMediaDetailsSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        addPart(mediaDetailSection);
-    }
+               addPart(mediaDetailSection);
+       }
 
-    /**
-     * createDerivedUnitBaseElementSection
+       /**
+        * createDerivedUnitBaseElementSection
      *
-     * @param parent
-     */
-    private void createDerivedUnitBaseElementSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createDerivedUnitBaseElementSection(RootElement parent) {
+               destroySections();
 
         GeneralDetailSection generalDetailSection = formFactory.createGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         FieldObservationDetailSection fieldObservationDetailSection = formFactory.createFieldObservationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
 
-        addPart(generalDetailSection);
-        addPart(gatheringEventDetailSection);
-        addPart(fieldObservationDetailSection);
-        addPart(derivedUnitBaseDetailSection);
-        addPart(determinationDetailSection);
-    }
+               addPart(generalDetailSection);
+               addPart(gatheringEventDetailSection);
+               addPart(fieldObservationDetailSection);
+               addPart(derivedUnitBaseDetailSection);
+               addPart(determinationDetailSection);
 
-    /**
-     * @param rootElement
-     */
-    private void createFeatureDistributionSection(RootElement parent) {
-        destroySections();
+       }
+
+       /**
+        * @param rootElement
+        */
+       private void createFeatureDistributionSection(RootElement parent) {
+               destroySections();
 
         FeatureDistributionDetailSection featureDistributionSection = formFactory.createFeatureDistributionDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        addPart(featureDistributionSection);
-    }
+               addPart(featureDistributionSection);
+       }
 
-    /**
-     * createPolytomousKeyNodeSection
+       /**
+        * createPolytomousKeyNodeSection
      *
-     * @param parent
-     */
-    private void createPolytomousKeyNodeSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createPolytomousKeyNodeSection(RootElement parent) {
+               destroySections();
 
         PolytomousKeyDetailSection polytomousKeyDetailSection = formFactory.createPolytomousKeyDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.COMPACT);
-
+        
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
+        
         PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection = formFactory.createPolytomousKeyNodeDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         TaxonomicScopeSection taxonomicScopeSection = formFactory.createTaxonomicScopeSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.COMPACT);
 
-        addPart(polytomousKeyDetailSection);
-        addPart(polytomousKeyNodeDetailSection);
-        addPart(taxonomicScopeSection);
-
-    }
+           addPart(polytomousKeyDetailSection);
+           addPart(polytomousKeyNodeDetailSection);
+           addPart(taxonomicScopeSection);
 
-    /**
-     * create the UseRecordSection
+       }
+       
+       /**
+        * create the UseRecordSection
      *
-     * @param parent
-     */
-    private void createUseRecordSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createUseRecordSection(RootElement parent) {
+               destroySections();
 
         UseRecordDetailSection descriptionUseRecordSection = formFactory.createUseRecordDetailSection(getConversationHolder(), parent, this,ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        addPart(descriptionUseRecordSection);
+               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+               
+               addPart(descriptionUseRecordSection);
+               
+               
+       }
 
-    }
-
-    /**
-     * createUserSection
+       /**
+        * createUserSection
      *
-     * @param parent
-     */
-    private void createUserSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createUserSection(RootElement parent) {
+               destroySections();
 
         UserDetailSection userDetailSection = formFactory.createUserDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
         GroupsByUserDetailSection groupByUserDetailSection = formFactory.createGroupsByUserDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
-        addPart(userDetailSection);
-        addPart(groupByUserDetailSection);
-    }
+               addPart(userDetailSection);
+               addPart(groupByUserDetailSection);
+       }
 
-    /**
-     * createTaxonRelationshipSection
+       /**
+        * createTaxonRelationshipSection
      *
-     * @param parent
-     */
-    private void createTaxonRelationshipSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createTaxonRelationshipSection(RootElement parent) {
+               destroySections();
 
         TaxonRelationshipDetailSection taxonRelationshipDetailSection = formFactory.createTaxonRelationshipDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
 
         ReferencedEntityDetailSection referencedEntityBaseDetailSection = formFactory.createReferencedEntityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-        addPart(taxonRelationshipDetailSection);
-        addPart(referencedEntityBaseDetailSection);
-    }
+               addPart(taxonRelationshipDetailSection);
+               addPart(referencedEntityBaseDetailSection);
+       }
 
-    /**
-     * @param rootElement
-     */
-    private void createTermVocabularySection(RootElement parent) {
-        destroySections();
+       /**
+        * @param rootElement
+        */
+       private void createTermVocabularySection(RootElement parent) {
+               destroySections();
 
         TermVocabularyDetailSection termVocabularyDetailSection = formFactory.createTermVocabularyDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-        addPart(termVocabularyDetailSection);
-    }
+               addPart(termVocabularyDetailSection);
+       }
 
-    /**
-     * createDefinedTermSection
+       /**
+        * createDefinedTermSection
      *
-     * @param parent
-     */
-    private void createDefinedTermSection(RootElement parent) {
-        destroySections();
+        * @param parent
+        */
+       private void createDefinedTermSection(RootElement parent) {
+               destroySections();
 
         AbstractFormSection definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-        addPart(definedTermDetailSection);
-    }
+               addPart(definedTermDetailSection);
+       }
 
     private void createFODetailsView(RootElement parent) {
         destroySections();
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
diff --git a/pom.xml b/pom.xml
index 19b9ed633e534761f2a361cab137c69fc3c748d1..33505614cc882a915e33ad6ffce2711dde9fbfc5 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
   <properties>
     <java.codelevel>1.6</java.codelevel>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <cdmlib.version>3.2.3-SNAPSHOT</cdmlib.version>
+    <cdmlib.version>3.3.0-SNAPSHOT</cdmlib.version>
     <!-- TODO can we use project.version ????? -->
     <tycho.version>0.14.0</tycho.version>
     <taxeditor.version>3.2.3-SNAPSHOT</taxeditor.version>