merged trunk into branch
authorPatric Plitzner <p.plitzner@bgbm.org>
Mon, 12 Aug 2013 13:02:42 +0000 (13:02 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Mon, 12 Aug 2013 13:02:42 +0000 (13:02 +0000)
108 files changed:
.gitattributes
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-commons-3.2.0-SNAPSHOT.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT-sources.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT-sources.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT-sources.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-sources.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-tests.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT-sources.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT-sources.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT-sources.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesViewPart.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/EditHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultView.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/PolytomousKeyWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractCdmFormElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractFormSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement2.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamOrPersonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/ClassificationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/ClassificationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ReferenceEntityDetailElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/RefereneEntityDetailElement.java with 91% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ReferencedEntityDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/MediaDetailsSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/NaturalLanguageSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateDataElement.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/CategoricalDataDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/QuantitativeDataDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureDistributionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectionWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitFacadeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldObservationWizardPage.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/GatheringEventDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventWizardPage.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/GeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeneralWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalReferenceDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/ParsingMessagesSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/UserDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/UserDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/DefinedTermDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaLevelDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermVocabularyDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmDataViewer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmEditorViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java

index b9d3beb9605feffa5ba3d0ef70f285567c8ecfc5..f736df09cfb50877024536893c6a17c9ebb4c544 100644 (file)
@@ -148,22 +148,6 @@ eu.etaxonomy.taxeditor.cdmlib/lib/batik-transcoder-1.7.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/batik-util-1.7.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/batik-xml-1.7.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/c3p0-0.9.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-commons-3.2.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-tests.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/cglib-nodep-2.2.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.aopalliance-1.0.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.apache.commons.logging-1.1.1.jar -text
@@ -211,6 +195,7 @@ eu.etaxonomy.taxeditor.cdmlib/lib/hsqldb-1.8.0.10.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/httpclient-4.2.3.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/httpcore-4.2.4.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/icu4j-2.6.1.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.4.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-asl-1.8.8.jar -text
@@ -256,6 +241,8 @@ eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-0.8.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-java-0.8.7.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/ognl-2.6.9.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar -text
+eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/org.osgi.core-1.0.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.aop-3.2.2.RELEASE.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.aspects-3.2.2.RELEASE.jar -text
@@ -1298,6 +1285,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/Roo
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/SelectionArbitrator.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextActionElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement2.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TimePeriodElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ToggleableTextElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/UriWithLabelElement.java -text
@@ -1341,8 +1329,8 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/cla
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ReferenceEntityDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ReferencedEntityDetailSection.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/RefereneEntityDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DerivedUnitElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescribedSpecimenSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailElement.java -text
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-commons-3.2.0-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-commons-3.2.0-SNAPSHOT.jar
deleted file mode 100644 (file)
index 99c6fb1..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-commons-3.2.0-SNAPSHOT.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT-sources.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT-sources.jar
deleted file mode 100644 (file)
index 2e8747c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT-sources.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT.jar
deleted file mode 100644 (file)
index c635851..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-ext-3.2.0-SNAPSHOT.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT-sources.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT-sources.jar
deleted file mode 100644 (file)
index 0f04548..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT-sources.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT.jar
deleted file mode 100644 (file)
index 0dd1865..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-io-3.2.0-SNAPSHOT.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT-sources.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT-sources.jar
deleted file mode 100644 (file)
index c3171e8..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT-sources.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT.jar
deleted file mode 100644 (file)
index a55b4fc..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-model-3.2.0-SNAPSHOT.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-sources.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-sources.jar
deleted file mode 100644 (file)
index a1bd690..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-sources.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-tests.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-tests.jar
deleted file mode 100644 (file)
index b621f4d..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT-tests.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT.jar
deleted file mode 100644 (file)
index 9922c6c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-persistence-3.2.0-SNAPSHOT.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT-sources.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT-sources.jar
deleted file mode 100644 (file)
index 49a4974..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT-sources.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT.jar
deleted file mode 100644 (file)
index a8a30c3..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-print-3.2.0-SNAPSHOT.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT-sources.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT-sources.jar
deleted file mode 100644 (file)
index 768828c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT-sources.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT.jar
deleted file mode 100644 (file)
index 7d804d9..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-remote-3.2.0-SNAPSHOT.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT-sources.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT-sources.jar
deleted file mode 100644 (file)
index cad99d7..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT-sources.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT.jar
deleted file mode 100644 (file)
index 28bfcae..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-services-3.2.0-SNAPSHOT.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar
new file mode 100755 (executable)
index 0000000..2ec64a8
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar
new file mode 100644 (file)
index 0000000..4cf488e
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar
new file mode 100644 (file)
index 0000000..f131a43
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar differ
index 669c354dc6d268f6a44b04402f8d47f805c64af5..207b5d2f031da8a784189d35170f4b1e942ba22c 100644 (file)
@@ -1,8 +1,8 @@
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -32,6 +32,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
 import eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
@@ -39,10 +40,10 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
- * 
+ *
  * Generates the tabbed editor with <code>TaxonNameEditor</code> on top and tabs
  * for "Descriptions", "Concepts", "Geography", etc.
- * 
+ *
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 15.05.2008
@@ -83,7 +84,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
         */
        /** {@inheritDoc} */
@@ -107,7 +108,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
                        // EditorUtil.showPropertySheet();
 
                } catch (PartInitException e) {
-                       EditorUtil.error(getClass(), e);
+                       AbstractUtility.error(getClass(), e);
                }
        }
 
@@ -121,41 +122,34 @@ public class MultiPageTaxonEditor extends FormEditor implements
                        }
                        monitor.worked(1);
 
-                       for (IEditorPart editorPage : getPages()) {
-                               if (editorPage instanceof TaxonNameEditor) {
-                                       if (((TaxonNameEditor) editorPage).checkForEmptyNames()) {
-                                               MessageDialog
-                                                               .openWarning(
-                                                                               EditorUtil.getShell(),
-                                                                               "No Name Specified",
-                                                                               "An attempt was made to save a taxon or synonym with "
-                                                                                               + "an empty name. Operation was cancelled.");
-                                               return;
-                                       }
-                               }
-
-                               editorPage.doSave(monitor);
-                               monitor.worked(1);
-                       }
+            for (IEditorPart editorPage : getPages()) {
+                if (editorPage instanceof TaxonNameEditor) {
+                    if (((TaxonNameEditor) editorPage).checkForEmptyNames()) {
+                        MessageDialog.openWarning(AbstractUtility.getShell(), "No Name Specified",
+                                "An attempt was made to save a taxon or synonym with "
+                                        + "an empty name. Operation was cancelled.");
+                        return;
+                    }
+                }
+
+                editorPage.doSave(monitor);
+                monitor.worked(1);
+            }
 
                        // commit the conversation and start a new transaction immediately
                        conversation.commit(true);
                        monitor.worked(1);
 
-                       this.setDirty(false);
-                       monitor.worked(1);
-               } catch (Exception e) {
-                       setFocus();
-                       EditorUtil
-                                       .errorDialog(
-                                                       "An error occurred while saving",
-                                                       getClass(),
-                                                       "An error occurred while saving the editor. Please close and reopen the taxon again.",
-                                                       e);
-                       disableEditor(true);
-               } finally {
-                       monitor.done();
-               }
+            this.setDirty(false);
+            monitor.worked(1);
+        } catch (Exception e) {
+            setFocus();
+            AbstractUtility.errorDialog("An error occurred while saving", getClass(),
+                    "An error occurred while saving the editor. Please close and reopen the taxon again.", e);
+            disableEditor(true);
+        } finally {
+            monitor.done();
+        }
        }
 
        private void disableEditor(boolean isOnError) {
@@ -163,7 +157,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
                        if(isOnError){
                                editorPage.setOnError();
                        }else {
-                               editorPage.setDisabled();                               
+                               editorPage.setDisabled();
                        }
                }
                conversation.unregisterForDataStoreChanges(this);
@@ -178,23 +172,24 @@ public class MultiPageTaxonEditor extends FormEditor implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.MultiPageEditorPart#isDirty()
         */
        /**
         * <p>
         * isDirty
         * </p>
-        * 
+        *
         * @return a boolean.
         */
-       public boolean isDirty() {
+       @Override
+    public boolean isDirty() {
                return dirty;
        }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.forms.editor.FormEditor#editorDirtyStateChanged()
         */
        /** {@inheritDoc} */
@@ -206,7 +201,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
 
        /**
         * {@inheritDoc}
-        * 
+        *
         * Checks whether nested editors are calling
         * <code>firePropertyChange(PROP_DIRTY)</code> to signal an edit has taken
         * place before passing property change along to
@@ -214,10 +209,11 @@ public class MultiPageTaxonEditor extends FormEditor implements
         */
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.MultiPageEditorPart#handlePropertyChange(int)
         */
-       protected void handlePropertyChange(int propertyId) {
+       @Override
+    protected void handlePropertyChange(int propertyId) {
                if (propertyId == PROP_DIRTY) {
                        setDirty(true);
                }
@@ -240,9 +236,10 @@ public class MultiPageTaxonEditor extends FormEditor implements
        public void init(IEditorSite site, IEditorInput input)
                        throws PartInitException {
 
-               if (!(input instanceof TaxonEditorInput))
-                       throw new PartInitException(
+               if (!(input instanceof TaxonEditorInput)) {
+            throw new PartInitException(
                                        "Invalid Input: Must be TaxonEditorInput");
+        }
 
                this.input = (TaxonEditorInput) input;
 
@@ -289,29 +286,29 @@ public class MultiPageTaxonEditor extends FormEditor implements
                setPartName(partName);
        }
 
-       /**
-        * {@inheritDoc}
-        * 
-        * Editor pages call this in their postOperation to notify the
-        * MultiPageTaxonEditor of unsaved changes
-        */
-       public void changed(Object element) {
-               // setDirty(true);
-               dirty = true;
-               super.editorDirtyStateChanged();
-               if (element instanceof TaxonBase) {
-                       TaxonNameEditor page = (TaxonNameEditor) getPage(Page.NAME);
-                       AbstractGroupedContainer container = page
-                                       .getContainer((TaxonBase) element);
-                       if (container != null) {
-                               container.refresh();
-                       }
-               }
-       }
+    /**
+     * {@inheritDoc}
+     *
+     * Editor pages call this in their postOperation to notify the
+     * MultiPageTaxonEditor of unsaved changes
+     */
+    @Override
+    public void changed(Object element) {
+        // setDirty(true);
+        dirty = true;
+        super.editorDirtyStateChanged();
+        if (element instanceof TaxonBase) {
+            TaxonNameEditor page = (TaxonNameEditor) getPage(Page.NAME);
+            AbstractGroupedContainer container = page.getContainer((TaxonBase) element);
+            if (container != null) {
+                container.refresh();
+            }
+        }
+    }
 
        /**
         * The accepted taxon that is the input for this editor
-        * 
+        *
         * @return the accepted taxon
         */
        public Taxon getTaxon() {
@@ -320,7 +317,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
         * ()
@@ -329,11 +326,12 @@ public class MultiPageTaxonEditor extends FormEditor implements
         * <p>
         * getConversationHolder
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *         object.
         */
-       public ConversationHolder getConversationHolder() {
+       @Override
+    public ConversationHolder getConversationHolder() {
                return conversation;
        }
 
@@ -341,7 +339,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
         * <p>
         * setConversationHolder
         * </p>
-        * 
+        *
         * @param conversation
         *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *            object.
@@ -354,7 +352,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
         * <p>
         * Getter for the field <code>undoContext</code>.
         * </p>
-        * 
+        *
         * @return a {@link org.eclipse.core.commands.operations.IUndoContext}
         *         object.
         */
@@ -366,7 +364,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
         * <p>
         * Setter for the field <code>undoContext</code>.
         * </p>
-        * 
+        *
         * @param undoContext
         *            a {@link org.eclipse.core.commands.operations.IUndoContext}
         *            object.
@@ -385,53 +383,50 @@ public class MultiPageTaxonEditor extends FormEditor implements
                getActiveEditor().setFocus();
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu
-        * .etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
-        */
-       /** {@inheritDoc} */
-       public void update(CdmDataChangeMap events) {
-               if (dataChangeBehavior == null) {
-                       dataChangeBehavior = new MultiPageTaxonEditorDataChangeBehaviour(
-                                       this);
-               }
-
-               DataChangeBridge.handleDataChange(events, dataChangeBehavior);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * eu.etaxonomy.taxeditor.store.operations.IPostOperationEnabled#postOperation
-        * ()
-        */
-       /** {@inheritDoc} */
-       public boolean postOperation(CdmBase objectAffectedByOperation) {
-               setDirty(true);
-
-               for (IEditorPart editor : this.getPages()) {
-                       if (editor instanceof IPostOperationEnabled) {
-                               ((IPostOperationEnabled) editor)
-                                               .postOperation(objectAffectedByOperation);
-                       } else {
-                               EditorUtil.warn(getClass(),
-                                               "postOperation not enabled for editor " + editor);
-                       }
-               }
-               EditorUtil
-                               .warn(getClass(),
-                                               "postOperation called on MultiPageTaxonEditor. Can you make it more specific?");
-
-               return false;
-       }
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu
+     * .etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void update(CdmDataChangeMap events) {
+        if (dataChangeBehavior == null) {
+            dataChangeBehavior = new MultiPageTaxonEditorDataChangeBehaviour(this);
+        }
+
+        DataChangeBridge.handleDataChange(events, dataChangeBehavior);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.store.operations.IPostOperationEnabled#postOperation
+     * ()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public boolean postOperation(CdmBase objectAffectedByOperation) {
+        setDirty(true);
+
+        for (IEditorPart editor : this.getPages()) {
+            if (editor instanceof IPostOperationEnabled) {
+                ((IPostOperationEnabled) editor).postOperation(objectAffectedByOperation);
+            } else {
+                AbstractUtility.warn(getClass(), "postOperation not enabled for editor " + editor);
+            }
+        }
+        AbstractUtility.warn(getClass(), "postOperation called on MultiPageTaxonEditor. Can you make it more specific?");
+
+        return false;
+    }
 
        /**
         * Returns an <code>IEditorPart</code> implementation by type
-        * 
+        *
         * @param page
         *            the page type
         * @return a {@link eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage}
@@ -449,7 +444,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
        /**
         * Return a list of <code>AbstractTaxonEditor</code>s registered with this
         * <code>MultiPageTaxonEditor</code>.
-        * 
+        *
         * @return a {@link java.util.List} object.
         */
        public List<IMultiPageTaxonEditorPage> getPages() {
@@ -463,7 +458,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
 
        /**
         * Refreshes a certain page of the MultipageTaxonEditor
-        * 
+        *
         * @param page
         *            a {@link eu.etaxonomy.taxeditor.editor.Page} object.
         * @return a boolean.
@@ -475,7 +470,7 @@ public class MultiPageTaxonEditor extends FormEditor implements
        /**
         * Refreshes a certain page of the MultipageTaxonEditor and sets focus to
         * that page
-        * 
+        *
         * @param page
         *            a {@link eu.etaxonomy.taxeditor.editor.Page} object.
         * @param focus
@@ -491,46 +486,42 @@ public class MultiPageTaxonEditor extends FormEditor implements
         * <p>
         * onComplete
         * </p>
-        * 
+        *
         * @return a boolean.
         */
-       public boolean onComplete() {
+       @Override
+    public boolean onComplete() {
                return false;
        }
 
-       /**
-        * Reloads the data for this
-        */
-       public void reload() {
-               if (isDirty()) {
-                       EditorUtil
-                                       .warningDialog(
-                                                       "Editor has unsaved data",
-                                                       getClass(),
-                                                       "This editor can not be "
-                                                                       + "refreshed because it contains unsaved data. Refreshing "
-                                                                       + "this editor would discard the changes. Please save this editor, "
-                                                                       + "close and reopen it manually in order to get the latest content");
-               } else {
-                       TaxonEditorInput input = (TaxonEditorInput) getEditorInput();
-
-                       UUID uuid = input.getTaxonNode().getUuid();
-
-                       conversation.clear();
-
-                       try {
-                               TaxonEditorInput newInput = TaxonEditorInput.NewInstance(uuid);
-                               setInput(newInput);
-                               for (IMultiPageTaxonEditorPage editorPart : getPages()) {
-                                       editorPart.redraw();
-                               }
-                       } catch (Exception e) {
-                               EditorUtil.errorDialog("Error refreshing editor", getClass(),
-                                               "Could not refresh this editor", e);
-                       }
-               }
-       }
-       
+    /**
+     * Reloads the data for this
+     */
+    public void reload() {
+        if (isDirty()) {
+            AbstractUtility.warningDialog("Editor has unsaved data", getClass(), "This editor can not be "
+                    + "refreshed because it contains unsaved data. Refreshing "
+                    + "this editor would discard the changes. Please save this editor, "
+                    + "close and reopen it manually in order to get the latest content");
+        } else {
+            TaxonEditorInput input = (TaxonEditorInput) getEditorInput();
+
+            UUID uuid = input.getTaxonNode().getUuid();
+
+            conversation.clear();
+
+            try {
+                TaxonEditorInput newInput = TaxonEditorInput.NewInstance(uuid);
+                setInput(newInput);
+                for (IMultiPageTaxonEditorPage editorPart : getPages()) {
+                    editorPart.redraw();
+                }
+            } catch (Exception e) {
+                AbstractUtility.errorDialog("Error refreshing editor", getClass(), "Could not refresh this editor", e);
+            }
+        }
+    }
+
        @Override
        public String toString() {
                return String.format("%s[%s]", this.getClass().getSimpleName(), getEditorInput());
index 16fa9b076ea3bc843909a9bc6a3dad2a863bf0e2..403a6b25c51b5d1b156a5d3df6d5570e1d22bf8d 100644 (file)
@@ -1,8 +1,8 @@
 /**\r
  * Copyright (C) 2011 EDIT\r
- * European Distributed Institute of Taxonomy \r
+ * European Distributed Institute of Taxonomy\r
  * http://www.e-taxonomy.eu\r
- * \r
+ *\r
  * The contents of this file are subject to the Mozilla Public License Version 1.1\r
  * See LICENSE.TXT at the top of this package for the full license terms.\r
  */\r
@@ -19,58 +19,56 @@ import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDragList
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDropAdapter;\r
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementTransfer;\r
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;\r
-import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;\r
-import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;\r
 \r
 \r
 /**\r
- * The Class create a speific Use View to keep the taxonomic view clean\r
- * @author a.theys     \r
+ * The Class create a specific Use View to keep the taxonomic view clean\r
+ * @author a.theys\r
  * @created mar 13, 2012\r
  * @version 1.0\r
  */\r
-public class UsesViewPart extends DescriptiveViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData {\r
+public class UsesViewPart extends DescriptiveViewPart {\r
 \r
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.uses"</code> */\r
        public static final String ID = "eu.etaxonomy.taxeditor.editor.view.uses";\r
        /** {@inheritDoc} */\r
        @Override\r
        public void createViewer(Composite parent) {\r
-               \r
+\r
                viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL\r
                                | SWT.V_SCROLL | SWT.FULL_SELECTION));\r
                viewer.setContentProvider(new UsesContentProvider(featureNodeContainerCache));\r
                viewer.setLabelProvider(new UsesLabelProvider());\r
                viewer.setAutoExpandLevel(2);\r
-               \r
-               \r
-               \r
+\r
+\r
+\r
                Transfer[] transfers = new Transfer[] { DescriptionElementTransfer.getInstance() };\r
                viewer.addDragSupport(dndOperations, transfers, new DescriptionElementDragListener(\r
                                this));\r
                viewer.addDropSupport(dndOperations, transfers,\r
                                new DescriptionElementDropAdapter(viewer));\r
-                                               \r
+\r
                // Propagate selection from viewer\r
                getSite().setSelectionProvider(viewer);\r
-               \r
-               showAllElementsAction = new ToggleDescriptionAction(false);             \r
+\r
+               showAllElementsAction = new ToggleDescriptionAction(false);\r
                hideAllElementsAction = new ToggleDescriptionAction(true);\r
-               \r
+\r
                // Add context menu to tree\r
                createMenu();\r
-               \r
+\r
                createToolbar();\r
 \r
        }\r
-       \r
+\r
        /** {@inheritDoc} */\r
        @Override\r
        public boolean postOperation(CdmBase objectAffectedByOperation) {\r
                viewer.refresh();\r
                return super.postOperation(objectAffectedByOperation);\r
        }\r
-       \r
+\r
 \r
 \r
 }\r
index 5925be91e873ab2ed6bc4acddf15898b199cac96..9fdb66b7acb266a0dcae034a2c7766d74e3b7150 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -37,7 +37,6 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.OpenEditorConfiguration;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -53,36 +52,36 @@ import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
  */
 public class NavigationUtil extends AbstractUtility{
        private static IUndoContext defaultUndoContext;
-               
+
        /**
         * <p>executeEditHandler</p>
         */
        public static void executeEditHandler(){
 
                String commandId = "eu.etaxonomy.taxeditor.navigation.command.editSelection";
-               
-               IHandlerService handlerService = (IHandlerService) NavigationUtil.getService(IHandlerService.class); 
+
+               IHandlerService handlerService = (IHandlerService) AbstractUtility.getService(IHandlerService.class);
                try {
                        handlerService.executeCommand(commandId, null);
                } catch (ExecutionException e) {
-                       NavigationUtil.error(NavigationUtil.class, e);
+                       AbstractUtility.error(NavigationUtil.class, e);
                } catch (NotDefinedException e) {
-                       NavigationUtil.error(NavigationUtil.class, e);
+                       AbstractUtility.error(NavigationUtil.class, e);
                } catch (NotEnabledException e) {
-                       NavigationUtil.error(NavigationUtil.class, e);
+                       AbstractUtility.error(NavigationUtil.class, e);
                } catch (NotHandledException e) {
-                       NavigationUtil.error(NavigationUtil.class, e);
+                       AbstractUtility.error(NavigationUtil.class, e);
                }
        }
-       
+
        /**
         * <p>openEditor</p>
         *
         * @param selectedObject a {@link eu.etaxonomy.cdm.model.common.CdmBase} object.
         */
        public static void openEditor(ICdmBase selectedObject){
-               UUID entityUuid = selectedObject.getUuid();     
-               try {   
+               UUID entityUuid = selectedObject.getUuid();
+               try {
                        if(selectedObject instanceof TaxonNode){
                                EditorUtil.openTaxonNode(entityUuid);
                        }else if(selectedObject instanceof TaxonBase){
@@ -96,12 +95,12 @@ public class NavigationUtil extends AbstractUtility{
                                warningDialog("Unsupported Type", NavigationUtil.class, "No editor exists for the current selection: " + selectedObject);
                        }
                } catch (PartInitException e) {
-                       NavigationUtil.error(NavigationUtil.class, "Error opening the editor", e);
+                       AbstractUtility.error(NavigationUtil.class, "Error opening the editor", e);
                } catch (Exception e) {
-                       EditorUtil.warningDialog("Could not create Taxon", NavigationUtil.class, e.getMessage());
+                       AbstractUtility.warningDialog("Could not create Taxon", NavigationUtil.class, e.getMessage());
                }
        }
-       
+
        public static void openEditor(Object selectedObject){
                if (selectedObject instanceof UuidAndTitleCache){
                        Class type = ((UuidAndTitleCache) selectedObject).getType();
@@ -109,16 +108,16 @@ public class NavigationUtil extends AbstractUtility{
                                try {
                                        EditorUtil.openTaxonBase(((UuidAndTitleCache) selectedObject).getUuid());
                                } catch (PartInitException e) {
-                                       NavigationUtil.error(NavigationUtil.class, "Error opening the editor", e);
+                                       AbstractUtility.error(NavigationUtil.class, "Error opening the editor", e);
                                }
                        }
                }else if(selectedObject instanceof ICdmBase){
-                       openEditor((ICdmBase) selectedObject); 
+                       openEditor((ICdmBase) selectedObject);
                }else{
-                       NavigationUtil.error(NavigationUtil.class, new IllegalArgumentException("Selected object is not supported: " + selectedObject));
+                       AbstractUtility.error(NavigationUtil.class, new IllegalArgumentException("Selected object is not supported: " + selectedObject));
                }
        }
-       
+
        /**
         * <p>openEmpty</p>
         *
@@ -128,10 +127,10 @@ public class NavigationUtil extends AbstractUtility{
                try {
                        EditorUtil.openEmpty(parentNodeUuid);
                } catch (PartInitException e) {
-                       NavigationUtil.error(NavigationUtil.class, "Error opening the editor", e);
+                       AbstractUtility.error(NavigationUtil.class, "Error opening the editor", e);
                }
        }
-       
+
        /**
         * <p>getShell</p>
         *
@@ -150,7 +149,7 @@ public class NavigationUtil extends AbstractUtility{
                return TaxeditorNavigationPlugin.getDefault().getWorkbench().
                                getActiveWorkbenchWindow();
        }
-       
+
        /**
         * <p>getWorkbenchUndoContext</p>
         *
@@ -169,10 +168,10 @@ public class NavigationUtil extends AbstractUtility{
        public static IUndoContext getUndoContext() {
                // FIXME this has to be more specific. Every widget has to have its own undo context
 //             return IOperationHistory.GLOBAL_UNDO_CONTEXT;
-               
-               // Plug-ins that wish their operations to be undoable from workbench views 
-               // such as the Navigator or Package Explorer should assign the workbench 
-               // undo context to their operations. 
+
+               // Plug-ins that wish their operations to be undoable from workbench views
+               // such as the Navigator or Package Explorer should assign the workbench
+               // undo context to their operations.
                if (defaultUndoContext == null) {
                        defaultUndoContext = new UndoContext();
                }
@@ -186,9 +185,9 @@ public class NavigationUtil extends AbstractUtility{
         * @return a boolean.
         */
        public static boolean isDirty(TaxonNode taxonNode){
-               
+
                for (IEditorReference reference : getActivePage().getEditorReferences()) {
-                       
+
                        try {
                                if (reference.getEditorInput() instanceof TaxonEditorInput) {
                                        TaxonEditorInput editorInput = (TaxonEditorInput) reference.getEditorInput();
@@ -197,10 +196,10 @@ public class NavigationUtil extends AbstractUtility{
                                        }
                                }
                        } catch (PartInitException e) {
-                               NavigationUtil.error(NavigationUtil.class, e.getMessage(), e);
+                               AbstractUtility.error(NavigationUtil.class, e.getMessage(), e);
                                throw new RuntimeException(e);
                        }
-                       
+
                }
                return false;
        }
@@ -214,7 +213,8 @@ public class NavigationUtil extends AbstractUtility{
        public static void selectInNavigator(final Object element, final Object parentElement) {
                Display.getDefault().asyncExec(new Runnable(){
 
-                       public void run() {
+                       @Override
+            public void run() {
                                TaxonNavigator navigator = showNavigator();
 
                                if (navigator != null) {
@@ -223,11 +223,11 @@ public class NavigationUtil extends AbstractUtility{
                                                if (parentElement != null) {
                                                        viewer.setExpandedState(parentElement, true);
                                                }
-                                               viewer.setSelection(new StructuredSelection((TaxonNode) element));
+                                               viewer.setSelection(new StructuredSelection(element));
                                        }
                                }
                        }
-                       
+
                });
        }
 
@@ -239,18 +239,18 @@ public class NavigationUtil extends AbstractUtility{
        public static void openSearch(Object selection) {
                if(selection instanceof Taxon){
                        Taxon taxon = (Taxon) selection;
-                       
+
                        handleOpeningOfMultipleTaxonNodes(taxon.getTaxonNodes());
-                       
+
                }else if(selection instanceof Synonym){
                        Synonym synonym = (Synonym) selection;
-                       
+
                        handleOpeningOfMultipleTaxa(synonym.getAcceptedTaxa());
-                       
+
                }else{
                        warningDialog("Not implemented yet", NavigationUtil.class, "You chose to open a name that has no connection to a taxon. The Editor does not support editing of such a content type at the moment.");
                }
-               
+
        }
 
        private static void handleOpeningOfMultipleTaxa(Set<Taxon> acceptedTaxa) {
@@ -271,7 +271,7 @@ public class NavigationUtil extends AbstractUtility{
         */
        private static void handleOpeningOfMultipleTaxonNodes(
                        Set<TaxonNode> taxonNodes) {
-               
+
                if(taxonNodes.size() == 1){
                        openEditor(taxonNodes.iterator().next());
                }else if(taxonNodes.size() > 1){
index 7b9adddc422827062b0f7975877e64f1a6911674..94aeb170bc0fcd422e46a774376fd25927bc9c0f 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -18,8 +18,6 @@ import java.util.Observer;
 import java.util.Set;
 import java.util.UUID;
 
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.viewers.DoubleClickEvent;
@@ -27,8 +25,6 @@ import org.eclipse.jface.viewers.TreePath;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.IViewSite;
 import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.navigator.CommonNavigator;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
@@ -45,7 +41,7 @@ import eu.etaxonomy.taxeditor.store.LoginManager;
 
 /**
  * Taxonomic tree implementation using Common Navigator Framework.
- * 
+ *
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 02.06.2009
@@ -60,12 +56,6 @@ public class TaxonNavigator extends CommonNavigator implements
         */
        public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator"; //$NON-NLS-1$
 
-       /**
-        * Constant
-        * <code>OPEN_COMMAND_ID="eu.etaxonomy.taxeditor.navigation.comma"{trunked}</code>
-        */
-       public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.navigation.command.editSelection";
-
        private static final String TREE_PATH = "treepath";
 
        private static final String TREE_PATHS = "treepaths";
@@ -78,7 +68,7 @@ public class TaxonNavigator extends CommonNavigator implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.navigator.CommonNavigator#getInitialInput()
         */
        /** {@inheritDoc} */
@@ -120,7 +110,7 @@ public class TaxonNavigator extends CommonNavigator implements
         */
        public void refresh() {
                if(getConversationHolder() != null){
-                       getConversationHolder().bind();                 
+                       getConversationHolder().bind();
                }
                getCommonViewer().refresh();
        }
@@ -136,7 +126,7 @@ public class TaxonNavigator extends CommonNavigator implements
         * <p>
         * restore
         * </p>
-        * 
+        *
         * @param memento
         *            a {@link org.eclipse.ui.IMemento} object.
         * @param monitor
@@ -203,8 +193,9 @@ public class TaxonNavigator extends CommonNavigator implements
 
                List<CdmBase> pathList = new ArrayList<CdmBase>();
 
-               if (string.length() == 0)
-                       return null;
+               if (string.length() == 0) {
+            return null;
+        }
 
                for (String uuid : string.split(" ")) {
                        CdmBase cdmBaseObject = CdmStore.getService(
@@ -216,8 +207,9 @@ public class TaxonNavigator extends CommonNavigator implements
                                                IClassificationService.class).load(
                                                UUID.fromString(uuid));
 
-                               if (cdmBaseObject == null)
-                                       return null;
+                               if (cdmBaseObject == null) {
+                    return null;
+                }
                        }
                        pathList.add(cdmBaseObject);
                }
@@ -234,7 +226,7 @@ public class TaxonNavigator extends CommonNavigator implements
         * <p>
         * saveTreeState
         * </p>
-        * 
+        *
         * @param memento
         *            a {@link org.eclipse.ui.IMemento} object.
         * @param progressMonitor
@@ -274,7 +266,7 @@ public class TaxonNavigator extends CommonNavigator implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
         * ()
@@ -283,7 +275,7 @@ public class TaxonNavigator extends CommonNavigator implements
         * <p>
         * getConversationHolder
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *         object.
         */
@@ -294,7 +286,7 @@ public class TaxonNavigator extends CommonNavigator implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update
         * (eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
@@ -320,7 +312,7 @@ public class TaxonNavigator extends CommonNavigator implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.WorkbenchPart#dispose()
         */
        /** {@inheritDoc} */
@@ -335,7 +327,7 @@ public class TaxonNavigator extends CommonNavigator implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.navigator.CommonNavigator#setFocus()
         */
        /** {@inheritDoc} */
@@ -350,7 +342,7 @@ public class TaxonNavigator extends CommonNavigator implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation
         * (eu.etaxonomy.cdm.model.common.CdmBase)
@@ -366,7 +358,7 @@ public class TaxonNavigator extends CommonNavigator implements
         * <p>
         * save
         * </p>
-        * 
+        *
         * @param memento
         *            a {@link org.eclipse.ui.IMemento} object.
         * @param monitor
@@ -383,26 +375,7 @@ public class TaxonNavigator extends CommonNavigator implements
        /** {@inheritDoc} */
        @Override
        protected void handleDoubleClick(DoubleClickEvent anEvent) {
-
-               ICommandService commandService = (ICommandService) getSite()
-                               .getService(ICommandService.class);
-
-               Command command = commandService.getCommand(OPEN_COMMAND_ID);
-               if (command.isEnabled()) {
-                       IHandlerService handlerService = (IHandlerService) getSite()
-                                       .getService(IHandlerService.class);
-                       try {
-                               handlerService.executeCommand(OPEN_COMMAND_ID, null);
-                       } catch (NotDefinedException e) {
-                               throw new RuntimeException("Could not find open command: "
-                                               + OPEN_COMMAND_ID);
-                       } catch (Exception e) {
-                               NavigationUtil
-                                               .error(getClass(),
-                                                               "An exception occured while trying to open a selection",
-                                                               e);
-                       }
-               }
+               NavigationUtil.executeEditHandler();
                // If the double click is passed up to the super-class it will
                // expand/collapse trees.
                // We do not want that
@@ -413,7 +386,7 @@ public class TaxonNavigator extends CommonNavigator implements
         * <p>
         * onComplete
         * </p>
-        * 
+        *
         * @return a boolean.
         */
        @Override
@@ -423,7 +396,7 @@ public class TaxonNavigator extends CommonNavigator implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.WorkbenchPart#showBusy(boolean)
         */
        /** {@inheritDoc} */
@@ -450,6 +423,6 @@ public class TaxonNavigator extends CommonNavigator implements
                if(o instanceof LoginManager){
                        refresh();
                }
-               
+
        }
 }
index 4415ee1d167c387ab1cfd7ca4ca28a04f5a149f1..917f5f40d7e0f3dcbe9b2a77e193f320be22c93e 100644 (file)
@@ -2,9 +2,9 @@ package eu.etaxonomy.taxeditor.navigation.navigator.handler;
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -41,47 +41,49 @@ public class EditHandler extends AbstractHandler implements IHandler{
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
         */
        /** {@inheritDoc} */
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-       
+       @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+
                ISelection selection = HandlerUtil.getCurrentSelection(event);
-               
+
                if(selection instanceof StructuredSelection){
                        final StructuredSelection structuredSelection = (StructuredSelection) selection;
-                       
+
                        if(structuredSelection.size() == 1 && structuredSelection.getFirstElement() instanceof Classification){
                                Classification classification = (Classification) structuredSelection.getFirstElement();
-                               
+
                                NewClassificationWizard classificationWizard = new NewClassificationWizard();
                                classificationWizard.init(null, null);
                                classificationWizard.setEntity(classification);
                                WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), classificationWizard);
                                dialog.open();
-                               
+
                        }
                        else{
 
                                Job job = new Job("Opening editor") {
-                                       
+
                                        @Override
                                        protected IStatus run(IProgressMonitor monitor) {
                                                for(final Object selectedObject : structuredSelection.toArray()){
-                                                       
+
                                                        Display.getDefault().asyncExec(new Runnable(){
-       
-                                                               public void run() {
+
+                                                               @Override
+                                public void run() {
                                                                        NavigationUtil.openEditor(selectedObject);
                                                                }
-                                                               
+
                                                        });
                                                }
                                                return Status.OK_STATUS;
                                        }
                                };
-                               
+
                                job.schedule();
                        }
                }
-               
+
                return null;
        }
 }
index d5984d1c502772217fe194b37d1946fd86e92bc3..905e4b847568bf7edc58557f9681f3cfd6f07284 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -41,6 +41,7 @@ import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
 import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
@@ -56,9 +57,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class SearchResultView extends ViewPart implements IConversationEnabled{
-       
+
        private static Object[] EMPTY = new Object[0];
-       
+
        private class ContextListener extends ContextListenerAdapter{
                /* (non-Javadoc)
                 * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
@@ -66,12 +67,12 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
                @Override
                public void contextStop(IMemento memento, IProgressMonitor monitor) {
                        monitor.subTask("Getting rid of search results");
-                       NavigationUtil.hideView(SearchResultView.this);
+                       AbstractUtility.hideView(SearchResultView.this);
                }
        }
-       
+
        /** Constant <code>ID="eu.etaxonomy.taxeditor.navigation.searc"{trunked}</code> */
-       public static final String ID = 
+       public static final String ID =
                        "eu.etaxonomy.taxeditor.navigation.search.searchResultView"; //$NON-NLS-1$
 
        private TableViewer resultViewer;
@@ -85,42 +86,43 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
        private Text status;
 
        private SearchJob searchJob;
-       
+
        private IContextListener contextListener;
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
         */
        /** {@inheritDoc} */
        @Override
        public void createPartControl(Composite parent) {
-               
+
                conversation = CdmStore.createConversation();
                contextListener = new ContextListener();
                CdmStore.getContextManager().addContextListener(contextListener);
-               
+
                GridLayout layout = new GridLayout();
                layout.marginWidth = 0;
                layout.marginHeight = 0;
-               
+
                parent.setLayout(layout);
-               
+
                Composite infoComposite = createInfoComposite(parent);
                infoComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-               
+
                resultViewer = new TableViewer(parent, SWT.NONE);
                resultViewer.setContentProvider(new ArrayContentProvider());
                resultViewer.setLabelProvider(new SearchResultLabelProvider());
                resultViewer.addDoubleClickListener(new IDoubleClickListener() {
-                       public void doubleClick(DoubleClickEvent event) {
+                       @Override
+            public void doubleClick(DoubleClickEvent event) {
                                NavigationUtil.executeEditHandler();
                        }
                });
-               
+
                resultViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               
+
                getSite().setSelectionProvider(resultViewer);
-               
+
                // register context menu
                MenuManager menuMgr = new MenuManager();
                menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
@@ -128,39 +130,39 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
 
                Control control = resultViewer.getControl();
                Menu menu = menuMgr.createContextMenu(control);
-               control.setMenu(menu);  
+               control.setMenu(menu);
        }
-       
+
        private Composite createInfoComposite(Composite parent){
                Composite composite = new Composite(parent, SWT.NULL);
-               
+
                composite.setLayout(new GridLayout(2, false));
-               
+
                Label searchStringLabel = new Label(composite, SWT.NULL);
                searchStringLabel.setText("Search String:");
-               
+
                searchString = new Text(composite, SWT.NULL);
                searchString.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                searchString.setEditable(false);
 //             searchString.setText("                                               ");
-               
+
                Label configurationDescriptionLabel = new Label(composite, SWT.NULL);
                configurationDescriptionLabel.setText("Search for:");
-               
+
                configurationLabel = new Text(composite, SWT.WRAP);
                configurationLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                configurationLabel.setEditable(false);
-               
+
                Label statusLabel = new Label(composite, SWT.NULL);
                statusLabel.setText("Status:");
-               
+
                status = new Text(composite, SWT.NULL);
                status.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                status.setEditable(false);
-               
+
                return composite;
        }
-       
+
        /**
         * <p>performSearch</p>
         *
@@ -168,20 +170,23 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
         */
        public void performSearch(IFindTaxaAndNamesConfigurator configurator){
                setPartName("Search: '" + configurator.getTitleSearchString() + "'");
-               
+
                searchString.setText(configurator.getTitleSearchString());
-               
+
                List<String> includedEntities = new ArrayList<String>();
-               if(configurator.isDoTaxa())
-                       includedEntities.add(SearchOption.TAXON.getLabel());
-               if(configurator.isDoSynonyms())
-                       includedEntities.add(SearchOption.SYNONYM.getLabel());
-               if(configurator.isDoNamesWithoutTaxa())
-                       includedEntities.add(SearchOption.NAME.getLabel());
+               if(configurator.isDoTaxa()) {
+            includedEntities.add(SearchOption.TAXON.getLabel());
+        }
+               if(configurator.isDoSynonyms()) {
+            includedEntities.add(SearchOption.SYNONYM.getLabel());
+        }
+               if(configurator.isDoNamesWithoutTaxa()) {
+            includedEntities.add(SearchOption.NAME.getLabel());
+        }
                if(configurator.isDoTaxaByCommonNames()){
                        includedEntities.add(SearchOption.COMMON_NAME.getLabel());
                }
-               
+
                String includedEntitiesString = "";
                for (int i = 0; i < includedEntities.size(); i++){
                        includedEntitiesString += includedEntities.get(i);
@@ -189,16 +194,16 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
                                includedEntitiesString += ", ";
                        }
                }
-               
+
                configurationLabel.setText(includedEntitiesString);
-               
+
                status.setText("Searching...");
-               
+
                searchJob = new SearchJob(Display.getCurrent(), configurator);
                searchJob.schedule();
-               
+
        }
-       
+
        /**
         * <p>displaySearchResult</p>
         *
@@ -206,10 +211,10 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
         */
        protected void displaySearchResult(List<UuidAndTitleCache<TaxonBase>> result) {
                if(result.size() > 0){
-                       resultViewer.setInput(result); 
+                       resultViewer.setInput(result);
                        status.setText(result.size() + " entities found");
                }else{
-                       resultViewer.setInput(EMPTY); 
+                       resultViewer.setInput(EMPTY);
                        status.setText("Search returned no results");
                }
        }
@@ -234,7 +239,8 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
         *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         */
-       public ConversationHolder getConversationHolder() {
+       @Override
+    public ConversationHolder getConversationHolder() {
                return this.conversation;
        }
 
@@ -242,11 +248,12 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
         * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
         */
        /** {@inheritDoc} */
-       public void update(CdmDataChangeMap changeEvents) {
+       @Override
+    public void update(CdmDataChangeMap changeEvents) {
                // TODO Auto-generated method stub
-               
+
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.part.WorkbenchPart#dispose()
         */
@@ -255,23 +262,24 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
        public void dispose() {
                super.dispose();
                conversation.close();
-               if(searchJob != null)
-                       searchJob.cancel();
+               if(searchJob != null) {
+            searchJob.cancel();
+        }
                CdmStore.getContextManager().removeContextListener(contextListener);
        }
-       
+
        /**
-        * 
+        *
         * @author n.hoffmann
         * @created Feb 2, 2010
         * @version 1.0
         */
        class SearchJob extends Job{
 
-               private IFindTaxaAndNamesConfigurator configurator;
-               
-               private Display display;
-               
+               private final IFindTaxaAndNamesConfigurator configurator;
+
+               private final Display display;
+
                /**
                 * @param name
                 */
@@ -288,19 +296,21 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
                protected IStatus run(IProgressMonitor monitor) {
                        monitor.beginTask("", 100);
                        monitor.worked(20);
-                       
+
                        final List<UuidAndTitleCache<TaxonBase>> searchResult = CdmStore.getSearchManager().findTaxaAndNames(configurator);
                        monitor.worked(40);
-                       
+
                        if(! monitor.isCanceled()){
                                display.asyncExec(new Runnable() {
-                                       public void run() {
+                                       @Override
+                    public void run() {
                                                displaySearchResult(searchResult);
                                        }
                                });
                        }else{
                                display.asyncExec(new Runnable() {
-                                       public void run() {
+                                       @Override
+                    public void run() {
                                                status.setText("Cancelled");
                                        }
                                });
@@ -308,6 +318,6 @@ public class SearchResultView extends ViewPart implements IConversationEnabled{
                        monitor.done();
                        return Status.OK_STATUS;
                }
-               
-       }       
+
+       }
 }
index 7738eed49fceb57a5cbb0d1b7558de2995341e13..c4248413cede4919ff5940f006c0588161632b9d 100644 (file)
@@ -1,16 +1,13 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.newWizard;
 
-import org.eclipse.swt.SWT;
-
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.DetailType;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailElement;
 
@@ -27,12 +24,12 @@ public class PolytomousKeyWizardPage extends AbstractCdmEntityWizardPage<Polytom
 
        @Override
        public AbstractCdmDetailElement createElement(ICdmFormElement rootElement) {
-               PolytomousKeyDetailElement element = (PolytomousKeyDetailElement) formFactory.createCdmDetailElement(DetailType.POLYTOMOUS_KEY, rootElement, SWT.NULL);
+               PolytomousKeyDetailElement element = formFactory.createPolytomousKeyDetailElement(rootElement);
                element.setEntity(entity);
                setPageComplete(true);
                return element;
        }
-       
+
        public String getPolytomousKeyName() {
            return ((PolytomousKeyDetailElement) getDetailElement()).getText();
        }
index c0d3ca65a0ea018e0763d8d7d9556e4325662261..6d71b98a8ec2ebf6df372fe70029f773b650470f 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.ui.element;
 
@@ -16,7 +16,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.forms.widgets.Section;
 
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 
 /**
  * <p>Abstract AbstractCdmFormElement class.</p>
@@ -24,22 +24,22 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @author n.hoffmann
  * @version $Id: $
  */
-public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter, ICdmFormElement {
+public abstract class AbstractCdmFormElement implements ICdmFormElement {
 
        protected CdmFormFactory formFactory;
 
        private List<IPropertyChangeListener> propertyChangeListeners;
 
        private Composite layoutComposite;
-       
-       private Set<Control> controls = new HashSet<Control>();
-       
-       private Set<ICdmFormElement> elements = new HashSet<ICdmFormElement>();
+
+       private final Set<Control> controls = new HashSet<Control>();
+
+       private final Set<ICdmFormElement> elements = new HashSet<ICdmFormElement>();
        private ICdmFormElement parentElement;
 
        private Color persistentBackgroundColor;
-       
-       
+
+
        /**
         * <p>Constructor for AbstractCdmFormElement.</p>
         *
@@ -50,7 +50,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                this.layoutComposite = layoutComposite;
                this.formFactory = formFactory;
        }
-       
+
        /**
         * <p>Constructor for AbstractCdmFormElement.</p>
         *
@@ -62,7 +62,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                this.parentElement = formElement;
 //             addControl(layoutComposite);
        }
-       
+
        /**
         * <p>Getter for the field <code>formFactory</code>.</p>
         *
@@ -71,23 +71,24 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        public CdmFormFactory getFormFactory() {
                return formFactory;
        }
-       
+
        /**
         * Delegates the focus to <code>this</code> elements main input control
         */
        public void setFocus(){
-               // Override in subclasses where needed 
+               // Override in subclasses where needed
        }
-       
+
        /**
         * Returns all Controls that are managed by this element
         *
         * @return a {@link java.util.Set} object.
         */
-       public Set<Control> getControls(){
+       @Override
+    public Set<Control> getControls(){
                return controls;
        }
-       
+
        /**
         * adds the control to the set of controls that are managed by this element
         *
@@ -96,7 +97,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        protected void addControl(Control child){
                controls.add(child);
        }
-       
+
        /**
         * <p>removeControl</p>
         *
@@ -105,30 +106,33 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        protected void removeControl(Control child){
                controls.remove(child);
        }
-       
+
        /**
         * <p>Getter for the field <code>elements</code>.</p>
         *
         * @return a {@link java.util.Set} object.
         */
-       public Set<ICdmFormElement> getElements(){
+       @Override
+    public Set<ICdmFormElement> getElements(){
                return elements;
        }
-       
+
        /**
         * <p>Getter for the field <code>parentElement</code>.</p>
         *
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         */
-       public ICdmFormElement getParentElement(){
+       @Override
+    public ICdmFormElement getParentElement(){
                return parentElement;
        }
-       
+
        /** {@inheritDoc} */
-       public void addElement(ICdmFormElement element){
+       @Override
+    public void addElement(ICdmFormElement element){
                elements.add(element);
        }
-       
+
        /**
         * <p>removeElement</p>
         *
@@ -137,15 +141,16 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        protected void removeElement(ICdmFormElement element){
                elements.remove(element);
        }
-       
+
        /**
         * <p>removeElements</p>
         */
-       public void removeElements(){
+       @Override
+    public void removeElements(){
                for(ICdmFormElement childElement : getElements()){
                        // recursion
                        childElement.removeElements();
-                       
+
                        // unregister selection arbitrator
                        if(childElement instanceof ISelectableElement){
                                SelectionArbitrator selectionArbitrator = ((ISelectableElement) childElement).getSelectionArbitrator();
@@ -153,19 +158,17 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                                        formFactory.destroySelectionArbitrator(selectionArbitrator);
                                }
                        }
-                       
+
                        // unregister from property changes
-                       if(childElement instanceof IPropertyChangeListener){
-                               formFactory.removePropertyChangeListener((IPropertyChangeListener) childElement); 
-                       }
-                       
+                       formFactory.removePropertyChangeListener(childElement);
+
                        // dispose of the controls
                        removeControls(childElement);
                }
                removeControls(this);
                elements.clear();
        }
-       
+
        private void removeControls(ICdmFormElement element){
                if(element instanceof Section){
                        ((Section) element).dispose();
@@ -183,16 +186,17 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                        }
                }
        }
-       
+
        /**
         * <p>Getter for the field <code>layoutComposite</code>.</p>
         *
         * @return a {@link org.eclipse.swt.widgets.Composite} object.
         */
-       public Composite getLayoutComposite() {
+       @Override
+    public Composite getLayoutComposite() {
                return layoutComposite;
        }
-       
+
        /**
         * <p>Setter for the field <code>layoutComposite</code>.</p>
         *
@@ -201,7 +205,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        public void setLayoutComposite(Composite layoutComposite){
                this.layoutComposite = layoutComposite;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormComposite#getPropertyChangeListeners()
         */
@@ -210,18 +214,20 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
         *
         * @return a {@link java.util.Set} object.
         */
-       public List<IPropertyChangeListener> getPropertyChangeListeners() {
+       @Override
+    public List<IPropertyChangeListener> getPropertyChangeListeners() {
                return propertyChangeListeners;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormComposite#setPropertyChangeListeners(org.eclipse.core.runtime.ListenerList)
         */
        /** {@inheritDoc} */
-       public void setPropertyChangeListeners(List<IPropertyChangeListener> propertyChangeListeners){
+       @Override
+    public void setPropertyChangeListeners(List<IPropertyChangeListener> propertyChangeListeners){
                this.propertyChangeListeners = propertyChangeListeners;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.IPropertyChangeEmitter#firePropertyChangeEvent()
         */
@@ -229,7 +235,8 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormComposite#firePropertyChangeEvent(org.eclipse.jface.util.PropertyChangeEvent)
         */
        /** {@inheritDoc} */
-       public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
+       @Override
+    public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
                Assert.isNotNull(propertyChangeListeners, "Property change listeners are not present");
 
                try{
@@ -237,34 +244,34 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                                ((IPropertyChangeListener)listener).propertyChange(event);
                        }
                }catch(ConcurrentModificationException e){
-                       // There are two cases that produce a CME. 
+                       // There are two cases that produce a CME.
                        // Described here: http://dev.e-taxonomy.eu/trac/ticket/2363#comment:2
                        // and here: http://dev.e-taxonomy.eu/trac/ticket/2438
                        // Ignoring the CME because nothing bad is happening
-                       StoreUtil.warn(getClass(), "ConcurrentModificationException. Can be ignored.");
+                       AbstractUtility.warn(getClass(), "ConcurrentModificationException. Can be ignored.");
                }
        }
-       
+
        /**
         * Fires a {@link CdmPropertyChangeEvent} with the given object as source.
-        *  
+        *
         * @param object the object on which the property changed
         */
        public void firePropertyChangeEvent(Object object){
                firePropertyChangeEvent(object, null);
        }
-       
+
        /**
         * Fires a {@link CdmPropertyChangeEvent} with the given object as source also containing the
         * originating event
-        * 
+        *
         * @param object the object on which the property changed
         * @param originatingEvent the originating event
         */
        public void firePropertyChangeEvent(Object object, PropertyChangeEvent originatingEvent){
                firePropertyChangeEvent(new CdmPropertyChangeEvent(object, originatingEvent));
        }
-       
+
 
        /**
         * {@inheritDoc}
@@ -275,12 +282,14 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
         * Implementations should also check for null PropertyChangeEvents and return immediately in that case.
         * @see eu.etaxonomy.taxeditor.ui.element.ICdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
         */
-       public void propertyChange(PropertyChangeEvent event) {
+       @Override
+    public void propertyChange(PropertyChangeEvent event) {
                // implement in subclasses
        }
-       
+
        /** {@inheritDoc} */
-       public boolean containsFormElement(ICdmFormElement formElement){
+       @Override
+    public boolean containsFormElement(ICdmFormElement formElement){
                if(formElement == this){
                        return true;
                }else{
@@ -293,7 +302,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                        return false;
                }
        }
-       
+
        /*
         * (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormElement#refresh()
@@ -301,10 +310,11 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        /**
         * <p>refresh</p>
         */
-       public void refresh() {
-               // empty default implementation 
+       @Override
+    public void refresh() {
+               // empty default implementation
        }
-       
+
 
        /** {@inheritDoc} */
        @Override
@@ -313,19 +323,19 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                        element.setBackground(color);
                }
        }
-       
+
        @Override
        public void setPersistentBackground(Color color) {
                persistentBackgroundColor = color;
                setBackground(color);
        }
-       
+
        @Override
        public Color getPersistentBackground() {
                return persistentBackgroundColor;
        }
-       
+
        public Color getColor(String colorId){
-               return StoreUtil.getColor(colorId);
+               return AbstractUtility.getColor(colorId);
        }
 }
index b245498e9ee82efbc0cfc3d715f0b7903c953434..cece9928bba24c05f590518a3603b11d2651c766 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.ui.element;
 
@@ -33,27 +33,31 @@ import org.eclipse.ui.forms.widgets.ToggleHyperlink;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 
 /**
  * <p>
- * Abstract AbstractFormSection class.
+ * Abstract super class for a {@link Section} GUI element that visualizes a CDM
+ * entity, manages a conversation and listens to selections
  * </p>
- * 
+ *
+ * @param <ENTITY> A CDM entity which should be visualized by this section.
+ *
  * @author n.hoffmann
  * @created Feb 22, 2010
  * @version 1.0
  * @param <T>
  */
+//TODO shouldn't ENTITY be bound with super class ICdmBase for example (AbstractFormSection<ENTITY extends ICdmBase>)?
 public abstract class AbstractFormSection<ENTITY> extends Section implements
-               ISelectionChangedListener, ICdmFormElement, IEntityElement<ENTITY>,
+               ISelectionChangedListener, IEntityElement<ENTITY>,
                IConversationEnabled {
 
        private ISelectionProvider selectionProvider;
 
        private ENTITY entity;
 
-       private Set<ICdmFormElement> elements = new HashSet<ICdmFormElement>();
+       private final Set<ICdmFormElement> elements = new HashSet<ICdmFormElement>();
 
        protected CdmFormFactory formFactory;
 
@@ -67,7 +71,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * Constructor for AbstractFormSection.
         * </p>
-        * 
+        *
         * @param conversation
         *            TODO
         * @param style
@@ -81,8 +85,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * @param <ENTITY>
         *            a ENTITY object.
         */
-       protected AbstractFormSection(CdmFormFactory formFactory, ICdmFormElement parentElement,
-                       int style) {
+    protected AbstractFormSection(CdmFormFactory formFactory, ICdmFormElement parentElement, int style) {
                super(parentElement.getLayoutComposite(), style);
 
                this.parentElement = parentElement;
@@ -103,45 +106,45 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
                this.setClient(client);
        }
 
-       /**
-        * <p>
-        * Constructor for AbstractFormSection.
-        * </p>
-        * 
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param selectionProvider
-        *            a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style
-        *            a int.
-        */
-       protected AbstractFormSection(CdmFormFactory formFactory,
-                       ICdmFormElement parentElement,
-                       ISelectionProvider selectionProvider, int style) {
-               this(formFactory, parentElement, style);
-               this.selectionProvider = selectionProvider;
-       }
+           /**
+     * <p>
+     * Constructor for AbstractFormSection.
+     * </p>
+     *
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param conversation
+     *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
+     *            object.
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     * @param selectionProvider
+     *            a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
+     * @param style
+     *            a int.
+     */
+    protected AbstractFormSection(CdmFormFactory formFactory, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        this(formFactory, parentElement, style);
+        this.selectionProvider = selectionProvider;
+    }
 
        /**
         * <p>
         * Getter for the field <code>propertyChangeListeners</code>.
         * </p>
-        * 
+        *
         * @return a {@link java.util.Set} object.
         */
-       public List<IPropertyChangeListener> getPropertyChangeListeners() {
+       @Override
+    public List<IPropertyChangeListener> getPropertyChangeListeners() {
                return propertyChangeListeners;
        }
 
        /** {@inheritDoc} */
-       public void setPropertyChangeListeners(
+       @Override
+    public void setPropertyChangeListeners(
                        List<IPropertyChangeListener> propertyChangeListeners) {
                this.propertyChangeListeners = propertyChangeListeners;
        }
@@ -150,7 +153,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * Setter for the field <code>entity</code>.
         * </p>
-        * 
+        *
         * @param entity
         *            a ENTITY object.
         */
@@ -160,17 +163,18 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see eu.etaxonomy.taxeditor.forms.IEntityElement#getEntity()
         */
        /**
         * <p>
         * Getter for the field <code>entity</code>.
         * </p>
-        * 
+        *
         * @return a ENTITY object.
         */
-       public ENTITY getEntity() {
+       @Override
+    public ENTITY getEntity() {
                return entity;
        }
 
@@ -178,7 +182,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * getToggle
         * </p>
-        * 
+        *
         * @return a {@link org.eclipse.ui.forms.widgets.ToggleHyperlink} object.
         */
        public ToggleHyperlink getToggle() {
@@ -189,7 +193,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * getSection
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
         *         object.
         */
@@ -199,29 +203,28 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.IPropertyChangeEmitter#firePropertyChangeEvent
         * ()
         */
        /** {@inheritDoc} */
-       public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
-               Assert.isNotNull(propertyChangeListeners,
-                               "No property change listeners.");
-               try {
-                       for (Object listener : propertyChangeListeners) {
-                               ((IPropertyChangeListener) listener).propertyChange(event);
-                       }
-               } catch (ConcurrentModificationException e) {
-                       StoreUtil.warn(getClass(),
-                                       "ConcurrentModificationException while handling PropertyChangeEvents."
-                                                       + " It seems like this is not critical");
-               }
+       @Override
+    public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
+        Assert.isNotNull(propertyChangeListeners, "No property change listeners.");
+        try {
+            for (Object listener : propertyChangeListeners) {
+                ((IPropertyChangeListener) listener).propertyChange(event);
+            }
+        } catch (ConcurrentModificationException e) {
+            AbstractUtility.warn(getClass(), "ConcurrentModificationException while handling PropertyChangeEvents."
+                    + " It seems like this is not critical");
+        }
        }
 
        /**
         * Fires a {@link CdmPropertyChangeEvent} with the given object as source.
-        * 
+        *
         * @param object
         *            the object on which the property changed
         */
@@ -232,7 +235,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
        /**
         * Fires a {@link CdmPropertyChangeEvent} with the given object as source
         * also containing the originating event
-        * 
+        *
         * @param object
         *            the object on which the property changed
         * @param originatingEvent
@@ -246,7 +249,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.swt.widgets.Composite#setFocus()
         */
        /** {@inheritDoc} */
@@ -257,19 +260,20 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
         * .jface.util.PropertyChangeEvent)
         */
        /** {@inheritDoc} */
-       public void propertyChange(PropertyChangeEvent event) {
+       @Override
+    public void propertyChange(PropertyChangeEvent event) {
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
        }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.swt.widgets.Control#setBackground(org.eclipse.swt.graphics
         * .Color)
@@ -283,42 +287,41 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
                getLayoutComposite().setBackground(color);
                super.setBackground(color);
        }
-       
+
        @Override
        public void setPersistentBackground(Color color) {
                persistentBackgroundColor = color;
                setBackground(color);
        }
-       
+
        @Override
        public Color getPersistentBackground() {
                return persistentBackgroundColor;
        }
-       
+
 
        /**
         * <p>
         * widgetSelected
         * </p>
-        * 
+        *
         * @param e
         *            a {@link org.eclipse.swt.events.SelectionEvent} object.
         */
        public void widgetSelected(SelectionEvent e) {
-               Widget widget = e.widget;
-
-               if (widget instanceof Control) {
-                       Control control = (Control) widget;
-                       if (checkControlAncestryForWidget(control)) {
-                               if (getEntity() != null) {
-                                       IStructuredSelection selection = new StructuredSelection(
-                                                       getEntity());
-                                       if (selectionProvider != null) {
-                                               selectionProvider.setSelection(selection);
-                                       }
-                               }
-                       }
-               }
+        Widget widget = e.widget;
+
+        if (widget instanceof Control) {
+            Control control = (Control) widget;
+            if (checkControlAncestryForWidget(control)) {
+                if (getEntity() != null) {
+                    IStructuredSelection selection = new StructuredSelection(getEntity());
+                    if (selectionProvider != null) {
+                        selectionProvider.setSelection(selection);
+                    }
+                }
+            }
+        }
        }
 
        private boolean checkControlAncestryForWidget(Control control) {
@@ -335,7 +338,8 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
        }
 
        /** {@inheritDoc} */
-       public void setSelected(boolean selected) {
+       @Override
+    public void setSelected(boolean selected) {
                if (selected) {
                        setBackground(Display.getCurrent().getSystemColor(
                                        SWT.COLOR_LIST_SELECTION));
@@ -345,7 +349,8 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
        }
 
        /** {@inheritDoc} */
-       public void selectionChanged(SelectionChangedEvent event) {
+       @Override
+    public void selectionChanged(SelectionChangedEvent event) {
                if (event.getSelection() == CdmFormFactory.EMPTY_SELECTION) {
                        return;
                }
@@ -365,7 +370,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * addSelectionListener
         * </p>
-        * 
+        *
         * @param listener
         *            a {@link org.eclipse.swt.events.SelectionListener} object.
         */
@@ -377,7 +382,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * removeSelectionListener
         * </p>
-        * 
+        *
         * @param listener
         *            a {@link org.eclipse.swt.events.SelectionListener} object.
         */
@@ -386,7 +391,8 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
        }
 
        /** {@inheritDoc} */
-       public void addElement(ICdmFormElement element) {
+       @Override
+    public void addElement(ICdmFormElement element) {
                elements.add(element);
        }
 
@@ -394,7 +400,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * removeElement
         * </p>
-        * 
+        *
         * @param element
         *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
         *            object.
@@ -408,7 +414,8 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * removeElements
         * </p>
         */
-       public void removeElements() {
+       @Override
+    public void removeElements() {
                for (ICdmFormElement childElement : getElements()) {
                        // recursion
                        childElement.removeElements();
@@ -416,8 +423,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
                        // unregister selection arbitrator
                        if (childElement instanceof ISelectableElement) {
                                ISelectableElement selectableElement = (ISelectableElement) childElement;
-                               if (selectableElement != null
-                                               && selectableElement.getSelectionArbitrator() != null) {
+                               if (selectableElement.getSelectionArbitrator() != null) {
                                        formFactory.destroySelectionArbitrator(selectableElement
                                                        .getSelectionArbitrator());
                                }
@@ -447,10 +453,11 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * Getter for the field <code>parentElement</code>.
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         */
-       public ICdmFormElement getParentElement() {
+       @Override
+    public ICdmFormElement getParentElement() {
                return parentElement;
        }
 
@@ -458,10 +465,11 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * Getter for the field <code>elements</code>.
         * </p>
-        * 
+        *
         * @return a {@link java.util.Set} object.
         */
-       public Set<ICdmFormElement> getElements() {
+       @Override
+    public Set<ICdmFormElement> getElements() {
                return elements;
        }
 
@@ -469,10 +477,11 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * getControls
         * </p>
-        * 
+        *
         * @return a {@link java.util.Set} object.
         */
-       public Set<Control> getControls() {
+       @Override
+    public Set<Control> getControls() {
                Set<Control> controls = new HashSet<Control>();
 
                for (Control control : getChildren()) {
@@ -493,15 +502,17 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * getLayoutComposite
         * </p>
-        * 
+        *
         * @return a {@link org.eclipse.swt.widgets.Composite} object.
         */
-       public Composite getLayoutComposite() {
+       @Override
+    public Composite getLayoutComposite() {
                return (Composite) getClient();
        }
 
        /** {@inheritDoc} */
-       public boolean containsFormElement(ICdmFormElement formElement) {
+       @Override
+    public boolean containsFormElement(ICdmFormElement formElement) {
                if (formElement == this) {
                        return true;
                } else {
@@ -519,7 +530,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * Getter for the field <code>formFactory</code>.
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
         */
        public CdmFormFactory getFormFactory() {
@@ -528,7 +539,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormElement#refresh()
         */
        /**
@@ -536,7 +547,8 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * refresh
         * </p>
         */
-       public void refresh() {
+       @Override
+    public void refresh() {
                // empty default implementation
 
        }
@@ -545,30 +557,32 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         * <p>
         * getConversationHolder
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *         object.
         */
-       public ConversationHolder getConversationHolder() {
+       @Override
+    public ConversationHolder getConversationHolder() {
                if(getParentElement() instanceof RootElement || getParentElement() == null){
-               
-                       IEditorPart activeEditor = StoreUtil.getActiveEditor();
+
+                       IEditorPart activeEditor = AbstractUtility.getActiveEditor();
                        if(activeEditor instanceof IConversationEnabled){
-                               ConversationHolder conversation = ((IConversationEnabled) StoreUtil.getActiveEditor()).getConversationHolder();
+                               ConversationHolder conversation = ((IConversationEnabled) AbstractUtility.getActiveEditor()).getConversationHolder();
                                return conversation;
                        }
                }else if(getParentElement() instanceof IConversationEnabled){
                        return ((IConversationEnabled) getParentElement()).getConversationHolder();
                }
-               StoreUtil.errorDialog("Could not get conversation for AbstractFormSection", 
-                               getClass(), "There is an error in the implementation. There should have been an active editor but it wasn't", 
+               AbstractUtility.errorDialog("Could not get conversation for AbstractFormSection",
+                               getClass(), "There is an error in the implementation. There should have been an active editor but it wasn't",
                                new IllegalArgumentException());
                return null;
-       
+
        }
 
        /** {@inheritDoc} */
-       public void update(CdmDataChangeMap changeEvents) {
+       @Override
+    public void update(CdmDataChangeMap changeEvents) {
        }
 
 
index 125151046b99aa1002f441aeea26d802aaba5ab4..533b43b021722b9146b536c7a9cde59a4c2272e0 100644 (file)
@@ -33,6 +33,7 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.IFormColors;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.Section;
 import org.eclipse.ui.internal.forms.widgets.FormFonts;
@@ -95,7 +96,7 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+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;
@@ -119,8 +120,8 @@ import eu.etaxonomy.taxeditor.ui.section.classification.ClassificationDetailElem
 import eu.etaxonomy.taxeditor.ui.section.classification.ClassificationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.common.ReferenceEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.common.ReferencedEntityDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.common.RefereneEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.description.DerivedUnitElement;
 import eu.etaxonomy.taxeditor.ui.section.description.DescribedSpecimenSection;
 import eu.etaxonomy.taxeditor.ui.section.description.DescriptionDetailElement;
@@ -132,6 +133,7 @@ import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementSourceEle
 import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementSourceSection;
 import eu.etaxonomy.taxeditor.ui.section.description.DescriptionSourceElement;
 import eu.etaxonomy.taxeditor.ui.section.description.DescriptionSourceSection;
+import eu.etaxonomy.taxeditor.ui.section.description.MediaDetailsSection;
 import eu.etaxonomy.taxeditor.ui.section.description.ModifierElement;
 import eu.etaxonomy.taxeditor.ui.section.description.ModifierSection;
 import eu.etaxonomy.taxeditor.ui.section.description.NaturalLanguageDetailElement;
@@ -269,7 +271,7 @@ public class CdmFormFactory extends FormToolkit {
        private MouseListener selectionMouseHandler;
        private FocusListener selectionFocusHandler;
 
-       private final Set selectionListenerList = new HashSet();
+    private final Set<SelectionListener> selectionListenerList = new HashSet<SelectionListener>();
 
        private final List<IPropertyChangeListener> propertyChangeListeners = new ArrayList<IPropertyChangeListener>();
 
@@ -315,8 +317,8 @@ public class CdmFormFactory extends FormToolkit {
                event.widget = e.widget;
                SelectionEvent selectionEvent = new SelectionEvent(event);
 
-               for (Object listener : selectionListenerList) {
-                       ((SelectionListener) listener).widgetSelected(selectionEvent);
+        for (SelectionListener listener : selectionListenerList) {
+            listener.widgetSelected(selectionEvent);
                }
        }
 
@@ -370,10 +372,8 @@ public class CdmFormFactory extends FormToolkit {
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}
         *         object.
         */
-       public SelectionArbitrator createSelectionArbitrator(
-                       IEntityElement entityElement) {
-               SelectionArbitrator selectionArbitrator = new SelectionArbitrator(
-                               entityElement);
+    public SelectionArbitrator createSelectionArbitrator(IEntityElement entityElement) {
+        SelectionArbitrator selectionArbitrator = new SelectionArbitrator(entityElement);
                selectionArbitrator.addSelectionProvider(selectionProvider);
                selectionProvider.addSelectionChangedListener(selectionArbitrator);
                addSelectionListener(selectionArbitrator);
@@ -386,20 +386,17 @@ public class CdmFormFactory extends FormToolkit {
         * </p>
         * 
         * @param selectionArbitrator
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}
+     *            a
+     *            {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}
         *            object.
         */
-       public void destroySelectionArbitrator(
-                       SelectionArbitrator selectionArbitrator) {
+    public void destroySelectionArbitrator(SelectionArbitrator selectionArbitrator) {
                removeSelectionListener(selectionArbitrator);
                if (selectionProvider != null) {
-                       selectionProvider
-                                       .removeSelectionChangedListener(selectionArbitrator);
+            selectionProvider.removeSelectionChangedListener(selectionArbitrator);
                } else {
-                       StoreUtil
-                                       .error(this.getClass(),
-                                                       "Tried to destroy a selection listener from this factories listeners but was null",
-                                                       null);
+            AbstractUtility.error(this.getClass(),
+                    "Tried to destroy a selection listener from this factories listeners but was null", null);
                }
        }
 
@@ -412,7 +409,8 @@ public class CdmFormFactory extends FormToolkit {
 
        /**
         * <p>
-        * adapt
+     * Adapts the {@link AbstractCdmFormElement}:<br>
+     * - sets the {@link IPropertyChangeListener}s handled by this class
         * </p>
         * 
         * @param formElement
@@ -449,8 +447,7 @@ public class CdmFormFactory extends FormToolkit {
                }
                // destroy selection arbitrator, if any
                if (formElement instanceof ISelectableElement) {
-                       destroySelectionArbitrator(((ISelectableElement) formElement)
-                                       .getSelectionArbitrator());
+            destroySelectionArbitrator(((ISelectableElement) formElement).getSelectionArbitrator());
                }
                // remove this element form its parents list of elements
                // ICdmFormElement parentElement = formElement.getParentElement();
@@ -505,11 +502,9 @@ public class CdmFormFactory extends FormToolkit {
         * @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);
+    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;
@@ -535,23 +530,19 @@ public class CdmFormFactory extends FormToolkit {
         *         {@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);
+    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;
        }
 
-       public KeyStatementElement createKeyStatementElement(
-                       ICdmFormElement parentElement, String labelString,
+    public KeyStatementElement createKeyStatementElement(ICdmFormElement parentElement, String labelString,
                        KeyStatement keyStatement, int textHeight, int style) {
-               KeyStatementElement element = new KeyStatementElement(this,
-                               parentElement, labelString, keyStatement, textHeight, style);
+        KeyStatementElement element = new KeyStatementElement(this, parentElement, labelString, keyStatement,
+                textHeight, style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -574,21 +565,18 @@ public class CdmFormFactory extends FormToolkit {
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
         *         object.
         */
-       public TextWithLabelElement createTextWithLabelElement(
-                       ICdmFormElement parentElement, String labelString,
+    public TextWithLabelElement createTextWithLabelElement(ICdmFormElement parentElement, String labelString,
                        String initialText, int style) {
-               TextWithLabelElement element = new TextWithLabelElement(this,
-                               parentElement, labelString, initialText, null, style);
+        TextWithLabelElement element = new TextWithLabelElement(this, parentElement, labelString, initialText, null,
+                style);
                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);
+    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;
@@ -601,11 +589,10 @@ public class CdmFormFactory extends FormToolkit {
         * @param style
         * @return
         */
-       public OpenUrlSelectorElement createOpenUrlSelectorElement(
-                       ICdmFormElement parentElement, String labelString,
+    public OpenUrlSelectorElement createOpenUrlSelectorElement(ICdmFormElement parentElement, String labelString,
                        IOpenUrlEnabled openUrlEnabled, int style) {
-               OpenUrlSelectorElement element = new OpenUrlSelectorElement(this,
-                               parentElement, labelString, openUrlEnabled, style);
+        OpenUrlSelectorElement element = new OpenUrlSelectorElement(this, parentElement, labelString, openUrlEnabled,
+                style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -620,11 +607,9 @@ public class CdmFormFactory extends FormToolkit {
         * @param style
         * @return
         */
-       public EditPasswordElement createEditPasswordElement(
-                       ICdmFormElement parentElement, String labelString,
+    public EditPasswordElement createEditPasswordElement(ICdmFormElement parentElement, String labelString,
                        ConversationHolder conversation, User user, int style) {
-               EditPasswordElement element = new EditPasswordElement(this,
-                               parentElement, labelString, user, conversation);
+        EditPasswordElement element = new EditPasswordElement(this, parentElement, labelString, user, conversation);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -644,7 +629,8 @@ public class CdmFormFactory extends FormToolkit {
         *            a {@link java.lang.Integer} object.
         * @param style
         *            a int.
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement}
+     * @return a
+     *         {@link eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement}
         *         object.
         */
        public NumberWithLabelElement createNumberTextWithLabelElement(
@@ -676,11 +662,10 @@ public class CdmFormFactory extends FormToolkit {
         *         {@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);
+    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;
@@ -706,11 +691,10 @@ public class CdmFormFactory extends FormToolkit {
         *         {@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);
+    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;
@@ -731,10 +715,8 @@ public class CdmFormFactory extends FormToolkit {
         * @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);
+    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;
@@ -757,11 +739,9 @@ public class CdmFormFactory extends FormToolkit {
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.KeyValueViewerElement}
         *         object.
         */
-       public KeyValueViewerElement createKeyValueViewerElement(
-                       ICdmFormElement parentElement, String keyHeading,
+    public KeyValueViewerElement createKeyValueViewerElement(ICdmFormElement parentElement, String keyHeading,
                        String valueHeading, Map<Object, Object> map) {
-               KeyValueViewerElement element = new KeyValueViewerElement(this,
-                               parentElement, keyHeading, valueHeading, map);
+        KeyValueViewerElement element = new KeyValueViewerElement(this, parentElement, keyHeading, valueHeading, map);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -790,10 +770,10 @@ public class CdmFormFactory extends FormToolkit {
         *         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);
+    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;
@@ -872,12 +852,11 @@ public class CdmFormFactory extends FormToolkit {
         * @param parentElement
         *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
         *            object.
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.BrowserElement} 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);
+    public BrowserElement createBrowserElement(ICdmFormElement parentElement, URI imageUri, int style) {
+        BrowserElement element = new BrowserElement(this, parentElement, imageUri, style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -897,10 +876,8 @@ public class CdmFormFactory extends FormToolkit {
         *            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);
+    public ImageElement createImageElement(ICdmFormElement parentElement, URI imageUri, int style) {
+        ImageElement element = new ImageElement(this, parentElement, imageUri, style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -925,11 +902,10 @@ public class CdmFormFactory extends FormToolkit {
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextActionElement}
         *         object.
         */
-       public TextActionElement createTextActionElement(
-                       ICdmFormElement parentElement, String labelString,
+    public TextActionElement createTextActionElement(ICdmFormElement parentElement, String labelString,
                        String buttonLabel, String initialText, int style) {
-               TextActionElement element = new TextActionElement(this, parentElement,
-                               labelString, buttonLabel, initialText, style);
+        TextActionElement element = new TextActionElement(this, parentElement, labelString, buttonLabel, initialText,
+                style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -949,12 +925,11 @@ public class CdmFormFactory extends FormToolkit {
         *            a boolean.
         * @param style
         *            a int.
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.CheckboxElement} object.
+     * @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);
+    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;
@@ -965,7 +940,8 @@ public class CdmFormFactory extends FormToolkit {
         * 
         * @return the section widget
         * @param section
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
+     *            a
+     *            {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
         *            object.
         */
        public Section adapt(AbstractFormSection section) {
@@ -977,26 +953,20 @@ public class CdmFormFactory extends FormToolkit {
                section.setPropertyChangeListeners(propertyChangeListeners);
 
                if (section.getToggle() != null) {
-                       section.getToggle().setHoverDecorationColor(
-                                       getColors().getColor(IFormColors.TB_TOGGLE_HOVER));
-                       section.getToggle().setDecorationColor(
-                                       getColors().getColor(IFormColors.TB_TOGGLE));
+            section.getToggle().setHoverDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE_HOVER));
+            section.getToggle().setDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE));
                }
 
-               section.setFont(boldFontHolder2.getBoldFont(section
-                               .getLayoutComposite().getFont()));
+        section.setFont(boldFontHolder2.getBoldFont(section.getLayoutComposite().getFont()));
 
-               if ((section.getStyle() & Section.TITLE_BAR) != 0
-                               || (section.getStyle() & Section.SHORT_TITLE_BAR) != 0) {
+        if ((section.getStyle() & ExpandableComposite.TITLE_BAR) != 0
+                || (section.getStyle() & ExpandableComposite.SHORT_TITLE_BAR) != 0) {
                        getColors().initializeSectionToolBarColors();
-                       section.setTitleBarBackground(getColors().getColor(
-                                       IFormColors.TB_BG));
-                       section.setTitleBarBorderColor(getColors().getColor(
-                                       IFormColors.TB_BORDER));
+            section.setTitleBarBackground(getColors().getColor(IFormColors.TB_BG));
+            section.setTitleBarBorderColor(getColors().getColor(IFormColors.TB_BORDER));
                }
                // call setTitleBarForeground regardless as it also sets the label color
-               section.setTitleBarForeground(getColors().getColor(
-                               IFormColors.TB_TOGGLE));
+        section.setTitleBarForeground(getColors().getColor(IFormColors.TB_TOGGLE));
                return section;
        }
 
@@ -1019,15 +989,13 @@ public class CdmFormFactory extends FormToolkit {
                                dispose();
                        }
                        if (boldFont == null) {
-                               boldFont = FormFonts.getInstance().getBoldFont(
-                                               getColors().getDisplay(), normalFont);
+                boldFont = FormFonts.getInstance().getBoldFont(getColors().getDisplay(), normalFont);
                        }
                }
 
                public void dispose() {
                        if (boldFont != null) {
-                               FormFonts.getInstance().markFinished(boldFont,
-                                               getColors().getDisplay());
+                FormFonts.getInstance().markFinished(boldFont, getColors().getDisplay());
                                boldFont = null;
                        }
                }
@@ -1052,12 +1020,10 @@ public class CdmFormFactory extends FormToolkit {
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement}
         *         object.
         */
-       public ToggleableTextElement createToggleableTextField(
-                       ICdmFormElement parentElement, String labelString,
+    public ToggleableTextElement createToggleableTextField(ICdmFormElement parentElement, String labelString,
                        String initialText, boolean initialState, int style) {
-               ToggleableTextElement element = new ToggleableTextElement(this,
-                               parentElement, labelString, initialText, initialState, style
-                                               | orientation);
+        ToggleableTextElement element = new ToggleableTextElement(this, parentElement, labelString, initialText,
+                initialState, style | orientation);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -1080,11 +1046,9 @@ public class CdmFormFactory extends FormToolkit {
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.TimePeriodElement}
         *         object.
         */
-       public TimePeriodElement createTimePeriodElement(
-                       ICdmFormElement parentElement, String labelString,
+    public TimePeriodElement createTimePeriodElement(ICdmFormElement parentElement, String labelString,
                        TimePeriod timePeriod, int style) {
-               TimePeriodElement element = new TimePeriodElement(this, parentElement,
-                               labelString, timePeriod, style);
+        TimePeriodElement element = new TimePeriodElement(this, parentElement, labelString, timePeriod, style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -1138,10 +1102,8 @@ public class CdmFormFactory extends FormToolkit {
         *            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);
+    public PointElement createPointElement(ICdmFormElement parentElement, Point point, int style) {
+        PointElement element = new PointElement(this, parentElement, point, style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -1160,10 +1122,8 @@ public class CdmFormFactory extends FormToolkit {
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.DateDetailSection}
         *         object.
         */
-       public DateDetailSection createDateDetailSection(
-                       ICdmFormElement parentElement, int style) {
-               DateDetailSection section = new DateDetailSection(this, parentElement,
-                               style);
+    public DateDetailSection createDateDetailSection(ICdmFormElement parentElement, int style) {
+        DateDetailSection section = new DateDetailSection(this, parentElement, style);
                parentElement.addElement(section);
                adapt(section);
                return section;
@@ -1203,12 +1163,12 @@ public class CdmFormFactory extends FormToolkit {
         *            a {@link org.joda.time.Partial} object.
         * @param style
         *            a int.
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.PartialElement} object.
+     * @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);
+    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;
@@ -1236,10 +1196,8 @@ public class CdmFormFactory extends FormToolkit {
         */
        public void removeSelectionListener(SelectionListener listener) {
                if (listener == null) {
-                       StoreUtil
-                                       .error(this.getClass(),
-                                                       "Tried to remove a selection listener from this factories listeners but was null",
-                                                       null);
+            AbstractUtility.error(this.getClass(),
+                    "Tried to remove a selection listener from this factories listeners but was null", null);
                } else {
                        selectionListenerList.remove(listener);
                }
@@ -1286,10 +1244,8 @@ public class CdmFormFactory extends FormToolkit {
         *            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);
+    public Label createHorizontalSeparator(ICdmFormElement parentElement, int style) {
+        Label separator = this.createSeparator(parentElement.getLayoutComposite(), SWT.HORIZONTAL | style);
                separator.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
                return separator;
        }
@@ -1311,10 +1267,8 @@ public class CdmFormFactory extends FormToolkit {
         *         {@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);
+    public VersionElement createVersionElement(ICdmFormElement parentElement, VersionableEntity entity, int style) {
+        VersionElement element = new VersionElement(this, parentElement, entity, style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -1326,10 +1280,8 @@ public class CdmFormFactory extends FormToolkit {
         * @param style
         * @return
         */
-       public CdmBaseElement createCdmBaseElement(ICdmFormElement parentElement,
-                       CdmBase entity, int style) {
-               CdmBaseElement element = new CdmBaseElement(this, parentElement,
-                               entity, style);
+    public CdmBaseElement createCdmBaseElement(ICdmFormElement parentElement, CdmBase entity, int style) {
+        CdmBaseElement element = new CdmBaseElement(this, parentElement, entity, style);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -1350,8 +1302,7 @@ public class CdmFormFactory extends FormToolkit {
         *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection}
         *         object.
         */
-       public VersionSection createVersionSection(ICdmFormElement parentElement,
-                       int style) {
+    public VersionSection createVersionSection(ICdmFormElement parentElement, int style) {
                VersionSection section = new VersionSection(this, parentElement, style);
                parentElement.addElement(section);
                adapt(section);
@@ -1381,8 +1332,7 @@ public class CdmFormFactory extends FormToolkit {
         * @return a {@link eu.etaxonomy.taxeditor.ui.section.EmptyElement} object.
         */
        public EmptyElement createEmptyElement(ICdmFormElement parentElement) {
-               EmptyElement element = new EmptyElement(this, parentElement, null,
-                               SWT.NULL);
+        EmptyElement element = new EmptyElement(this, parentElement, null, SWT.NULL);
                adapt(element);
                parentElement.addElement(element);
                return element;
@@ -1401,8 +1351,7 @@ public class CdmFormFactory extends FormToolkit {
         *         object.
         */
        public HeadlineSection createHeadlineSection(ICdmFormElement parentElement) {
-               HeadlineSection section = new HeadlineSection(this, parentElement,
-                               SWT.NULL);
+        HeadlineSection section = new HeadlineSection(this, parentElement, SWT.NULL);
                parentElement.addElement(section);
                adapt(section);
                return section;
@@ -1425,68 +1374,20 @@ public class CdmFormFactory extends FormToolkit {
         *         {@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);
+    public ParsingMessageElement createParsingMessageElement(ICdmFormElement parentElement,
+            ParserProblem parserProblem, int style) {
+        ParsingMessageElement element = new ParsingMessageElement(this, parentElement, parserProblem, style);
                adapt(element);
                parentElement.addElement(element);
                return element;
        }
 
-       // SIMPLIFY
+    public AbstractFormSection createDefinedTermDetailSection(Class definedTermClass, ConversationHolder conversation,
+            ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
 
-       /**
-        * 
-        */
-       public static enum DetailType {
-               AUTHORSHIP, 
-               CLASSIFICATION, 
-               COLLECTION, 
-               DERIVED_UNIT, 
-               DERIVED_UNIT_FACADE, 
-               DERIVED_UNIT_GENERAL, 
-               DESCRIPTION, 
-               DESCRIPTIONELEMENT, 
-               DETERMINATION, 
-               FEATURE_DISTRIBUTION, 
-               FIELD_OBSERVATION, 
-               GATHERING_EVENT, 
-               GRANTEDAUTHORITY,
-               GROUP, 
-               HYBRID, 
-               INSTITUTION, 
-               MEDIA, 
-               NAMED_AREA, 
-               NAMED_AREA_LEVEL, 
-               NAMERELATIONSHIP, 
-               NATURAL_LANGUAGE, 
-               NOMENCLATURALREFERENCE, 
-               NONVIRALNAME, 
-               PARSINGMESSAGE, 
-               PERSON, 
-               POLYTOMOUS_KEY, 
-               POLYTOMOUS_KEY_NODE, 
-               REFERENCEBASE, 
-               REFERENCED_ENTITY, 
-               SCIENTIFICNAME, 
-               TAXON_NODE, 
-               TAXON_RELATIONSHIP, 
-               TAXONBASE, 
-               TEAM, 
-               TEAMORPERSONBASE, 
-               TERM_VOCABULARY,
-               USE_RECORD,
-               USER
-       }
+        AbstractFormSection section = new DefinedTermDetailSection(this, definedTermClass, conversation, parentElement,
+                selectionProvider, style);
        
-       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;
@@ -1499,15 +1400,12 @@ public class CdmFormFactory extends FormToolkit {
         * @param style
         * @return
         */
-       public AbstractCdmDetailElement createDefinedTermDetailElement(
-                       Class definedTermClass, AbstractCdmDetailSection parentElement,
-                       int style) {
+    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);
-               }
-               else {
+        } else {
                        element = new DefinedTermDetailElement(this, parentElement);
                }
                
@@ -1516,534 +1414,648 @@ public class CdmFormFactory extends FormToolkit {
                return element;
        }
 
-       /**
-        * <p>
-        * createCdmDetailSection
-        * </p>
-        * 
-        * @param detailType
-        *            a
-        *            {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.DetailType}
-        *            object.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param selectionProvider
-        *            a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style
-        *            a int.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-        *         object.
-        */
-       public AbstractFormSection createCdmDetailSection(DetailType detailType,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
-                       ISelectionProvider selectionProvider, int style) {
-               AbstractFormSection section = null;
-
-               switch (detailType) {
-               case SCIENTIFICNAME:
-                       section = new NameDetailSection(this, conversation, parentElement,
-                                       selectionProvider, style);
-                       break;
-               case REFERENCEBASE:
-                       section = new ReferenceDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case NOMENCLATURALREFERENCE:
-                       section = new NomenclaturalReferenceDetailSection(this,
-                                       conversation, parentElement, selectionProvider, style);
-                       break;
-               case TAXONBASE:
-                       section = new TaxonBaseDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case AUTHORSHIP:
-                       section = new AuthorshipDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case TEAMORPERSONBASE:
-                       section = new TeamOrPersonBaseDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case TEAM:
-                       section = new TeamDetailSection(this, conversation, parentElement,
-                                       null, style);
-                       break;
-               case PERSON:
-                       section = new PersonDetailSection(this, conversation,
-                                       parentElement, null, style);
-                       break;
-               case DESCRIPTION:
-                       section = new DescriptionDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case DESCRIPTIONELEMENT:
-                       section = new DescriptionElementDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case PARSINGMESSAGE:
-                       section = new ParsingMessagesSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case NONVIRALNAME:
-                       section = new NonViralNameDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case MEDIA:
-                       section = new eu.etaxonomy.taxeditor.ui.section.description.MediaDetailsSection(
-                                       this, conversation, parentElement, selectionProvider, style);
-                       break;
-               case DERIVED_UNIT_FACADE:
-                       section = new DerivedUnitFacadeDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case FIELD_OBSERVATION:
-                       section = new FieldObservationDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case GATHERING_EVENT:
-                       section = new GatheringEventDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case DERIVED_UNIT:
-                       section = new DerivedUnitBaseDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case NATURAL_LANGUAGE:
-                       section = new NaturalLanguageSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case FEATURE_DISTRIBUTION:
-                       section = new FeatureDistributionDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case CLASSIFICATION:
-                       section = new ClassificationDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case TAXON_NODE:
-                       section = new TaxonNodeDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case POLYTOMOUS_KEY:
-                       section = new PolytomousKeyDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case POLYTOMOUS_KEY_NODE:
-                       section = new PolytomousKeyNodeDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case INSTITUTION:
-                       section = new InstitutionDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case DERIVED_UNIT_GENERAL:
-                       section = new GeneralDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case HYBRID:
-                       section = new HybridDetailSection(this, conversation,
-                                       parentElement, selectionProvider, style);
-                       break;
-               case USER:
-                       section = new UserDetailSection(this, conversation, parentElement,
-                                       selectionProvider, style);
-                       break;
-               case GROUP:
-                       section = new GroupDetailSection(this, conversation, parentElement,
-                                       selectionProvider, style);
-                       break;
-               case DETERMINATION:
-                       section = new DeterminationDetailSection(this, conversation, parentElement,
-                                       selectionProvider, style);
-                       break;
-               case TAXON_RELATIONSHIP:
-                       section = new TaxonRelationshipDetailSection(this, conversation, parentElement, 
-                                       selectionProvider, style);
-                       break;
-               case REFERENCED_ENTITY:
-                       section = new ReferencedEntityDetailSection(this, conversation, parentElement, 
-                                       selectionProvider, style);
-                       break;
-               case TERM_VOCABULARY:
-                       section = new TermVocabularyDetailSection(this, conversation, parentElement, 
-                                       selectionProvider, style);
-                       break;
-               case NAMED_AREA:
-                       section = new NamedAreaDetailSection(this, conversation, parentElement, 
-                                       selectionProvider, style);
-                       break;
-               case USE_RECORD:
-                       section = new UseRecordDetailSection(this, conversation, parentElement,
-                                       selectionProvider, style);
-                       break;
+
+    //--------DetailSections---------
+    public NameDetailSection createNameDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NameDetailSection section = new NameDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ReferenceDetailSection createReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        ReferenceDetailSection section = new ReferenceDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public NomenclaturalReferenceDetailSection createNomenclaturalReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NomenclaturalReferenceDetailSection section = new NomenclaturalReferenceDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public TaxonBaseDetailSection createTaxonBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TaxonBaseDetailSection section = new TaxonBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public AuthorshipDetailSection createAuthorshipDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        AuthorshipDetailSection section = new AuthorshipDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public TeamOrPersonBaseDetailSection createTeamOrPersonBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TeamOrPersonBaseDetailSection section = new TeamOrPersonBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public TeamDetailSection createTeamDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        TeamDetailSection section = new TeamDetailSection(this, conversation, parentElement, null, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public PersonDetailSection createPersonDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        PersonDetailSection section = new PersonDetailSection(this, conversation, parentElement, null, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DescriptionDetailSection createDescriptionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DescriptionDetailSection section = new DescriptionDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DescriptionElementDetailSection createDescriptionElementDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DescriptionElementDetailSection section = new DescriptionElementDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ParsingMessagesSection createParsingMessagesSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        ParsingMessagesSection section = new ParsingMessagesSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public NonViralNameDetailSection createNonViralNameDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NonViralNameDetailSection section = new NonViralNameDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public MediaDetailsSection createMediaDetailsSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        MediaDetailsSection section = new MediaDetailsSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DerivedUnitFacadeDetailSection createDerivedUnitFacadeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DerivedUnitFacadeDetailSection section = new DerivedUnitFacadeDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public FieldObservationDetailSection createFieldObservationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        FieldObservationDetailSection section = new FieldObservationDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public GatheringEventDetailSection createGatheringEventDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GatheringEventDetailSection section = new GatheringEventDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DerivedUnitBaseDetailSection createDerivedUnitBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DerivedUnitBaseDetailSection section = new DerivedUnitBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public NaturalLanguageSection createNaturalLanguageSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NaturalLanguageSection section = new NaturalLanguageSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public FeatureDistributionDetailSection createFeatureDistributionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        FeatureDistributionDetailSection section = new FeatureDistributionDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ClassificationDetailSection createClassificationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        ClassificationDetailSection section = new ClassificationDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public TaxonNodeDetailSection createTaxonNodeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TaxonNodeDetailSection section = new TaxonNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public PolytomousKeyDetailSection createPolytomousKeyDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        PolytomousKeyDetailSection section = new PolytomousKeyDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public PolytomousKeyNodeDetailSection createPolytomousKeyNodeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        PolytomousKeyNodeDetailSection section = new PolytomousKeyNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public InstitutionDetailSection createInstitutionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        InstitutionDetailSection section = new InstitutionDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public GeneralDetailSection createGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GeneralDetailSection section = new GeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public HybridDetailSection createHybridDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        HybridDetailSection section = new HybridDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public UserDetailSection createUserDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        UserDetailSection section = new UserDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public GroupDetailSection createGroupDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GroupDetailSection section = new GroupDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DeterminationDetailSection createDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DeterminationDetailSection section = new DeterminationDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public TaxonRelationshipDetailSection createTaxonRelationshipDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TaxonRelationshipDetailSection section = new TaxonRelationshipDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ReferencedEntityDetailSection createReferencedEntityDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        ReferencedEntityDetailSection section = new ReferencedEntityDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public TermVocabularyDetailSection createTermVocabularyDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TermVocabularyDetailSection section = new TermVocabularyDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+
+    public NamedAreaDetailSection createNamedAreaDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NamedAreaDetailSection section = new NamedAreaDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public UseRecordDetailSection createUseRecordDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        UseRecordDetailSection section = new UseRecordDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public GeneralDetailSection createFOSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GeneralDetailSection section = new GeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
                }
                
-
-               if (section == null) {
-                       throw new RuntimeException(
-                                       "You tried to create a cdm detail section that is not implemented yet.");
+    public GatheringEventDetailSection createGatheringSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GatheringEventDetailSection section = new GatheringEventDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public FieldObservationDetailSection createFODetailsSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        FieldObservationDetailSection section = new FieldObservationDetailSection(this, conversation, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
                }
 
+    private void addAndAdaptSection(ICdmFormElement parentElement, AbstractFormSection<?> section) {
                parentElement.addElement(section);
                adapt(section);
-               return section;
        }
 
+    //--------DetailElements------------
+
+    public UseRecordDetailElement createUseRecordDetailElement(ICdmFormElement parentElement){
+        UseRecordDetailElement element = new UseRecordDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public DefinedTermDetailElement<NamedAreaLevel> createNamedAreaLevelElement(ICdmFormElement parentElement){
+        DefinedTermDetailElement<NamedAreaLevel> element = new DefinedTermDetailElement<NamedAreaLevel>(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailElement createNamedAreaDetailElement(ICdmFormElement parentElement){
+        eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailElement element = new eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public TermVocabularyDetailElement createTermVocabularyDetailElement(ICdmFormElement parentElement){
+        TermVocabularyDetailElement element = new TermVocabularyDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public ReferenceEntityDetailElement createReferenceEntityDetailElement(ICdmFormElement parentElement){
+        ReferenceEntityDetailElement element = new ReferenceEntityDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public TaxonRelationshipDetailElement createTaxonRelationshipDetailElement(ICdmFormElement parentElement){
+        TaxonRelationshipDetailElement element = new TaxonRelationshipDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public GrantedAuthorityDetailElement createGrantedAuthorityDetailElement(ICdmFormElement parentElement){
+        GrantedAuthorityDetailElement element = new GrantedAuthorityDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public GroupDetailElement createGroupDetailElement(ICdmFormElement parentElement){
+        GroupDetailElement element = new GroupDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public UserDetailElement createUserDetailElement(ICdmFormElement parentElement){
+        UserDetailElement element = new UserDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public HybridDetailElement createHybridDetailElement(ICdmFormElement parentElement){
+        HybridDetailElement element = new HybridDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public InstitutionDetailElement createInstitutionDetailElement(ICdmFormElement parentElement){
+        InstitutionDetailElement element = new InstitutionDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public PolytomousKeyNodeDetailElement createPolytomousKeyNodeDetailElement(ICdmFormElement parentElement){
+        PolytomousKeyNodeDetailElement element = new PolytomousKeyNodeDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public PolytomousKeyDetailElement createPolytomousKeyDetailElement(ICdmFormElement parentElement){
+        PolytomousKeyDetailElement element = new PolytomousKeyDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public CollectionDetailElement createCollectionDetailElement(ICdmFormElement parentElement){
+        CollectionDetailElement element = new CollectionDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public TaxonNodeDetailElement createTaxonNodeDetailElement(ICdmFormElement parentElement){
+        TaxonNodeDetailElement element = new TaxonNodeDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public ClassificationDetailElement createClassificationDetailElement(ICdmFormElement parentElement){
+        ClassificationDetailElement element = new ClassificationDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public FeatureDistributionDetailElement createFeatureDistributionDetailElement(ICdmFormElement parentElement){
+        FeatureDistributionDetailElement element = new FeatureDistributionDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public NaturalLanguageDetailElement createNaturalLanguageDetailElement(ICdmFormElement parentElement){
+        NaturalLanguageDetailElement element = new NaturalLanguageDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public DerivedUnitFacadeDetailElement createDerivedUnitFacadeDetailElement(ICdmFormElement parentElement){
+        DerivedUnitFacadeDetailElement element = new DerivedUnitFacadeDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public NonViralNameDetailElement createNonViralNameDetailElement(ICdmFormElement parentElement){
+        NonViralNameDetailElement element = new NonViralNameDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public DescriptionElementDetailElement createDescriptionElementDetailElement(ICdmFormElement parentElement, int style){
+        DescriptionElementDetailElement element = new DescriptionElementDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public DescriptionDetailElement createDescriptionDetailElement(ICdmFormElement parentElement, int style){
+        DescriptionDetailElement element = new DescriptionDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public PersonDetailElement createPersonDetailElement(ICdmFormElement parentElement, int style){
+        PersonDetailElement element = new PersonDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style){
+        TeamDetailElement element = new TeamDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public AuthorshipDetailElement createAuthorshipDetailElement(ICdmFormElement parentElement, int style){
+        AuthorshipDetailElement element = new AuthorshipDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public TaxonBaseDetailElement createTaxonBaseDetailElement(ICdmFormElement parentElement, int style){
+        TaxonBaseDetailElement element = new TaxonBaseDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public NameDetailElement createNameDetailElement(ICdmFormElement parentElement, int style){
+        NameDetailElement element = new NameDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public ReferenceDetailElement createReferenceDetailElement(ICdmFormElement parentElement, int style){
+        ReferenceDetailElement element = new ReferenceDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public NomenclaturalReferenceDetailElement createNomenclaturalReferenceDetailElement(ICdmFormElement parentElement, int style){
+        NomenclaturalReferenceDetailElement element = new NomenclaturalReferenceDetailElement(this, parentElement, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
        
        
-       /**
-        * <p>
-        * createCdmDetailElement
-        * </p>
-        * 
-        * @param detailType
-        *            a
-        *            {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.DetailType}
-        *            object.
-        * @param style
-        *            a int.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @return a
-        *         {@link eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement}
-        *         object.
-        */
-       public AbstractCdmDetailElement createCdmDetailElement(
-                       DetailType detailType, ICdmFormElement parentElement, int style) {
-               AbstractCdmDetailElement element = null;
-
-               switch (detailType) {
-               case SCIENTIFICNAME:
-                       element = new NameDetailElement(this, parentElement, style);
-                       break;
-               case REFERENCEBASE:
-                       element = new ReferenceDetailElement(this, parentElement, style);
-                       break;
-               case NOMENCLATURALREFERENCE:
-                       element = new NomenclaturalReferenceDetailElement(this,
-                                       parentElement, style);
-                       break;
-               case TAXONBASE:
-                       element = new TaxonBaseDetailElement(this, parentElement, style);
-                       break;
-               case AUTHORSHIP:
-                       element = new AuthorshipDetailElement(this, parentElement, style);
-                       break;
-               case TEAM:
-                       element = new TeamDetailElement(this, parentElement, style);
-                       break;
-               case PERSON:
-                       element = new PersonDetailElement(this, parentElement, style);
-                       break;
-               case DESCRIPTION:
-                       element = new DescriptionDetailElement(this, parentElement, style);
-                       break;
-               case DESCRIPTIONELEMENT:
-                       element = new DescriptionElementDetailElement(this, parentElement,
-                                       style);
-                       break;
-               case NONVIRALNAME:
-                       element = new NonViralNameDetailElement(this, parentElement);
-                       break;
-               case DERIVED_UNIT_FACADE:
-                       element = new DerivedUnitFacadeDetailElement(this, parentElement);
-                       break;
-               case FIELD_OBSERVATION:
-                       element = new FieldObservationDetailElement(this, parentElement);
-                       break;
-               case GATHERING_EVENT:
-                       element = new GatheringEventDetailElement(this, parentElement);
-                       break;
-               case DERIVED_UNIT:
-                       element = new DerivedUnitBaseDetailElement(this, parentElement);
-                       break;
-               case NATURAL_LANGUAGE:
-                       element = new NaturalLanguageDetailElement(this, parentElement);
-                       break;
-               case FEATURE_DISTRIBUTION:
-                       element = new FeatureDistributionDetailElement(this, parentElement);
-                       break;
-               case CLASSIFICATION:
-                       element = new ClassificationDetailElement(this, parentElement);
-                       break;
-               case TAXON_NODE:
-                       element = new TaxonNodeDetailElement(this, parentElement);
-                       break;
-               case COLLECTION:
-                       element = new CollectionDetailElement(this, parentElement);
-                       break;
-               case POLYTOMOUS_KEY:
-                       element = new PolytomousKeyDetailElement(this, parentElement);
-                       break;
-               case POLYTOMOUS_KEY_NODE:
-                       element = new PolytomousKeyNodeDetailElement(this, parentElement);
-                       break;
-               case INSTITUTION:
-                       element = new InstitutionDetailElement(this, parentElement);
-                       break;
-               case DERIVED_UNIT_GENERAL:
-                       element = new GeneralDetailElement(this, parentElement);
-                       break;
-               case HYBRID:
-                       element = new HybridDetailElement(this, parentElement);
-                       break;
-               case USER:
-                       element = new UserDetailElement(this, parentElement);
-                       break;
-               case GROUP:
-                       element = new GroupDetailElement(this, parentElement);
-                       break;
-               case GRANTEDAUTHORITY:
-                       element = new GrantedAuthorityDetailElement(this, parentElement);
-                       break;
-               case DETERMINATION:
-                       element = new DeterminationDetailElement(this, parentElement);
-                       break;
-               case TAXON_RELATIONSHIP:
-                       element = new TaxonRelationshipDetailElement(this, parentElement);
-                       break;
-               case REFERENCED_ENTITY:
-                       element = new RefereneEntityDetailElement(this, parentElement);
-                       break;
-               case TERM_VOCABULARY:
-                       element = new TermVocabularyDetailElement(this, parentElement);
-                       break;
-               case NAMED_AREA:
-                       element = new eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailElement(this, parentElement);
-                       break;
-               case NAMED_AREA_LEVEL:
-                       element = new DefinedTermDetailElement<NamedAreaLevel>(this, parentElement);
-                       break;
-               case USE_RECORD:
-                       //element = new UseRecordDetailElement(this, parentElement, style);
-                       element = new UseRecordDetailElement(this, parentElement);
-                       break;
+    public GeneralDetailElement createGeneralDetailElement(ICdmFormElement parentElement){
+        GeneralDetailElement element = new GeneralDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public GatheringEventDetailElement createGatheringEventDetailElement(ICdmFormElement parentElement) {
+        GatheringEventDetailElement element = new GatheringEventDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
                }
 
-               if (element == null) {
-                       StoreUtil
-                                       .error(this.getClass(),
-                                                       "Detail element was not created. Seems like the case was not implemented for the requested detail type: "
-                                                                       + detailType, null);
+    public FieldObservationDetailElement createFieldObservationDetailElement(ICdmFormElement parentElement) {
+        FieldObservationDetailElement element = new FieldObservationDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
                }
 
-               adapt(element);
-               parentElement.addElement(element);
+    public DerivedUnitBaseDetailElement createDerivedUnitBaseDetailElement(ICdmFormElement parentElement) {
+        DerivedUnitBaseDetailElement element = new DerivedUnitBaseDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
                return element;
        }
 
-       /**
-        * 
-        * @author n.hoffmann
-        * @created Mar 5, 2010
-        * @version 1.0
-        */
-       public static enum EntityDetailType {
-               TEAM, 
-               TEAMMEMBER, 
-               ANNOTATION, 
-               CREDIT, 
-               DESCRIPTIONELEMENTSOURCE, 
-               EXTENSION, 
-               MARKER, 
-               MEDIA, 
-               DESCRIPTIONELEMENTMEDIA, 
-               MEDIAREPRESENTATION, 
-               MEDIAREPRESENTATIONPART, 
-               MODIFIER, 
-               NOMENCLATURALSTATUS, 
-               NAME_RELATIONSHIP, 
-               PROTOLOG, 
-               RIGHTS, 
-               SOURCE, 
-               SCOPE, 
-               DESCRIPTIONSOURCE, 
-               TYPEDESIGNATION, 
-               STATE_DATA, 
-               STATISTICAL_MEASUREMENT_VALUE, 
-               DESCRIBED_SPECIMEN, 
-               COLLECTING_AREA, 
-               DETERMINATION_EVENT, 
-               SPECIMEN_COLLECTION, 
-               IDENTIFIABLE_SOURCE_COLLECTION, 
-               GEOGRAPHICAL_SCOPE, 
-               SCOPE_RESTRICTION, 
-               MEMBER, 
-               GRANTED_AUTHORITY, 
-               GROUPS_BY_USER, 
-               TAXONOMIC_SCOPE, 
-               DETERMINATION_CURRENT, 
-               DETERMINATION_HISTORY
+    public DeterminationDetailElement createDeterminationDetailElement(ICdmFormElement parentElement) {
+        DeterminationDetailElement element = new DeterminationDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
        }
 
        /**
-        * <p>
-        * createEntityDetailSection
-        * </p>
-        * 
-        * @param entityDetailType
-        *            a
-        *            {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EntityDetailType}
-        *            object.
-        * @param style
-        *            a int.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
         * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-        *         object.
+     * @param element
         */
-       public AbstractFormSection createEntityDetailSection(
-                       EntityDetailType entityDetailType, ConversationHolder conversation,
-                       ICdmFormElement parentElement, int style) {
-               AbstractFormSection section = null;
-
-               switch (entityDetailType) {
-               case TEAM:
-                       section = new TeamDetailSection(this, conversation, parentElement,
-                                       null, style);
-                       break;
-               case TEAMMEMBER:
-                       section = new TeamMemberSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case ANNOTATION:
-                       section = new AnnotationSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case CREDIT:
-                       section = new CreditSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case DESCRIPTIONELEMENTSOURCE:
-                       section = new DescriptionElementSourceSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case EXTENSION:
-                       section = new ExtensionSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case MARKER:
-                       section = new MarkerSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case MEDIA:
-                       section = new MediaSection(this, conversation, parentElement, style);
-                       break;
-               case DESCRIPTIONELEMENTMEDIA:
-                       section = new DescriptionElementMediaSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case MEDIAREPRESENTATION:
-                       section = new MediaRepresentationSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case MEDIAREPRESENTATIONPART:
-                       section = new MediaRepresentationPartSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case MODIFIER:
-                       section = new ModifierSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case NOMENCLATURALSTATUS:
-                       section = new NomenclaturalStatusSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case NAME_RELATIONSHIP:
-                       section = new NameRelationshipDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case PROTOLOG:
-                       section = new ProtologueSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case RIGHTS:
-                       section = new RightsSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case SOURCE:
-                       section = new SourceSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case SCOPE:
-                       section = new ScopeSection(this, conversation, parentElement, style);
-                       break;
-               case DESCRIPTIONSOURCE:
-                       section = new DescriptionSourceSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case TYPEDESIGNATION:
-                       section = new TypeDesignationSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case STATE_DATA:
-                       section = new StateDataSection(this, conversation, parentElement,
-                                       style);
-                       break;
-               case STATISTICAL_MEASUREMENT_VALUE:
-                       section = new StatisticalMeasurementValueSection(this,
-                                       conversation, parentElement, style);
-                       break;
-               case DESCRIBED_SPECIMEN:
-                       section = new DescribedSpecimenSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case COLLECTING_AREA:
-                       section = new CollectingAreasDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case DETERMINATION_CURRENT:
-                       section = new CurrentDeterminationDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case DETERMINATION_HISTORY:
-                       section = new DeterminationHistoryDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case SPECIMEN_COLLECTION:
-                       section = new SpecimenCollectionDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case IDENTIFIABLE_SOURCE_COLLECTION:
-                       section = new SourceCollectionDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case GEOGRAPHICAL_SCOPE:
-                       section = new GeographicalScopeDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case SCOPE_RESTRICTION:
-                       section = new ScopeRestrictionSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case MEMBER:
-                       section = new MemberDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case GRANTED_AUTHORITY:
-                       section = new GrantedAuthorityDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case GROUPS_BY_USER:
-                       section = new GroupsByUserDetailSection(this, conversation,
-                                       parentElement, style);
-                       break;
-               case TAXONOMIC_SCOPE:
-                       section = new TaxonomicScopeSection(this, conversation,
-                                       parentElement, style);
-                       break;
+    private void addAndAdaptElement(ICdmFormElement parentElement, AbstractCdmDetailElement<?> element) {
+        adapt(element);
+        parentElement.addElement(element);
+    }
+
+    //--------EntityCollectionSection----------
+    public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public AnnotationSection createAnnotationSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        AnnotationSection section = new AnnotationSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public CreditSection createCreditSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        CreditSection section = new CreditSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DescriptionElementSourceSection createDescriptionElementSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        DescriptionElementSourceSection section = new DescriptionElementSourceSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ExtensionSection createExtensionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        ExtensionSection section = new ExtensionSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public MarkerSection createMarkerSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        MarkerSection section = new MarkerSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public MediaSection createMediaSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        MediaSection section = new MediaSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DescriptionElementMediaSection createDescriptionElementMediaSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        DescriptionElementMediaSection section = new DescriptionElementMediaSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public MediaRepresentationSection createMediaRepresentationSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        MediaRepresentationSection section = new MediaRepresentationSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public MediaRepresentationPartSection createMediaRepresentationPartSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        MediaRepresentationPartSection section = new MediaRepresentationPartSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ModifierSection createModifierSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        ModifierSection section = new ModifierSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public NomenclaturalStatusSection createNomenclaturalStatusSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        NomenclaturalStatusSection section = new NomenclaturalStatusSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public NameRelationshipDetailSection createNameRelationshipDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        NameRelationshipDetailSection section = new NameRelationshipDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ProtologueSection createProtologueSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        ProtologueSection section = new ProtologueSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public RightsSection createRightsSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        RightsSection section = new RightsSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public SourceSection createSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        SourceSection section = new SourceSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ScopeSection createScopeSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        ScopeSection section = new ScopeSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DescriptionSourceSection createDescriptionSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        DescriptionSourceSection section = new DescriptionSourceSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public TypeDesignationSection createTypeDesignationSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        TypeDesignationSection section = new TypeDesignationSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public StateDataSection createStateDataSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        StateDataSection section = new StateDataSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public StatisticalMeasurementValueSection createStatisticalMeasurementValueSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        StatisticalMeasurementValueSection section = new StatisticalMeasurementValueSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DescribedSpecimenSection createDescribedSpecimenSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        DescribedSpecimenSection section = new DescribedSpecimenSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public CollectingAreasDetailSection createCollectingAreasDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        CollectingAreasDetailSection section = new CollectingAreasDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public CurrentDeterminationDetailSection createCurrentDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        CurrentDeterminationDetailSection section = new CurrentDeterminationDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public DeterminationHistoryDetailSection createDeterminationHistoryDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        DeterminationHistoryDetailSection section = new DeterminationHistoryDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public SpecimenCollectionDetailSection createSpecimenCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        SpecimenCollectionDetailSection section = new SpecimenCollectionDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public SourceCollectionDetailSection createSourceCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        SourceCollectionDetailSection section = new SourceCollectionDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public GeographicalScopeDetailSection createGeographicalScopeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        GeographicalScopeDetailSection section = new GeographicalScopeDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ScopeRestrictionSection createScopeRestrictionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        ScopeRestrictionSection section = new ScopeRestrictionSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public MemberDetailSection createMemberDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        MemberDetailSection section = new MemberDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public GrantedAuthorityDetailSection createGrantedAuthorityDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        GrantedAuthorityDetailSection section = new GrantedAuthorityDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public GroupsByUserDetailSection createGroupsByUserDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        GroupsByUserDetailSection section = new GroupsByUserDetailSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
                }
-               parentElement.addElement(section);
-               adapt(section);
+
+    public TaxonomicScopeSection createTaxonomicScopeSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+        TaxonomicScopeSection section = new TaxonomicScopeSection(this, conversation, parentElement, style);
+        addAndAdaptSection(parentElement, section);
                return section;
        }
 
@@ -2057,7 +2069,8 @@ public class CdmFormFactory extends FormToolkit {
         * @param style
         *            a int.
         * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
+     *            a
+     *            {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
         *            object.
         * @param versionableEntity
         *            a {@link eu.etaxonomy.cdm.model.common.IVersionableEntity}
@@ -2068,52 +2081,43 @@ public class CdmFormFactory extends FormToolkit {
         *         {@link eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement}
         *         object.
         */
-       public AbstractEntityCollectionElement createEntityCollectionElement(
-                       AbstractFormSection parentElement, Object versionableEntity,
-                       SelectionListener removeListener, Color backgroundColor, int style) {
+    public AbstractEntityCollectionElement createEntityCollectionElement(AbstractFormSection parentElement,
+            Object versionableEntity, SelectionListener removeListener, Color backgroundColor, int style) {
                AbstractEntityCollectionElement element = null;
 
                Object entity = HibernateProxyHelper.deproxy(versionableEntity);
 
                if (entity instanceof Annotation) {
-                       element = new AnnotationElement(this, parentElement,
-                                       (Annotation) entity, removeListener, style);
+            element = new AnnotationElement(this, parentElement, (Annotation) entity, removeListener, style);
                } else if (entity instanceof Person) {
-                       element = new TeamMemberElement(this, parentElement,
-                                       (Person) entity, removeListener, style);
+            element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
                } else if (entity instanceof Credit) {
-                       element = new CreditElement(this, parentElement, (Credit) entity,
-                                       removeListener, style);
+            element = new CreditElement(this, parentElement, (Credit) entity, removeListener, style);
                } else if (entity instanceof Extension) {
-                       element = new ExtensionElement(this, parentElement,
-                                       (Extension) entity, removeListener, style);
+            element = new ExtensionElement(this, parentElement, (Extension) entity, removeListener, style);
                } else if (entity instanceof Marker) {
-                       element = new MarkerElement(this, parentElement, (Marker) entity,
-                                       removeListener, style);
+            element = new MarkerElement(this, parentElement, (Marker) entity, removeListener, style);
                } else if (entity instanceof Media) {
-                       element = new MediaElement(this, parentElement, (Media) entity,
-                                       removeListener, style);
+            element = new MediaElement(this, parentElement, (Media) entity, removeListener, style);
                } else if (entity instanceof MediaRepresentation) {
-                       element = new MediaRepresentationElement(this, parentElement,
-                                       (MediaRepresentation) entity, removeListener, style);
+            element = new MediaRepresentationElement(this, parentElement, (MediaRepresentation) entity, removeListener,
+                    style);
                } else if (entity instanceof ImageFile) {
-                       element = new ImageFileElement(this, parentElement,
-                                       (ImageFile) entity, removeListener, style);
+            element = new ImageFileElement(this, parentElement, (ImageFile) entity, removeListener, style);
                } else if (entity instanceof MediaRepresentationPart){
-                       element = new MediaRepresentationPartElement(this, parentElement, 
-                                       (MediaRepresentationPart) entity, removeListener, style);                       
+            element = new MediaRepresentationPartElement(this, parentElement, (MediaRepresentationPart) entity,
+                    removeListener, style);
                } else if (entity instanceof NomenclaturalStatus) {
-                       element = new NomenclaturalStatusElement(this, parentElement,
-                                       (NomenclaturalStatus) entity, removeListener, style);
+            element = new NomenclaturalStatusElement(this, parentElement, (NomenclaturalStatus) entity, removeListener,
+                    style);
                } else if (entity instanceof Rights) {
-                       element = new RightsElement(this, parentElement, (Rights) entity,
+            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 DescriptionElementSource) {
-                       element = new DescriptionElementSourceElement(this, parentElement,
-                                       (DescriptionElementSource) entity, removeListener, style);
                } else if (entity instanceof IdentifiableSource) {
-                       element = new IdentifiableSourceElement(this, parentElement,
-                                       (IdentifiableSource) entity, removeListener, style);
+            element = new IdentifiableSourceElement(this, parentElement, (IdentifiableSource) entity, removeListener,
+                    style);
                } else if (entity instanceof DefinedTerm) {
                        switch(((DefinedTerm)entity).getTermType()) {
                                case Scope:
@@ -2137,23 +2141,20 @@ public class CdmFormFactory extends FormToolkit {
                        
                        }
                } else if (entity instanceof Reference) {
-                       element = new DescriptionSourceElement(this, parentElement,
-                                       (Reference) entity, removeListener, style);
+            element = new DescriptionSourceElement(this, parentElement, (Reference) entity, removeListener, style);
                } else if (entity instanceof NameTypeDesignation) {
-                       element = new NameTypeDesignationElement(this, parentElement,
-                                       (NameTypeDesignation) entity, removeListener, style);
+            element = new NameTypeDesignationElement(this, parentElement, (NameTypeDesignation) entity, removeListener,
+                    style);
                } else if (entity instanceof NameRelationship) {
-                       element = new NameRelationshipDetailElement(this, parentElement,
-                                       (NameRelationship) entity, removeListener, style);
+            element = new NameRelationshipDetailElement(this, parentElement, (NameRelationship) entity, removeListener,
+                    style);
                } else if (entity instanceof SpecimenTypeDesignation) {
-                       element = new SpecimenTypeDesignationElement(this, parentElement,
-                                       (SpecimenTypeDesignation) entity, removeListener, style);
+            element = new SpecimenTypeDesignationElement(this, parentElement, (SpecimenTypeDesignation) entity,
+                    removeListener, style);
                } else if (entity instanceof StateData) {
-                       element = new StateDataElement(this, parentElement,
-                                       (StateData) entity, removeListener, style);
+            element = new StateDataElement(this, parentElement, (StateData) entity, removeListener, style);
                } else if (entity instanceof StatisticalMeasurementValue) {
-                       element = new StatisticalMeasurementValueElement(this,
-                                       parentElement, (StatisticalMeasurementValue) entity,
+            element = new StatisticalMeasurementValueElement(this, parentElement, (StatisticalMeasurementValue) entity,
                                        removeListener, style);
                } else if (entity instanceof DerivedUnit) {
                        switch(((DerivedUnit)entity).getRecordBasis()) {
@@ -2175,45 +2176,36 @@ public class CdmFormFactory extends FormToolkit {
                        }                       
 
                } else if (entity instanceof NamedArea) {
-                       element = new NamedAreaDetailElement(this, parentElement,
-                                       (NamedArea) entity, removeListener, style);
+            element = new NamedAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
                } else if (entity instanceof DeterminationEvent) {
-                       element = new DeterminationEventDetailElement(this, parentElement,
-                                       (DeterminationEvent) entity, removeListener, style);                    
+            element = new DeterminationEventDetailElement(this, parentElement, (DeterminationEvent) entity,
+                    removeListener, style);
                } else if (entity instanceof User) {
-                       element = new MemberDetailElement(this, parentElement,
-                                       (User) entity, removeListener, style);
+            element = new MemberDetailElement(this, parentElement, (User) entity, removeListener, style);
                } else if (entity instanceof GrantedAuthority) {
-                       element = new GrantedAuthorityCollectionElement(this, parentElement,
-                                       (GrantedAuthorityImpl) entity, removeListener, style);
+            element = new GrantedAuthorityCollectionElement(this, parentElement, (GrantedAuthorityImpl) entity,
+                    removeListener, style);
                } else if (entity instanceof Group) {
-                       element = new GroupsByUserDetailElement(this, parentElement,
-                                       (Group) entity, removeListener, style);
+            element = new GroupsByUserDetailElement(this, parentElement, (Group) entity, removeListener, style);
                } else if (entity instanceof Taxon) {
-                       element = new TaxonDetailElement(this, parentElement,
-                                       (Taxon) entity, removeListener, style);
+            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())) {
-                               element = new ProtologueElement(this, parentElement,
-                                               descriptionElement, removeListener, style);
+                element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
                        }
                }
 
                if (element == null) {
-                       StoreUtil
-                                       .errorDialog(
-                                                       "No element for entity",
-                                                       this,
-                                                       "Could not generate element for entity. "
-                                                                       + "Looks like the case is not handled already. Check implementation. Entity: "
+            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);
 
                }
 
-               if (backgroundColor != null && !backgroundColor.isDisposed()) {
+        else if (backgroundColor != null && !backgroundColor.isDisposed()) {
                        element.setPersistentBackground(backgroundColor);
                }
 
@@ -2229,16 +2221,20 @@ public class CdmFormFactory extends FormToolkit {
         * <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>
+     * <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
-        *                        a {@link Class} object of the type that you want the selection element to handle
+     *            a {@link Class} object of the type that you want the selection
+     *            element to handle
         * @param parentElement
-        *            a {@link ICdmFormElement}
-        *            object.
+     *            a {@link ICdmFormElement} object.
         * @param labelString
         *            a {@link String} object.
         * @param selectionType
@@ -2248,35 +2244,32 @@ public class CdmFormFactory extends FormToolkit {
         *            a int.
         * @param conversation
         *            a {@link ConversationHolder} object.
-        * @return a
-        *         {@link EntitySelectionElement}
-        *         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);
+    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;
        }
        
-       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);
+    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(
-                       ConversationHolder conversation,
-                       ICdmFormElement parentElement, String labelString,
-                       Team selection, int mode, int style) {
-               NomenclaturalAuthorTeamSelectionElement element = new NomenclaturalAuthorTeamSelectionElement(this, conversation, parentElement, labelString, selection, mode, style);
+            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;
@@ -2321,34 +2314,31 @@ public class CdmFormFactory extends FormToolkit {
         *         object.
         */
        public AbstractDetailedDescriptionDetailElement createDetailedDescriptionDetailElement(
-                       ICdmFormElement parentElement, DescriptionElementBase entity,
-                       int style) {
+            ICdmFormElement parentElement, DescriptionElementBase entity, int style) {
                AbstractDetailedDescriptionDetailElement detailedDescriptionElement = null;
 
                if (entity instanceof CategoricalData) {
-                       detailedDescriptionElement = new CategoricalDataDetailElement(this,
-                                       parentElement, (CategoricalData) entity, style);
+            detailedDescriptionElement = new CategoricalDataDetailElement(this, parentElement,
+                    (CategoricalData) entity, style);
                } else if (entity instanceof CommonTaxonName) {
-                       detailedDescriptionElement = new CommonNameDetailElement(this,
-                                       parentElement, (CommonTaxonName) entity, style);
+            detailedDescriptionElement = new CommonNameDetailElement(this, parentElement, (CommonTaxonName) entity,
+                    style);
                } else if (entity instanceof Distribution) {
-                       detailedDescriptionElement = new DistributionDetailElement(this,
-                                       parentElement, (Distribution) entity, style);
+            detailedDescriptionElement = new DistributionDetailElement(this, parentElement, (Distribution) entity,
+                    style);
                } else if (entity instanceof IndividualsAssociation) {
-                       detailedDescriptionElement = new IndividualsAssociationDetailElement(
-                                       this, parentElement, (IndividualsAssociation) entity, style);
+            detailedDescriptionElement = new IndividualsAssociationDetailElement(this, parentElement,
+                    (IndividualsAssociation) entity, style);
                } else if (entity instanceof QuantitativeData) {
-                       detailedDescriptionElement = new QuantitativeDataDetailElement(
-                                       this, parentElement, (QuantitativeData) entity, style);
+            detailedDescriptionElement = new QuantitativeDataDetailElement(this, parentElement,
+                    (QuantitativeData) entity, style);
                } else if (entity instanceof TaxonInteraction) {
-                       detailedDescriptionElement = new TaxonInteractionDetailElement(
-                                       this, parentElement, (TaxonInteraction) entity, style);
+            detailedDescriptionElement = new TaxonInteractionDetailElement(this, parentElement,
+                    (TaxonInteraction) entity, style);
                } else if (entity instanceof TextData) {
-                       detailedDescriptionElement = new TextDataDetailElement(this,
-                                       parentElement, (TextData) entity, style);
+            detailedDescriptionElement = new TextDataDetailElement(this, parentElement, (TextData) entity, style);
                } else {
-                       throw new IllegalStateException(
-                                       "There is no interface for the given description element");
+            throw new IllegalStateException("There is no interface for the given description element");
                }
                adapt(detailedDescriptionElement);
                parentElement.addElement(detailedDescriptionElement);
@@ -2368,10 +2358,10 @@ public class CdmFormFactory extends FormToolkit {
         * @return the text widget
         */
        public StyledText createStyledText(Composite parent, String value, int style) {
-               StyledText text = new StyledText(parent, getBorderStyle() | style
-                               | getOrientation());
-               if (value != null)
+        StyledText text = new StyledText(parent, getBorderStyle() | style | getOrientation());
+        if (value != null) {
                        text.setText(value);
+        }
                text.setForeground(getColors().getForeground());
                text.setBackground(getColors().getBackground());
                // text.addFocusListener(visibilityHandler);
index 33263074f1bbd20b5b06ab5c2c113dc4c065710a..878788b3150d8c646ecffa2e7c863a67ca8a81c6 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.ui.element;
 
@@ -22,201 +22,200 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * <p>
  * TextWithLabelElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @version $Id: $
  */
-public class TextWithLabelElement extends AbstractCdmFormElement implements
-               ModifyListener, IEnableableFormElement, ISelectable {
-
-       protected Text text;
-       private Label label;
-
-       /** Constant <code>MAX_HEIGHT=0</code> */
-       public static final int MAX_HEIGHT = 0;
-       /** Constant <code>SINGLE=-1</code> */
-       public static final int SINGLE = -1;
-
-       /**
-        * <p>
-        * Constructor for TextWithLabelElement.
-        * </p>
-        * 
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param labelString
-        *            a {@link java.lang.String} object.
-        * @param initialText
-        *            a {@link java.lang.String} object.
-        * @param textHeight
-        *            a {@link java.lang.Integer} object.
-        * @param style
-        *            a int.
-        */
-       protected TextWithLabelElement(CdmFormFactory formFactory,
-                       ICdmFormElement parentElement, String labelString,
-                       String initialText, Integer textHeight, int style) {
-               super(formFactory, parentElement);
-
-               if (labelString != null) {
-                       label = formFactory.createLabel(getLayoutComposite(),
-                                       CdmUtils.Nz(labelString), SWT.NULL);
-                       addControl(label);
-                       label.setLayoutData(LayoutConstants.LEFT());
-               }
-
-               int scrollStyle = textHeight == null ? SWT.NULL
-                               : (SWT.V_SCROLL | SWT.MULTI);
-               
-               int combinedStyle = style | SWT.BORDER | scrollStyle;
-               
-               //SWT.PASSWORD does not work when SWT.WRAP is set. 
-               if(style != SWT.PASSWORD){
-                       combinedStyle = combinedStyle | SWT.WRAP;
-               }               
-               
-               text = formFactory.createText(getLayoutComposite(), "", combinedStyle);
-
-               addControl(text);
-
-               // text.setWO
-
-               if (textHeight == null) {
-                       text.addKeyListener(new KeyAdapter() {
-                               @Override
-                               public void keyPressed(KeyEvent e) {
-                                       if (e.character == SWT.CR) {
-                                               // Don't accept carriage returns as input when in single
-                                               // line mode
-                                               e.doit = false;
-                                       } else if (e.character == SWT.TAB) {
-                                               // traverse is not working for wrapped text widgets so
-                                               // we reintroduce it here
-                                               e.doit = false;
-                                               TextWithLabelElement.this.text
-                                                               .traverse(SWT.TRAVERSE_TAB_NEXT);
-                                       }
-                               }
-                       });
-               }
-
-               TableWrapData layoutData = LayoutConstants.FILL();
-               if (textHeight != null && textHeight > 0) {
-                       (layoutData).heightHint = textHeight;
-               }
-
-               text.setLayoutData(layoutData);
-
-               text.addModifyListener(this);
-
-               setText(initialText);
-       }
-
-       /**
-        * Get the text of this composites text composite
-        * 
-        * @return a {@link java.lang.String} object.
-        */
-       public String getText() {
-               return text.getText();
-       }
-
-       /**
-        * Set the text of this composites text composite
-        * 
-        * @param string
-        *            a {@link java.lang.String} object.
-        */
-       public void setText(String string) {
-               Listener[] listeners = text.getListeners(SWT.Modify);
-
-               for (Listener listener : listeners) {
-                       text.removeListener(SWT.Modify, listener);
-               }
-
-               text.setText(CdmUtils.Nz(string));
-
-               for (Listener listener : listeners) {
-                       text.addListener(SWT.Modify, listener);
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events
-        * .ModifyEvent)
-        */
-       /** {@inheritDoc} */
-       public void modifyText(ModifyEvent e) {
-               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
-       }
-
-       /** {@inheritDoc} */
-       public void setEnabled(boolean enabled) {
-               text.setEnabled(enabled);
-               String symbolicName = enabled ? Resources.COLOR_FONT_DEFAULT
-                               : Resources.COLOR_TEXT_DISABLED;
-               text.setForeground(getColor(symbolicName));
-       }
-
-       /** {@inheritDoc} */
-       public void setIrrelevant(boolean irrelevant) {
-               String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
-                               : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-               Color color = getColor(colorId);
-               text.setBackground(color);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void setBackground(Color color) {
-               if (label != null)
-                       label.setBackground(color);
-       }
-
-       @Override
-       public void setSelected(boolean selected) {
-               setBackground(selected ? SELECTED : getPersistentBackground());
-       }
-       
-       /*
-        * (non-Javadoc)
-        * 
-        * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#setFocus()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void setFocus() {
-               text.setFocus();
-       }
-
-       /**
-        * <p>
-        * getMainControl
-        * </p>
-        * 
-        * @return a {@link org.eclipse.swt.widgets.Control} object.
-        */
-       public Control getMainControl() {
-               return text;
-       }
-
-       /**
-        * <p>
-        * setTextLimit
-        * </p>
-        * 
-        * @param limit
-        *            a int.
-        */
-       public void setTextLimit(int limit) {
-               text.setTextLimit(limit);
-       }
+public class TextWithLabelElement extends AbstractCdmFormElement implements ModifyListener, IEnableableFormElement,
+        ISelectable {
+
+    protected Text text;
+    private Label label;
+
+    /** Constant <code>MAX_HEIGHT=0</code> */
+    public static final int MAX_HEIGHT = 0;
+    /** Constant <code>SINGLE=-1</code> */
+    public static final int SINGLE = -1;
+
+    /**
+     * <p>
+     * Constructor for TextWithLabelElement.
+     * </p>
+     *
+     * @param formFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     * @param labelString
+     *            a {@link java.lang.String} object.
+     * @param initialText
+     *            a {@link java.lang.String} object.
+     * @param textHeight
+     *            a {@link java.lang.Integer} object.
+     * @param style
+     *            a int.
+     * @wbp.parser.entryPoint
+     */
+    protected TextWithLabelElement(CdmFormFactory formFactory, ICdmFormElement parentElement, String labelString,
+            String initialText, Integer textHeight, int style) {
+        super(formFactory, parentElement);
+
+        if (labelString != null) {
+            label = formFactory.createLabel(getLayoutComposite(), CdmUtils.Nz(labelString), SWT.NULL);
+            addControl(label);
+            label.setLayoutData(LayoutConstants.LEFT());
+        }
+
+        int scrollStyle = textHeight == null ? SWT.NULL : (SWT.V_SCROLL | SWT.MULTI);
+
+        int combinedStyle = style | SWT.BORDER | scrollStyle;
+
+        // SWT.PASSWORD does not work when SWT.WRAP is set.
+        if (style != SWT.PASSWORD) {
+            combinedStyle = combinedStyle | SWT.WRAP;
+        }
+
+        text = formFactory.createText(getLayoutComposite(), "", combinedStyle);
+
+        addControl(text);
+
+        // text.setWO
+
+        if (textHeight == null) {
+            text.addKeyListener(new KeyAdapter() {
+                @Override
+                public void keyPressed(KeyEvent e) {
+                    if (e.character == SWT.CR) {
+                        // Don't accept carriage returns as input when in single
+                        // line mode
+                        e.doit = false;
+                    } else if (e.character == SWT.TAB) {
+                        // traverse is not working for wrapped text widgets so
+                        // we reintroduce it here
+                        e.doit = false;
+                        TextWithLabelElement.this.text.traverse(SWT.TRAVERSE_TAB_NEXT);
+                    }
+                }
+            });
+        }
+
+        TableWrapData layoutData = LayoutConstants.FILL();
+        if (textHeight != null && textHeight > 0) {
+            (layoutData).heightHint = textHeight;
+        }
+
+        text.setLayoutData(layoutData);
+
+        text.addModifyListener(this);
+
+        setText(initialText);
+    }
+
+    /**
+     * Get the text of this composites text composite
+     *
+     * @return a {@link java.lang.String} object.
+     */
+    public String getText() {
+        return text.getText();
+    }
+
+    /**
+     * Set the text of this composites text composite
+     *
+     * @param string
+     *            a {@link java.lang.String} object.
+     */
+    public void setText(String string) {
+        Listener[] listeners = text.getListeners(SWT.Modify);
+
+        for (Listener listener : listeners) {
+            text.removeListener(SWT.Modify, listener);
+        }
+
+        text.setText(CdmUtils.Nz(string));
+
+        for (Listener listener : listeners) {
+            text.addListener(SWT.Modify, listener);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events
+     * .ModifyEvent)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void modifyText(ModifyEvent e) {
+        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setEnabled(boolean enabled) {
+        text.setEnabled(enabled);
+        String symbolicName = enabled ? Resources.COLOR_FONT_DEFAULT : Resources.COLOR_TEXT_DISABLED;
+        text.setForeground(getColor(symbolicName));
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setIrrelevant(boolean irrelevant) {
+        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND;
+
+        Color color = getColor(colorId);
+        text.setBackground(color);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setBackground(Color color) {
+        if (label != null) {
+            label.setBackground(color);
+        }
+    }
+
+    @Override
+    public void setSelected(boolean selected) {
+        setBackground(selected ? SELECTED : getPersistentBackground());
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#setFocus()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void setFocus() {
+        text.setFocus();
+    }
+
+    /**
+     * <p>
+     * getMainControl
+     * </p>
+     *
+     * @return a {@link org.eclipse.swt.widgets.Control} object.
+     */
+    public Control getMainControl() {
+        return text;
+    }
+
+    /**
+     * <p>
+     * setTextLimit
+     * </p>
+     *
+     * @param limit
+     *            a int.
+     */
+    public void setTextLimit(int limit) {
+        text.setTextLimit(limit);
+    }
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement2.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement2.java
new file mode 100644 (file)
index 0000000..8837628
--- /dev/null
@@ -0,0 +1,35 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author pplitzner
+ * @date 11.06.2013
+ *
+ */
+public class TextWithLabelElement2 extends Composite {
+
+    /**
+     * Create the composite.
+     * @param parent
+     * @param style
+     */
+    public TextWithLabelElement2(Composite parent, int style) {
+        super(parent, style);
+
+    }
+
+    @Override
+    protected void checkSubclass() {
+        // Disable the check that prevents subclassing of SWT components
+    }
+}
index ff6292ab6f0ff8284ddb664a8066527e6b2808a5..4704d2b24f15e6283effeb2466a3e75cee169197 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -21,27 +21,24 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectable;
 
 /**
  * <p>
  * Abstract AbstractCdmDetailElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Feb 26, 2010
  * @version 1.0
  */
-public abstract class AbstractCdmDetailElement<T> extends
-               AbstractCdmFormElement implements IEntityElement<T>,
-               IEnableableFormElement, IConversationEnabled, ISelectable {
+public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement implements IEntityElement<T>, IEnableableFormElement, IConversationEnabled {
 
        private T entity;
 
@@ -51,7 +48,7 @@ public abstract class AbstractCdmDetailElement<T> extends
         * <p>
         * Constructor for AbstractCdmDetailElement.
         * </p>
-        * 
+        *
         * @param formFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -63,14 +60,14 @@ public abstract class AbstractCdmDetailElement<T> extends
         */
        public AbstractCdmDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
-               super(formFactory, (ICdmFormElement) formElement);
+               super(formFactory, formElement);
                // register as property change listener
                formFactory.addPropertyChangeListener(this);
        }
 
        /**
         * Sets the entity and updates controls
-        * 
+        *
         * @param entity
         *            a T object.
         */
@@ -81,17 +78,18 @@ public abstract class AbstractCdmDetailElement<T> extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see eu.etaxonomy.taxeditor.forms.IEntityElement#getEntity()
         */
        /**
         * <p>
         * Getter for the field <code>entity</code>.
         * </p>
-        * 
+        *
         * @return a T object.
         */
-       public T getEntity() {
+       @Override
+    public T getEntity() {
                return entity;
        }
 
@@ -106,12 +104,13 @@ public abstract class AbstractCdmDetailElement<T> extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.ISelectableComposite#setSelected(boolean)
         */
        /** {@inheritDoc} */
-       public void setSelected(boolean selected) {
+       @Override
+    public void setSelected(boolean selected) {
                Composite section = getLayoutComposite().getParent();
                section.setBackground(selected ? SELECTED : getPersistentBackground());
        }
@@ -119,7 +118,7 @@ public abstract class AbstractCdmDetailElement<T> extends
        /**
         * Sets all field to the given enablement state except the objects in
         * collection except
-        * 
+        *
         * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#setEnabled(boolean)
         * @param enabled
         *            a boolean.
@@ -143,7 +142,7 @@ public abstract class AbstractCdmDetailElement<T> extends
         * <p>
         * Setter for the field <code>irrelevant</code>.
         * </p>
-        * 
+        *
         * @param irrelevant
         *            a boolean.
         * @param except
@@ -168,19 +167,21 @@ public abstract class AbstractCdmDetailElement<T> extends
        }
 
        /** {@inheritDoc} */
-       public void setEnabled(boolean enabled) {
+       @Override
+    public void setEnabled(boolean enabled) {
                setEnabled(enabled, null);
        }
 
        /** {@inheritDoc} */
-       public void setIrrelevant(boolean irrelevant) {
+       @Override
+    public void setIrrelevant(boolean irrelevant) {
                this.irrelevant = irrelevant;
                setIrrelevant(irrelevant, null);
        }
 
        /**
         * Create all content elements
-        * 
+        *
         * @param formElement
         *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
         *            object.
@@ -246,7 +247,7 @@ public abstract class AbstractCdmDetailElement<T> extends
        /**
         * Gets called when the source of the event is a child widget of this
         * widget.
-        * 
+        *
         * @param eventSource
         *            a {@link java.lang.Object} object.
         */
@@ -256,7 +257,7 @@ public abstract class AbstractCdmDetailElement<T> extends
         * <p>
         * handleException
         * </p>
-        * 
+        *
         * @param event
         *            a
         *            {@link eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent}
@@ -264,14 +265,14 @@ public abstract class AbstractCdmDetailElement<T> extends
         */
        public void handleException(CdmPropertyChangeEvent event) {
                // override this in subclasses if you want to deal with the error
-               StoreUtil.error(event.getSource().getClass(), event.getException());
+               AbstractUtility.error(event.getSource().getClass(), event.getException());
        }
 
        /**
         * <p>
         * isIrrelevant
         * </p>
-        * 
+        *
         * @return a boolean.
         */
        public boolean isIrrelevant() {
@@ -282,11 +283,12 @@ public abstract class AbstractCdmDetailElement<T> extends
         * <p>
         * getConversationHolder
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *         object.
         */
-       public ConversationHolder getConversationHolder() {
+       @Override
+    public ConversationHolder getConversationHolder() {
                if (getParentElement() instanceof IConversationEnabled) {
                        return ((IConversationEnabled) getParentElement())
                                        .getConversationHolder();
@@ -296,6 +298,7 @@ public abstract class AbstractCdmDetailElement<T> extends
        }
 
        /** {@inheritDoc} */
-       public void update(CdmDataChangeMap changeEvents) {
+       @Override
+    public void update(CdmDataChangeMap changeEvents) {
        }
 }
index 0d013aa17f49c7342744698dee0cb820bb4a4d2a..ee222adad8914b47c7c1daafd4e324e88cfd723b 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -17,7 +17,7 @@ import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.forms.events.ExpansionEvent;
 import org.eclipse.ui.forms.events.IExpansionListener;
-import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
@@ -27,28 +27,25 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.DetailType;
 
 /**
- * <p>
- * Abstract AbstractCdmDetailSection class.
- * </p>
- * 
+ * This class visualizes an CDM entity of type ENTITY.
+ *
+ * @param <ENTITY> A CDM entity which should be visualized by this section.
+ *
  * @author n.hoffmann
  * @created Feb 26, 2010
  * @version 1.0
  */
-public abstract class AbstractCdmDetailSection<ENTITY> extends
-               AbstractFormSection<ENTITY> implements IEnableableFormElement,
-               IExpansionListener {
+public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSection<ENTITY> implements IEnableableFormElement, IExpansionListener {
 
-       protected AbstractCdmDetailElement<ENTITY> detailElement;
+       private AbstractCdmDetailElement<ENTITY> detailElement;
 
        /**
         * <p>
         * Constructor for AbstractCdmDetailSection.
         * </p>
-        * 
+        *
         * @param formFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -68,27 +65,26 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends
        public AbstractCdmDetailSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, parentElement, selectionProvider,
-                               Section.CLIENT_INDENT | style);
-
-               setText(getHeading());
+           this(formFactory, null, conversation, parentElement, selectionProvider, style);
+       }
 
-               addExpansionListener(this);
 
-               createControls(this, SWT.NULL);
-       }
-       
        public AbstractCdmDetailSection(CdmFormFactory formFactory, Class<ENTITY> clazz,
                        ConversationHolder conversation, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
                super(formFactory, parentElement, selectionProvider,
-                               Section.CLIENT_INDENT | style);
-               
-               setText(getHeading());
+                               ExpandableComposite.CLIENT_INDENT | style);
 
-               addExpansionListener(this);
+        setText(getHeading());
 
-               createControlsByType(this, clazz, SWT.NULL);
+        addExpansionListener(this);
+
+        if(clazz==null){
+            createControls(this, style);
+        }
+        else{
+            createControlsByType(this, clazz, SWT.NULL);
+        }
        }
 
        /**
@@ -96,9 +92,18 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends
         * @param definedTermClass
         * @param null1
         */
-       protected void createControlsByType(
-                       AbstractCdmDetailSection<ENTITY> abstractCdmDetailSection,
-                       Class<ENTITY> entityClass, int style) {
+       protected void createControlsByType(AbstractCdmDetailSection<ENTITY> formElement, Class<ENTITY> entityClass, int style) {
+           TableWrapLayout layout = (TableWrapLayout) getLayoutComposite().getLayout();
+           layout.topMargin = 10;
+           layout.numColumns = 2;
+
+           getLayoutComposite().setLayout(layout);
+           if(entityClass==null){
+               detailElement = createCdmDetailElement(formElement, style);
+           }
+           else{
+               detailElement = createCdmDetailElementByType(formElement, entityClass, style);
+           }
        }
 
 
@@ -106,7 +111,7 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends
         * <p>
         * createControls
         * </p>
-        * 
+        *
         * @param formElement
         *            a
         *            {@link eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection}
@@ -114,34 +119,21 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends
         * @param style
         *            a int.
         */
-       protected void createControls(AbstractCdmDetailSection<ENTITY> formElement,
-                       int style) {
-               TableWrapLayout layout = (TableWrapLayout) getLayoutComposite()
-                               .getLayout();
-               layout.topMargin = 10;
-               layout.numColumns = 2;
-
-               getLayoutComposite().setLayout(layout);
-               detailElement = formFactory.createCdmDetailElement(getDetailType(),
-                               formElement, style);
+       protected void createControls(AbstractCdmDetailSection<ENTITY> formElement, int style) {
+           createControlsByType(formElement, null, style);
        }
 
-       /**
-        * <p>
-        * getDetailType
-        * </p>
-        * 
-        * @return a
-        *         {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.DetailType}
-        *         object.
-        */
-       protected abstract DetailType getDetailType();
+       protected abstract AbstractCdmDetailElement<ENTITY> createCdmDetailElement(AbstractCdmDetailSection<ENTITY> parentElement, int style);
+
+       protected AbstractCdmDetailElement<ENTITY> createCdmDetailElementByType(AbstractCdmDetailSection<ENTITY> parentElement, Class<ENTITY> entityClass, int style){
+           return createCdmDetailElement(parentElement, style);
+       }
 
        /**
         * <p>
         * getHeading
         * </p>
-        * 
+        *
         * @return the heading for this section
         */
        public abstract String getHeading();
@@ -161,7 +153,7 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.section.AbstractEditorFormSection#setBackground
         * (org.eclipse.swt.graphics.Color)
@@ -179,7 +171,7 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends
         * <p>
         * setEntity
         * </p>
-        * 
+        *
         * @param entity
         *            a ENTITY object.
         */
@@ -228,19 +220,22 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends
        }
 
        /** {@inheritDoc} */
-       public void setIrrelevant(boolean irrelevant) {
+       @Override
+    public void setIrrelevant(boolean irrelevant) {
                if (detailElement != null) {
                        detailElement.setIrrelevant(irrelevant);
                }
        }
 
        /** {@inheritDoc} */
-       public void expansionStateChanging(ExpansionEvent e) {
+       @Override
+    public void expansionStateChanging(ExpansionEvent e) {
                // logger.warn("Expansion State Changing");
        }
 
        /** {@inheritDoc} */
-       public void expansionStateChanged(ExpansionEvent e) {
+       @Override
+    public void expansionStateChanged(ExpansionEvent e) {
                // logger.warn("Expansion State Changed");
        }
 }
index 1a9f43ee577c869e74cbd59b9fb1deb56d87e0f4..ecc7c9107e8a6ed102df8893b5465e78a04a5525 100644 (file)
@@ -1,11 +1,12 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.ui.section;
 
 import java.util.Collection;
 
 import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
@@ -19,37 +20,42 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.events.ExpansionEvent;
 import org.eclipse.ui.forms.events.IExpansionListener;
-import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
- * <p>Abstract AbstractEntityCollectionSection class.</p>
+ * This class visualizes an CDM entity of type ENTITY and additionally provides the functionality to add
+ * other elements of type ELEMENT to them.
+ *
+ * @param <ENTITY> A CDM entity which should be visualized by this section.
+ * @param <ELEMENT> An element that can be added (multiple times) to this entity.
  *
  * @author n.hoffmann
  * @version $Id: $
  */
+
 public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends AbstractFormSection<ENTITY> implements IExpansionListener{
-               
+
        protected Composite container;
-       
+
        private Label label_empty;
 
        private String title;
-       
+
        /**
         * <p>Constructor for AbstractEntityCollectionSection.</p>
         *
-        * @param conversation 
+        * @param conversation
         * @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.
@@ -58,18 +64,18 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
         * @param <ELEMENT> a ELEMENT object.
         */
        public AbstractEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation, ICdmFormElement parentElement, String title, int style) {
-               super(formFactory, parentElement, Section.CLIENT_INDENT | style);
+               super(formFactory, parentElement, ExpandableComposite.CLIENT_INDENT | style);
                this.title = title;
                this.setText(getTitleString());
                showToolbar();
-               
+
                addExpansionListener(this);
        }
-       
+
        protected Control createToolbar() {
                ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
-               
-               Action addAction = new Action("add", Action.AS_PUSH_BUTTON){
+
+               Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
                        /* (non-Javadoc)
                         * @see org.eclipse.jface.action.Action#run()
                         */
@@ -78,34 +84,35 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
                                ELEMENT element = createNewElement();
                                if(element != null){
                                        addElement(element);
-                                       if(! getSection().isExpanded())
-                                               getSection().setExpanded(true);
+                                       if(! getSection().isExpanded()) {
+                        getSection().setExpanded(true);
+                    }
                                        internalUpdateSection(true);
                                }
                        }
                };
                addAction.setImageDescriptor(new ImageDescriptor() {
-                       
+
                        @Override
                        public ImageData getImageData() {
                                return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
                        }
                });
                addAction.setToolTipText(getTooltipString());
-               
+
                toolBarManager.add(addAction);
-               
+
                return toolBarManager.createControl(this);
        }
-       
+
        public void showToolbar(){
                setTextClient(createToolbar());
        }
-       
+
        public void removeToolbar(){
                setTextClient(null);
        }
-       
+
        /**
         * <p>setEntity</p>
         *
@@ -119,8 +126,8 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
                }
                setSectionTitle();
                layout();
-       };
-               
+       }
+
        /**
         * Sets the title for the section. Adds a "+" sign if the collection is not empty for this section.
         * Override in subclasses if you want to have a different behaviour.
@@ -132,7 +139,7 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
                        this.setText(getTitleString());
                }
        }
-       
+
        /**
         * Removes all content from the container
         */
@@ -143,7 +150,7 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
                }
                removeElements();
        }
-       
+
        /**
         * Call this method after dynamically changing the client area.
         * If the options changed is set to true, will also fire a state changed
@@ -153,57 +160,59 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
         */
        protected void internalUpdateSection(boolean changed){
                destroyDynamicContent();
-               if(isExpanded() || expandSectionWhenContentAvailable())
-                       renderContent(isExpanded());
-               if(changed)
-                       firePropertyChangeEvent(this);
+               if(isExpanded() || expandSectionWhenContentAvailable()) {
+            renderContent(isExpanded());
+        }
+               if(changed) {
+            firePropertyChangeEvent(this);
+        }