reintegrated redlist branch into trunk
authorAlexander Oppermann <a.oppermann@bgbm.org>
Wed, 13 Aug 2014 12:07:41 +0000 (12:07 +0000)
committerAlexander Oppermann <a.oppermann@bgbm.org>
Wed, 13 Aug 2014 12:07:41 +0000 (12:07 +0000)
79 files changed:
.gitattributes
eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_de.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_en.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.application/build.properties
eu.etaxonomy.taxeditor.application/plugin.properties [deleted file]
eu.etaxonomy.taxeditor.application/plugin.xml
eu.etaxonomy.taxeditor.cdmlib/.classpath
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar
eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar
eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_en.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/build.properties
eu.etaxonomy.taxeditor.editor/plugin.properties [deleted file]
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenChecklistEditorHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistContentProvider.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditor.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorComparator.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorInput.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistLabelProvider.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/DistributionEditingSupport.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/RankEditingSupport.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/filter/ChecklistEditorFilter.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionElementHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/OpenDistributionHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistDropdownSelectionListener.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistFocusListener.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistModifyListener.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_de.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_en.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_de.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_en.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/build.properties
eu.etaxonomy.taxeditor.navigation/plugin.xml
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/Messages.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java
eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle_de.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle_en.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.printpublisher/build.properties
eu.etaxonomy.taxeditor.printpublisher/plugin.xml
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_en.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_de.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_en.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/build.properties
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenDistributionEditorWizardHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencePropertyTester.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicEditorGeneralPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TemplatePreferencePage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ToggleableTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.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/taxon/TaxonBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/Messages.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java

index ba2b9885c191e221b6f815bae215f3d5a8c02365..713a46ecc4e11f078b06a88f5cea29567c59803e 100644 (file)
@@ -4,6 +4,9 @@
 eu.etaxonomy.taxeditor.application/.classpath -text
 eu.etaxonomy.taxeditor.application/.project -text
 eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF -text
+eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin.properties -text
+eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_de.properties -text
+eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_en.properties -text
 eu.etaxonomy.taxeditor.application/build.properties -text
 eu.etaxonomy.taxeditor.application/icons/256color_16x16.gif -text
 eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif -text
@@ -12,7 +15,6 @@ eu.etaxonomy.taxeditor.application/icons/256color_48x48.ico -text
 eu.etaxonomy.taxeditor.application/icons/edit_16x16.gif -text
 eu.etaxonomy.taxeditor.application/icons/specimen_derivate-16x16-32.png -text
 eu.etaxonomy.taxeditor.application/p2.inf -text
-eu.etaxonomy.taxeditor.application/plugin.properties -text
 eu.etaxonomy.taxeditor.application/plugin.xml -text
 eu.etaxonomy.taxeditor.application/plugin_customization.ini -text
 eu.etaxonomy.taxeditor.application/pom.xml -text
@@ -349,6 +351,9 @@ eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/cdm.datasource
 eu.etaxonomy.taxeditor.editor/.classpath -text
 eu.etaxonomy.taxeditor.editor/.project -text
 eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF -text
+eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin.properties -text
+eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties -text
+eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_en.properties -text
 eu.etaxonomy.taxeditor.editor/build.properties -text
 eu.etaxonomy.taxeditor.editor/icons/address-book-new.png -text
 eu.etaxonomy.taxeditor.editor/icons/camera-photo.png -text
@@ -358,7 +363,6 @@ eu.etaxonomy.taxeditor.editor/icons/emblem-photos.png -text
 eu.etaxonomy.taxeditor.editor/icons/leaf_detail.png -text
 eu.etaxonomy.taxeditor.editor/icons/xper64.png -text
 eu.etaxonomy.taxeditor.editor/p2.inf -text
-eu.etaxonomy.taxeditor.editor/plugin.properties -text
 eu.etaxonomy.taxeditor.editor/plugin.xml -text
 eu.etaxonomy.taxeditor.editor/pom.xml -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmDataTransfer.java -text
@@ -382,6 +386,7 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/CdmAuthorityEditorInput.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/handler/EditCdmAuthoritiesHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditNewTaxonHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenChecklistEditorHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenDerivateViewHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenParentHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveAllHandler.java -text
@@ -470,6 +475,20 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/o
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/RemoveHomotypicalGroupBasionymOperation.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistContentProvider.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditor.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorComparator.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorInput.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistLabelProvider.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/DistributionEditingSupport.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/RankEditingSupport.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/filter/ChecklistEditorFilter.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionElementHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/OpenDistributionHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistDropdownSelectionListener.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistFocusListener.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistModifyListener.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptContentProvider.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptLabelProvider.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java -text
@@ -874,6 +893,12 @@ eu.etaxonomy.taxeditor.help/tocnameparser.xml -text
 eu.etaxonomy.taxeditor.navigation/.classpath -text
 eu.etaxonomy.taxeditor.navigation/.project -text
 eu.etaxonomy.taxeditor.navigation/META-INF/MANIFEST.MF -text
+eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle.properties -text
+eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_de.properties -text
+eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_en.properties -text
+eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages.properties -text
+eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_de.properties -text
+eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_en.properties -text
 eu.etaxonomy.taxeditor.navigation/build.properties -text
 eu.etaxonomy.taxeditor.navigation/icons/edit_16x16.gif -text
 eu.etaxonomy.taxeditor.navigation/icons/preferences-system-windows.png -text
@@ -930,6 +955,7 @@ eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigatio
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateClassification.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreatePolytomousKey.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/Messages.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultView.java -text
@@ -946,6 +972,9 @@ eu.etaxonomy.taxeditor.navigation/src/test/resources/log4j.properties -text
 eu.etaxonomy.taxeditor.printpublisher/.classpath -text
 eu.etaxonomy.taxeditor.printpublisher/.project -text
 eu.etaxonomy.taxeditor.printpublisher/META-INF/MANIFEST.MF -text
+eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle.properties -text
+eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle_de.properties -text
+eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle_en.properties -text
 eu.etaxonomy.taxeditor.printpublisher/build.properties -text
 eu.etaxonomy.taxeditor.printpublisher/p2.inf -text
 eu.etaxonomy.taxeditor.printpublisher/plugin.xml -text
@@ -970,6 +999,12 @@ eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/print
 eu.etaxonomy.taxeditor.store/.classpath -text
 eu.etaxonomy.taxeditor.store/.project -text
 eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF -text
+eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties -text
+eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties -text
+eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_en.properties -text
+eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages.properties -text
+eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_de.properties -text
+eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_en.properties -text
 eu.etaxonomy.taxeditor.store/build.properties -text
 eu.etaxonomy.taxeditor.store/icons/256color_16x16.bmp -text
 eu.etaxonomy.taxeditor.store/icons/256color_32x32.bmp -text
@@ -1172,6 +1207,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/Fe
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/OpenFeatureTreeEditorWizardHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenDistributionEditorWizardHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenPasswordWizzardHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowLoginWindowHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java -text
@@ -1267,6 +1303,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/IPos
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/MatchStrategyConfigurator.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferences.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/FeatureTreePreferences.java -text
@@ -1282,6 +1319,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/Res
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicEditorGeneralPreferences.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicPreferences.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TemplatePreferencePage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TypeDesignationPreferences.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/AbstractMatchingPreferences.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/NonViralNameMatchingPreference.java -text
@@ -1305,6 +1343,8 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/men
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/SpecimenTypeDesignationStatusMenuPreferences.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/StageMenuPreferences.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/TaxonRelationshipTypeMenuPreferences.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/VocabularyTermWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/VocabularyTermWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/security/AuthenticationSourceProvider.java -text
@@ -1673,6 +1713,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasourc
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewPart.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewerComparator.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmMetaDataAwareDataSourceContainer.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/Messages.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/AbstractDataSourceHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/ChangeConnectionHandler.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/CloneDataSourceHandler.java -text
index 4d75b2ec5fd0c5175038690bcbe135b8c810d95c..9e0c6eb5987f878b879eb6470c4f0ba0647c63fc 100644 (file)
@@ -5,7 +5,7 @@ Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
 Bundle-Version: 3.3.7.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
 Bundle-Vendor: EDIT
-Bundle-Localization: plugin
+Bundle-Localization: OSGI-INF/l10n/plugin
 Export-Package: eu.etaxonomy.taxeditor
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin.properties b/eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin.properties
new file mode 100644 (file)
index 0000000..9e64cfd
--- /dev/null
@@ -0,0 +1,43 @@
+productName=EDIT Taxonomic Editor\r
+productBlurb=EDIT Taxonomic Editor\n\Version: 3.3\n\n\Copyright (C) 2009 EDIT\n\European Distributed Institute of Taxonomy\n\http://www.e-taxonomy.eu\r
+\r
+extension.name = Taxonomic Editor\r
+perspective.name = Taxonomic\r
+perspective.name.0 = Polytomous Key\r
+perspective.name.1 = Uses\r
+perspective.name.2 = Derivates\r
+menu.label = General\r
+menu.label.0 = Edit\r
+menu.label.1 = Window\r
+menu.label.2 = Help\r
+menu.label.3 = New\r
+command.label = Close\r
+command.label.0 = Close All\r
+command.label.1 = Save\r
+command.label.2 = Save All\r
+command.label.3 = Import...\r
+command.label.4 = Export...\r
+command.label.5 = Exit\r
+command.label.6 = Undo\r
+command.label.7 = Redo\r
+command.label.8 = Cut\r
+command.label.9 = Copy\r
+command.label.10 = Paste\r
+command.label.11 = Delete\r
+command.label.12 = Preferences\r
+command.label.13 = Help Contents\r
+command.label.14 = Search\r
+command.label.15 = Dynamic Help\r
+command.label.16 = Parser Help Website\r
+command.label.17 = Check for Updates\r
+command.label.18 = Install New Software...\r
+command.label.19 = About Taxonomic Editor\r
+command.label.20 = About the EDIT Platform\r
+command.label.21 = New\r
+command.label.22 = Save\r
+product.name = EDIT Taxonomic Editor\r
+command.name = Parser Help\r
+command.name.0 = About the EDIT Platform\r
+activity.description = Disable unwanted eclipse UI\r
+activity.name = Disable\r
+product.name.0 = EDIT Taxonomic Editor
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_de.properties b/eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_de.properties
new file mode 100644 (file)
index 0000000..2283ab3
--- /dev/null
@@ -0,0 +1,43 @@
+productName=EDIT Taxonomischer Editor
+productBlurb=EDIT Taxonomischer Editor\n\Version: 3.3\n\n\Copyright (C) 2009 EDIT\n\European Distributed Institute of Taxonomy\n\http://www.e-taxonomy.eu
+
+extension.name = Taxonomischer Editor
+perspective.name = Taxonomisch
+perspective.name.0 = Polytomer Key
+perspective.name.1 = Anwendungen
+perspective.name.2 = Derivate
+menu.label = Datei
+menu.label.0 = Bearbeiten
+menu.label.1 = Extras
+menu.label.2 = Hilfe
+menu.label.3 = Neu
+command.label = Schlie\u00dfen
+command.label.0 = Schlie\u00dfe alle
+command.label.1 = Speichern
+command.label.2 = Speichere alle
+command.label.3 = Import...
+command.label.4 = Export...
+command.label.5 = Beenden
+command.label.6 = R\u00fcckg\u00e4ngig
+command.label.7 = Letzen Befehl wiederholen
+command.label.8 = Ausschneiden
+command.label.9 = Kopieren
+command.label.10 = Einf\u00fcgen
+command.label.11 = L\u00f6schen
+command.label.12 = Einstellungen
+command.label.13 = Hilfeinhalt
+command.label.14 = Suchen
+command.label.15 = Dynamische Hilfe
+command.label.16 = Parser Hilfe Webseite (in Englisch)
+command.label.17 = Suche nach Updates
+command.label.18 = Installiere Neue Software...
+command.label.19 = \u00dcber den Taxonomischen Editor
+command.label.20 = \u00dcber die EDIT Platform
+command.label.21 = Neu
+command.label.22 = Speichern
+product.name = EDIT Taxonomischer Editor
+command.name = Parser Hilfe
+command.name.0 = \u00dcber die EDIT Platform
+activity.description = Schalte unerw\u00fcnschte eclipse UI aus
+activity.name = Ausschalten
+product.name.0 = EDIT Taxonomischer Editor
diff --git a/eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_en.properties b/eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_en.properties
new file mode 100644 (file)
index 0000000..9e64cfd
--- /dev/null
@@ -0,0 +1,43 @@
+productName=EDIT Taxonomic Editor\r
+productBlurb=EDIT Taxonomic Editor\n\Version: 3.3\n\n\Copyright (C) 2009 EDIT\n\European Distributed Institute of Taxonomy\n\http://www.e-taxonomy.eu\r
+\r
+extension.name = Taxonomic Editor\r
+perspective.name = Taxonomic\r
+perspective.name.0 = Polytomous Key\r
+perspective.name.1 = Uses\r
+perspective.name.2 = Derivates\r
+menu.label = General\r
+menu.label.0 = Edit\r
+menu.label.1 = Window\r
+menu.label.2 = Help\r
+menu.label.3 = New\r
+command.label = Close\r
+command.label.0 = Close All\r
+command.label.1 = Save\r
+command.label.2 = Save All\r
+command.label.3 = Import...\r
+command.label.4 = Export...\r
+command.label.5 = Exit\r
+command.label.6 = Undo\r
+command.label.7 = Redo\r
+command.label.8 = Cut\r
+command.label.9 = Copy\r
+command.label.10 = Paste\r
+command.label.11 = Delete\r
+command.label.12 = Preferences\r
+command.label.13 = Help Contents\r
+command.label.14 = Search\r
+command.label.15 = Dynamic Help\r
+command.label.16 = Parser Help Website\r
+command.label.17 = Check for Updates\r
+command.label.18 = Install New Software...\r
+command.label.19 = About Taxonomic Editor\r
+command.label.20 = About the EDIT Platform\r
+command.label.21 = New\r
+command.label.22 = Save\r
+product.name = EDIT Taxonomic Editor\r
+command.name = Parser Help\r
+command.name.0 = About the EDIT Platform\r
+activity.description = Disable unwanted eclipse UI\r
+activity.name = Disable\r
+product.name.0 = EDIT Taxonomic Editor
\ No newline at end of file
index 7280c0755469c1a996c677c30196c3b4aa970eb6..af4a4e99ecc9ad8a94528b68e253041a4df3e18f 100644 (file)
@@ -6,6 +6,8 @@ bin.includes = META-INF/,\
                plugin.xml,\
                plugin_customization.ini,\
                icons/,\
-               plugin.properties,\
+               OSGI-INF/l10n/plugin.properties,\
                splash.bmp,\
-               p2.inf
+               p2.inf,\
+               OSGI-INF/l10n/plugin_de.properties,\
+               OSGI-INF/l10n/plugin_en.properties
diff --git a/eu.etaxonomy.taxeditor.application/plugin.properties b/eu.etaxonomy.taxeditor.application/plugin.properties
deleted file mode 100644 (file)
index ee8803d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-productName=EDIT Taxonomic Editor\r
-productBlurb=EDIT Taxonomic Editor\n\Version: 3.3\n\n\Copyright (C) 2009 EDIT\n\European Distributed Institute of Taxonomy\n\http://www.e-taxonomy.eu\r
index ff3de6627b6965c9472a256f2b5cdfd8b6a02f32..4921f4a52f82295fa979d04fea4ff0ac6e47f23a 100644 (file)
@@ -3,7 +3,7 @@
 <plugin>\r
    <extension\r
          id="application"\r
-         name="Taxonomic Editor"\r
+         name="%extension.name"\r
          point="org.eclipse.core.runtime.applications">\r
       <application\r
             cardinality="singleton-global"\r
@@ -19,7 +19,7 @@
       <perspective\r
             class="eu.etaxonomy.taxeditor.perspective.Taxonomic"\r
             id="eu.etaxonomy.taxeditor.application.perspective.taxonomic"\r
-            name="Taxonomic">\r
+            name="%perspective.name">\r
       </perspective>\r
       <!--perspective\r
             class="eu.etaxonomy.taxeditor.perspective.BulkEditing"\r
       <perspective\r
             class="eu.etaxonomy.taxeditor.perspective.PolytomousKey"\r
             id="eu.etaxonomy.taxeditor.application.perspective.polytomous"\r
-            name="Polytomous Key">\r
+            name="%perspective.name.0">\r
       </perspective>\r
       <perspective\r
             class="eu.etaxonomy.taxeditor.perspective.Uses"\r
             id="eu.etaxonomy.taxeditor.application.perspective.uses"\r
-            name="Uses">\r
+            name="%perspective.name.1">\r
       </perspective>\r
       <perspective\r
             class="eu.etaxonomy.taxeditor.perspective.DerivatePerspective"\r
             icon="icons/specimen_derivate-16x16-32.png"\r
             id="eu.etaxonomy.taxeditor.application.perspective.derivates"\r
-            name="Derivates">\r
+            name="%perspective.name.2">\r
       </perspective>\r
      \r
    </extension>\r
             locationURI="menu:org.eclipse.ui.main.menu">\r
          <menu\r
                id="org.eclipse.ui.main.menu.file"\r
-               label="General">\r
+               label="%menu.label">\r
          </menu>\r
          <menu\r
                id="org.eclipse.ui.main.menu.edit"\r
-               label="Edit">\r
+               label="%menu.label.0">\r
          </menu>\r
          <menu\r
                id="org.eclipse.ui.main.menu.window"\r
-               label="Window">\r
+               label="%menu.label.1">\r
          </menu>\r
          <menu\r
                id="org.eclipse.ui.main.menu.help"\r
-               label="Help">\r
+               label="%menu.label.2">\r
          </menu>\r
       </menuContribution>\r
       <menuContribution\r
             locationURI="menu:org.eclipse.ui.main.menu.file">\r
          <menu\r
                id="eu.etaxonomy.navigation.menu.new"\r
-               label="New">\r
+               label="%menu.label.3">\r
          </menu>\r
          <separator\r
                name="eu.etaxonomy.taxeditor.application.filemenu.new"\r
          </separator>\r
          <command\r
                commandId="org.eclipse.ui.file.close"\r
-               label="Close"\r
+               label="%command.label"\r
                style="push">\r
          </command>\r
          <command\r
                commandId="org.eclipse.ui.file.closeAll"\r
-               label="Close All"\r
+               label="%command.label.0"\r
                style="push">\r
          </command>\r
          <separator\r
          </separator>\r
          <command\r
                commandId="org.eclipse.ui.file.save"\r
-               label="Save"\r
+               label="%command.label.1"\r
                style="push">\r
          </command>\r
          <command\r
                commandId="org.eclipse.ui.file.saveAll"\r
-               label="Save All"\r
+               label="%command.label.2"\r
                style="push">\r
          </command>\r
          <separator\r
          </separator>\r
          <command\r
                commandId="org.eclipse.ui.file.import"\r
-               label="Import..."\r
+               label="%command.label.3"\r
                style="push">\r
          </command>\r
          <command\r
                commandId="org.eclipse.ui.file.export"\r
-               label="Export..."\r
+               label="%command.label.4"\r
                style="push">\r
          </command>\r
          <separator\r
          <command\r
                commandId="org.eclipse.ui.file.exit"\r
                id="eu.etaxonomy.taxeditor.application.menu.exit"\r
-               label="Exit"\r
+               label="%command.label.5"\r
                style="push">\r
          </command>\r
       </menuContribution>\r
             locationURI="menu:org.eclipse.ui.main.menu.edit">\r
          <command\r
                commandId="org.eclipse.ui.edit.undo"\r
-               label="Undo">\r
+               label="%command.label.6">\r
          </command>\r
          <command\r
                commandId="org.eclipse.ui.edit.redo"\r
-               label="Redo"\r
+               label="%command.label.7"\r
                style="push">\r
          </command>\r
          <separator\r
          </separator>\r
          <command\r
                commandId="org.eclipse.ui.edit.cut"\r
-               label="Cut"\r
+               label="%command.label.8"\r
                style="push">\r
          </command>\r
          <command\r
                commandId="org.eclipse.ui.edit.copy"\r
-               label="Copy"\r
+               label="%command.label.9"\r
                style="push">\r
          </command>\r
          <command\r
                commandId="org.eclipse.ui.edit.paste"\r
-               label="Paste"\r
+               label="%command.label.10"\r
                style="push">\r
          </command>\r
          <separator\r
          </separator>\r
          <command\r
                commandId="org.eclipse.ui.edit.delete"\r
-               label="Delete"\r
+               label="%command.label.11"\r
                style="push">\r
          </command>\r
       </menuContribution>\r
          </separator>\r
          <command\r
                commandId="org.eclipse.ui.window.preferences"\r
-               label="Preferences"\r
+               label="%command.label.12"\r
                style="push">\r
          </command>\r
       </menuContribution>\r
             locationURI="menu:org.eclipse.ui.main.menu.help">\r
          <command\r
                commandId="org.eclipse.ui.help.helpContents"\r
-               label="Help Contents"\r
+               label="%command.label.13"\r
                style="push">\r
          </command>\r
          <command\r
                commandId="org.eclipse.ui.help.helpSearch"\r
-               label="Search"\r
+               label="%command.label.14"\r
                style="push">\r
          </command>\r
          <separator\r
          </separator>\r
          <command\r
                commandId="org.eclipse.ui.help.dynamicHelp"\r
-               label="Dynamic Help"\r
+               label="%command.label.15"\r
                style="push">\r
          </command>\r
          <command\r
                commandId="eu.etaxonomy.taxeditor.application.help.parser"\r
-               label="Parser Help Website"\r
+               label="%command.label.16"\r
                style="push">\r
          </command>\r
          <separator\r
          </separator>\r
          <command\r
                commandId="org.eclipse.equinox.p2.ui.sdk.update"\r
-               label="Check for Updates"\r
+               label="%command.label.17"\r
                style="push">\r
          </command>\r
          <command\r
                commandId="org.eclipse.equinox.p2.ui.sdk.install"\r
-               label="Install New Software..."\r
+               label="%command.label.18"\r
                style="push">\r
          </command>\r
          <separator\r
          </separator>\r
          <command\r
                commandId="org.eclipse.ui.help.aboutAction"\r
-               label="About Taxonomic Editor">\r
+               label="%command.label.19">\r
          </command>\r
          <command\r
                commandId="eu.etaxonomy.taxeditor.application.help.aboutPlatform"\r
-               label="About the EDIT Platform"\r
+               label="%command.label.20"\r
                style="push">\r
          </command>\r
       </menuContribution>\r
                id="eu.etaxonomy.taxeditor.editor.main">\r
             <command\r
                   commandId="org.eclipse.ui.newWizard"\r
-                  label="New"\r
+                  label="%command.label.21"\r
                   style="push">\r
             </command>\r
             <command\r
                   commandId="org.eclipse.ui.file.save"\r
-                  label="Save"\r
+                  label="%command.label.22"\r
                   style="push">\r
             </command>\r
          </toolbar>\r
          point="org.eclipse.core.runtime.products">\r
       <product\r
             application="eu.etaxonomy.taxeditor.application.application"\r
-            name="EDIT Taxonomic Editor">\r
+            name="%product.name">\r
          <property\r
                name="windowImages"\r
                value="icons/256color_16x16.gif,icons/256color_32x32.gif,icons/256color_48x48.gif">\r
       <command\r
             defaultHandler="eu.etaxonomy.taxeditor.OpenExternalParserHelpHandler"\r
             id="eu.etaxonomy.taxeditor.application.help.parser"\r
-            name="Parser Help">\r
+            name="%command.name">\r
       </command>\r
       <command\r
             defaultHandler="eu.etaxonomy.taxeditor.OpenExternalAboutPlatformHandler"\r
             id="eu.etaxonomy.taxeditor.application.help.aboutPlatform"\r
-            name="About the EDIT Platform">\r
+            name="%command.name.0">\r
       </command>\r
    </extension>\r
 \r
        <extension\r
                point="org.eclipse.ui.activities">\r
                <activity\r
-                       description="Disable unwanted eclipse UI"\r
+                       description="%activity.description"\r
                        id="eu.etaxonomy.taxeditor.disable"\r
-                       name="Disable">\r
+                       name="%activity.name">\r
                </activity>\r
                <activityPatternBinding\r
                        activityId="eu.etaxonomy.taxeditor.disable"\r
        point="org.eclipse.core.runtime.products">\r
     <product\r
           application="eu.etaxonomy.taxeditor.application.application"\r
-          name="EDIT Taxonomic Editor">\r
+          name="%product.name.0">\r
        <property\r
              name="appName"\r
              value="EDIT Taxonomic Editor">\r
index 2ec26937c916b9a915e70b94089df5724ab7788a..aa65cdca82536139c78aaec3dc25ca665a37febd 100644 (file)
@@ -2,9 +2,10 @@
 <classpath>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry kind="src" path="src/main/java/"/>
-       <classpathentry kind="src" path="src/main/resources/"/>
-       <classpathentry kind="src" path="src/test/java/"/>
+       <classpathentry kind="src" path="src/main/java"/>
+       <classpathentry kind="src" path="src/test/java"/>
+       <classpathentry kind="src" path="src/main/resources"/>
+       <classpathentry kind="src" path="src/test/resources"/>
        <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>
@@ -50,7 +51,7 @@
        <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.8.3.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/commons-codec-20041127.091804.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.1.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar" sourcepath="lib/commons-dbcp-1.4-sources.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.1.2.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/org.springframework.context-3.2.2.RELEASE.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/org.springframework.core-3.2.2.RELEASE.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/org.springframework.expression-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.jdbc-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.orm-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.jdbc-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.jdbc-3.2.2.RELEASE-sources.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.orm-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.orm-3.2.2.RELEASE-sources.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/org.springframework.oxm-3.2.2.RELEASE.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/org.springframework.test-3.2.2.RELEASE.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/org.springframework.transaction-3.2.2.RELEASE.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/org.springframework.transaction-3.2.2.RELEASE.jar" sourcepath="lib/org.springframework.transaction-3.2.2.RELEASE-sources.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/org.springframework.web-3.2.2.RELEASE.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/org.springframework.web.servlet-3.2.2.RELEASE.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/spring-security-remoting-3.1.3.RELEASE.jar"/>
-       <classpathentry kind="output" path="bin"/>
+       <classpathentry kind="output" path="target/classes"/>
 </classpath>
index 5a7ae1ba65d0b4a22526703c7b339e179a274222..bd8e72267e0acf841e47c62a7ee2a28790d89596 100644 (file)
@@ -249,6 +249,7 @@ Export-Package: com.google.api,
  org.apache.lucene.util,
  org.apache.sanselan;uses:="org.apache.sanselan.common,org.apache.sanselan.common.byteSources",
  org.apache.xerces.dom,
+ org.eclipse.osgi.util,
  org.h2.jdbc,
  org.hamcrest,
  org.hibernate,
index 9fb167cc8644ced846238dee40784f7341832719..4cf488ee33f1a17bac6e7badc2adfac6cf54f75d 100644 (file)
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar and b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar differ
index 25f118068392d39fda76feea6c855dfb3633db17..f131a431cbf20a8f2194c84912950bd3e0a6485b 100644 (file)
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar and b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar differ
index 0c7bd01605402d4bb9cf9ac359d02ed48ca9ff1b..2b55e9dce7725fa53829c0ec56a4acc1cd9dfb83 100644 (file)
@@ -5,7 +5,7 @@ Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
 Bundle-Version: 3.3.7.qualifier
 Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
 Bundle-Vendor: %Bundle-Vendor.0
-Bundle-Localization: plugin
+Bundle-Localization: OSGI-INF/l10n/plugin
 Export-Package: eu.etaxonomy.taxeditor.editor,
  eu.etaxonomy.taxeditor.editor.handler,
  eu.etaxonomy.taxeditor.editor.internal,
diff --git a/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin.properties b/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin.properties
new file mode 100644 (file)
index 0000000..3f16773
--- /dev/null
@@ -0,0 +1,116 @@
+#Properties file for taxeditor-editor\r
+Bundle-Vendor.0 = EDIT\r
+Bundle-Name.0 = EDIT Taxonomic Editor - Editor Bundle\r
+command.name.17 = Set Basionym\r
+command.name.18 = Remove Basionym\r
+editor.name = Multipage Taxon Editor\r
+editor.name.0 = Taxon Name Editor\r
+editor.name.1 = Key\r
+editor.name.2 = Polytomous Key Graph Editor\r
+editor.name.3 = Polytomous Key List Editor\r
+editor.name.4 = Cdm Authority Editor\r
+editor.name.5 = Derivate View\r
+view.name = Factual Data\r
+view.name.0 = Uses\r
+view.name.1 = Media\r
+view.name.2 = Concept Relations\r
+view.name.3 = Concept Graph\r
+category.name = Taxonomic Editor\r
+command.label = Reference\r
+command.label.0 = Name\r
+command.label.1 = Team\r
+command.label.2 = Person\r
+command.label.3 = Specimen\r
+command.label.4 = Factual Data\r
+command.label.5 = Media\r
+command.label.6 = Concept\r
+command.label.7 = Concept Graph\r
+command.label.8 = Open Parent\r
+menu.label = New\r
+command.label.9 = Heterotypic Synonym\r
+command.label.10 = Homotypic Synonym\r
+command.label.11 = Synonym In Homotypical Group\r
+menu.label.0 = Change To\r
+command.label.12 = Accepted Taxon\r
+command.label.13 = Synonym\r
+command.label.14 = Misapplication\r
+command.label.15 = Delete\r
+command.label.16 = Delete All Empty Names\r
+command.label.17 = Swap Synonym With Accepted\r
+command.label.18 = Show Details\r
+command.label.19 = Save\r
+command.label.20 = New Node\r
+command.label.21 = Delete\r
+command.label.22 = Apply Layout\r
+command.label.23 = New Key Number\r
+command.label.24 = New Alternative\r
+command.label.25 = Refresh Nodes\r
+command.label.26 = Delete\r
+command.label.27 = New Factual Data\r
+menu.label.1 = New\r
+command.label.28 = Move Description to Taxon\r
+command.label.29 = Move Elements to Taxon\r
+command.label.30 = Delete\r
+command.label.31 = Save\r
+menu.label.2 = New Derivate\r
+command.label.32 = New Use\r
+command.label.33 = New Use Summary\r
+command.label.34 = New Use Record\r
+command.label.35 = Delete\r
+command.label.36 = Save\r
+command.label.37 = New Image Gallery\r
+command.label.38 = New Image\r
+command.label.39 = Move Image Up In List\r
+command.label.40 = Move Image Down In List\r
+command.label.41 = Delete\r
+command.label.42 = Save\r
+menu.label.3 = New\r
+command.label.43 = Open Related Concept\r
+command.label.44 = Delete\r
+command.label.45 = Edit Authorities\r
+extension.name = Name Commands\r
+category.name.0 = -- Name Editor\r
+command.name = Open Parent\r
+command.name.0 = Create Homotypic Synonym\r
+command.name.1 = Create Heterotypic Synonym\r
+command.name.2 = Create Synonym In Homotypical Group\r
+command.name.3 = Change To Synonym\r
+command.name.4 = Change To Accepted Taxon\r
+command.name.5 = Change To Misapplication\r
+command.name.6 = Swap Synonym With Accepted\r
+command.name.7 = Set Basionym / Original Combination\r
+command.name.8 = Remove Basionym / Original Combination\r
+command.name.9 = Delete All Empty Names\r
+category.name.1 = -- Factual\r
+command.name.10 = Create Description Element\r
+command.name.11 = New Description\r
+command.name.12 = Move Description Elements to Taxon\r
+command.name.13 = Move Description to Taxon\r
+category.name.2 = -- New Uses\r
+command.name.14 = New Use\r
+command.name.15 = New Use Summary\r
+command.name.16 = New Use Record\r
+category.name.3 = -- Media\r
+command.name.19 = Move Image Down In List\r
+command.name.20 = New Image Gallery\r
+command.name.21 = New Image\r
+command.name.22 = Move Image Up In List\r
+category.name.4 = -- New Entity\r
+command.name.23 = New Reference\r
+command.name.24 = New Name\r
+command.name.25 = New Team\r
+command.name.26 = New Person\r
+command.name.27 = New Specimen\r
+category.name.5 = -- Polytomous Keys\r
+command.name.28 = New Child Node\r
+command.name.29 = New Sibling Node\r
+command.name.30 = Refresh Node Numbering\r
+command.name.31 = Apply Layout\r
+category.name.6 = -- Concept Relations\r
+command.name.32 = Create Concept Relation\r
+command.name.33 = Open Related Concept\r
+category.name.7 = -- Group\r
+command.name.34 = Edit CDM Authorities\r
+command.name.35 = Open Derivate View\r
+scheme.description = The default key binding scheme for the Taxonomic Editor\r
+scheme.name = Taxonomic Editor Default Key Bindings
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties b/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties
new file mode 100644 (file)
index 0000000..09784a8
--- /dev/null
@@ -0,0 +1,116 @@
+# Properties file for taxeditor-editor
+Bundle-Vendor.0 = EDIT
+Bundle-Name.0 = EDIT Taxonomischer Editor - Editor Bundle
+command.name.17 = Setze Basionym
+command.name.18 = Entferne Basionym
+editor.name = Multipage Taxon Editor
+editor.name.0 = Editor Taxonname
+editor.name.1 = Bestimmungsschl\u00fcssel
+editor.name.2 = Polytomer Bestimmungsschl\u00fcssel Graph Editor
+editor.name.3 = Polytomer Bestimmungsschl\u00fcssel List Editor
+editor.name.4 = CDM Rechtemanagement
+editor.name.5 = Ansicht Derivate
+view.name = Faktendaten
+view.name.0 = Nutzung
+view.name.1 = Medien
+view.name.2 = Konzeptrelationen
+view.name.3 = Konzeptgraph
+category.name = Taxonomischer Editor
+command.label = Referenz
+command.label.0 = Name
+command.label.1 = Team
+command.label.2 = Person
+command.label.3 = Beleg
+command.label.4 = Faktendaten
+command.label.5 = Medien
+command.label.6 = Konzept
+command.label.7 = Konzeptgraph
+command.label.8 = \u00d6ffne Parent
+menu.label = Neue
+command.label.9 = Heterotypisches Synonym
+command.label.10 = Homotypisches Synonym
+command.label.11 = Synonym in Homotypischer Gruppe
+menu.label.0 = \u00c4ndere zu
+command.label.12 = Akzeptiertes Taxon
+command.label.13 = Synonym
+command.label.14 = Misapplication
+command.label.15 = L\u00f6schen
+command.label.16 = L\u00f6sche alle leeren Namen
+command.label.17 = Tausche Synonym mit akzeptiertem Namen
+command.label.18 = Zeige Details
+command.label.19 = Speichern
+command.label.20 = Neue Knoten
+command.label.21 = L\u00f6schen
+command.label.22 = Wende Layout an
+command.label.23 = Neue Bestimmungsschl\u00fcsselnummer
+command.label.24 = Neue Alternative
+command.label.25 = Erneuere Knoten
+command.label.26 = L\u00f6schen
+command.label.27 = Neue Faktendaten
+menu.label.1 = Neue
+command.label.28 = Bewege Eigenschaften zu Taxon
+command.label.29 = Bewege Elemente zu Taxon
+command.label.30 = L\u00f6schen
+command.label.31 = Speichern
+menu.label.2 = Neue Derivate
+command.label.32 = Neue Nutzung
+command.label.33 = Neue Zusammenfassung
+command.label.34 = Neuer Nutzungsdatensatz
+command.label.35 = L\u00f6schen
+command.label.36 = Speichern
+command.label.37 = Neue Bildergalerie
+command.label.38 = Neues Bild
+command.label.39 = Bewege Bild nach oben
+command.label.40 = Bewege Bild nach unten
+command.label.41 = L\u00f6schen
+command.label.42 = Speichern
+menu.label.3 = Neue
+command.label.43 = \u00d6ffne verbundenes Konzept
+command.label.44 = L\u00f6schen
+command.label.45 = Bearbeite Rechte
+extension.name = Namensbefehle
+category.name.0 = -- Namenseditor
+command.name = \u00d6ffne Elter
+command.name.0 = Erstelle Homotypisches Synonym
+command.name.1 = Erstelle Heterotypisches Synonym
+command.name.2 = Erstelle Synonym in Homotypischer Gruppe
+command.name.3 = \u00c4ndere zu Synonym
+command.name.4 = \u00c4ndere zu akzeptiertem Taxon
+command.name.5 = \u00c4ndere zu Misapplication
+command.name.6 = Tausche Synonym mit Akzeptiertem Namen
+command.name.7 = Setze Basionym / Originalkombination
+command.name.8 = Entferne Basionym / Originalkombination
+command.name.9 = L\u00f6sche alle leeren Namen
+category.name.1 = -- Fakten
+command.name.10 = erstelle Beschreibungselement
+command.name.11 = Neue Beschreibung
+command.name.12 = Bewege Beschreibungselement zu Taxon
+command.name.13 = Bewege Beschreibung zu Taxon
+category.name.2 = -- Neue Nutzung
+command.name.14 = Neue Nutzung
+command.name.15 = Neue Zusammenfassung
+command.name.16 = Neuer Nutzungsdatensatz
+category.name.3 = -- Media
+command.name.19 = Bewege Bild nach unten
+command.name.20 = Neue Bildergalerie
+command.name.21 = Neues Bild
+command.name.22 = Bewege Bild nach oben
+category.name.4 = -- Neue Entit\u00e4t
+command.name.23 = Neue Referenz
+command.name.24 = Neuer Name
+command.name.25 = Neues Team
+command.name.26 = Neue Person
+command.name.27 = Neuer Beleg
+category.name.5 = -- Polytomer Bestimmungsschl\u00fcssel
+command.name.28 = Neue Kinderknoten
+command.name.29 = Neuer Geschwisterknoten
+command.name.30 = Refreshknoten Numbering
+command.name.31 = Wende Layout an
+category.name.6 = -- Konzeptbeziehungen
+command.name.32 = Erstelle Konzeptrelationen
+command.name.33 = \u00d6ffne verbundenes Konzept
+category.name.7 = -- Gruppe
+command.name.34 = Bearbeite CDM Rechte
+command.name.35 = \u00d6ffne Derivate Ansicht
+scheme.description = Die Standard Tastenbindungsschema f\u00fcr den Taxonomischen Editor
+scheme.name = Taxonomic Editor Standard Tastenbindung
diff --git a/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_en.properties b/eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_en.properties
new file mode 100644 (file)
index 0000000..3f16773
--- /dev/null
@@ -0,0 +1,116 @@
+#Properties file for taxeditor-editor\r
+Bundle-Vendor.0 = EDIT\r
+Bundle-Name.0 = EDIT Taxonomic Editor - Editor Bundle\r
+command.name.17 = Set Basionym\r
+command.name.18 = Remove Basionym\r
+editor.name = Multipage Taxon Editor\r
+editor.name.0 = Taxon Name Editor\r
+editor.name.1 = Key\r
+editor.name.2 = Polytomous Key Graph Editor\r
+editor.name.3 = Polytomous Key List Editor\r
+editor.name.4 = Cdm Authority Editor\r
+editor.name.5 = Derivate View\r
+view.name = Factual Data\r
+view.name.0 = Uses\r
+view.name.1 = Media\r
+view.name.2 = Concept Relations\r
+view.name.3 = Concept Graph\r
+category.name = Taxonomic Editor\r
+command.label = Reference\r
+command.label.0 = Name\r
+command.label.1 = Team\r
+command.label.2 = Person\r
+command.label.3 = Specimen\r
+command.label.4 = Factual Data\r
+command.label.5 = Media\r
+command.label.6 = Concept\r
+command.label.7 = Concept Graph\r
+command.label.8 = Open Parent\r
+menu.label = New\r
+command.label.9 = Heterotypic Synonym\r
+command.label.10 = Homotypic Synonym\r
+command.label.11 = Synonym In Homotypical Group\r
+menu.label.0 = Change To\r
+command.label.12 = Accepted Taxon\r
+command.label.13 = Synonym\r
+command.label.14 = Misapplication\r
+command.label.15 = Delete\r
+command.label.16 = Delete All Empty Names\r
+command.label.17 = Swap Synonym With Accepted\r
+command.label.18 = Show Details\r
+command.label.19 = Save\r
+command.label.20 = New Node\r
+command.label.21 = Delete\r
+command.label.22 = Apply Layout\r
+command.label.23 = New Key Number\r
+command.label.24 = New Alternative\r
+command.label.25 = Refresh Nodes\r
+command.label.26 = Delete\r
+command.label.27 = New Factual Data\r
+menu.label.1 = New\r
+command.label.28 = Move Description to Taxon\r
+command.label.29 = Move Elements to Taxon\r
+command.label.30 = Delete\r
+command.label.31 = Save\r
+menu.label.2 = New Derivate\r
+command.label.32 = New Use\r
+command.label.33 = New Use Summary\r
+command.label.34 = New Use Record\r
+command.label.35 = Delete\r
+command.label.36 = Save\r
+command.label.37 = New Image Gallery\r
+command.label.38 = New Image\r
+command.label.39 = Move Image Up In List\r
+command.label.40 = Move Image Down In List\r
+command.label.41 = Delete\r
+command.label.42 = Save\r
+menu.label.3 = New\r
+command.label.43 = Open Related Concept\r
+command.label.44 = Delete\r
+command.label.45 = Edit Authorities\r
+extension.name = Name Commands\r
+category.name.0 = -- Name Editor\r
+command.name = Open Parent\r
+command.name.0 = Create Homotypic Synonym\r
+command.name.1 = Create Heterotypic Synonym\r
+command.name.2 = Create Synonym In Homotypical Group\r
+command.name.3 = Change To Synonym\r
+command.name.4 = Change To Accepted Taxon\r
+command.name.5 = Change To Misapplication\r
+command.name.6 = Swap Synonym With Accepted\r
+command.name.7 = Set Basionym / Original Combination\r
+command.name.8 = Remove Basionym / Original Combination\r
+command.name.9 = Delete All Empty Names\r
+category.name.1 = -- Factual\r
+command.name.10 = Create Description Element\r
+command.name.11 = New Description\r
+command.name.12 = Move Description Elements to Taxon\r
+command.name.13 = Move Description to Taxon\r
+category.name.2 = -- New Uses\r
+command.name.14 = New Use\r
+command.name.15 = New Use Summary\r
+command.name.16 = New Use Record\r
+category.name.3 = -- Media\r
+command.name.19 = Move Image Down In List\r
+command.name.20 = New Image Gallery\r
+command.name.21 = New Image\r
+command.name.22 = Move Image Up In List\r
+category.name.4 = -- New Entity\r
+command.name.23 = New Reference\r
+command.name.24 = New Name\r
+command.name.25 = New Team\r
+command.name.26 = New Person\r
+command.name.27 = New Specimen\r
+category.name.5 = -- Polytomous Keys\r
+command.name.28 = New Child Node\r
+command.name.29 = New Sibling Node\r
+command.name.30 = Refresh Node Numbering\r
+command.name.31 = Apply Layout\r
+category.name.6 = -- Concept Relations\r
+command.name.32 = Create Concept Relation\r
+command.name.33 = Open Related Concept\r
+category.name.7 = -- Group\r
+command.name.34 = Edit CDM Authorities\r
+command.name.35 = Open Derivate View\r
+scheme.description = The default key binding scheme for the Taxonomic Editor\r
+scheme.name = Taxonomic Editor Default Key Bindings
\ No newline at end of file
index 4c434ef68a020b2f38beb7359a71dbe99cf80aa0..356db7a1cda467ef29a56af7be60e2cd7b2bc5c8 100644 (file)
@@ -3,6 +3,8 @@ source.. = src/main/java/,\
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
-               plugin.properties,\
+               OSGI-INF/l10n/plugin.properties,\
                icons/,\
-               p2.inf
+               p2.inf,\
+               OSGI-INF/l10n/plugin_de.properties,\
+               OSGI-INF/l10n/plugin_en.properties
diff --git a/eu.etaxonomy.taxeditor.editor/plugin.properties b/eu.etaxonomy.taxeditor.editor/plugin.properties
deleted file mode 100644 (file)
index 090394d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#Properties file for taxeditor-editor\r
-Bundle-Vendor.0 = EDIT\r
-Bundle-Name.0 = EDIT Taxonomic Editor - Editor Bundle\r
-command.name.17 = Set Basionym\r
-command.name.18 = Remove Basionym
\ No newline at end of file
index 267c86eb531a31efd416028ec0bd39d661a9f7d3..1290226d262b9e0654598cdb67623d53858f67eb 100644 (file)
            class="eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor"
            icon="icons/edit_16x16.gif"
            id="eu.etaxonomy.taxeditor.editor.taxon"
-           name="Multipage Taxon Editor">
+           name="%editor.name">
          </editor>
       <editor
             class="eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor"
             default="true"
             id="eu.etaxonomy.taxeditor.editor.taxon.name"
-            name="Taxon Name Editor">
+            name="%editor.name.0">
       </editor>
       <editor
             class="eu.etaxonomy.taxeditor.editor.key.KeyEditor"
             default="false"
             id="eu.etaxonomy.taxeditor.editor.key"
-            name="Key">
+            name="%editor.name.1">
       </editor>
       <editor
             class="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyGraphEditor"
             default="false"
             id="eu.etaxonomy.taxeditor.editor.key.polytomous.graph"
-            name="Polytomous Key Graph Editor">
+            name="%editor.name.2">
       </editor>
       <editor
             class="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor"
             default="false"
             id="eu.etaxonomy.taxeditor.editor.key.polytomous.list"
-            name="Polytomous Key List Editor">
+            name="%editor.name.3">
       </editor>
       <editor
             class="eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor"
             default="false"
             id="eu.etaxonomy.taxeditor.editor.group.authority"
-            name="Cdm Authority Editor">
+            name="%editor.name.4">
       </editor>
       <editor
             class="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"
             default="false"
             icon="icons/derivate_view-16x16-32.png"
             id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"
-            name="Derivate View">
+            name="%editor.name.5">
       </editor>
       <editor
             class="eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor"
             id="eu.etaxonomy.taxeditor.editor.view.dataimport.GbifImportEditor"
             name="Gbif Import Editor">
       </editor>
+         <editor
+            class="eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor"
+            icon="icons/address-book-new.png"
+            id="eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor"
+            name="Checklist Editor">
+      </editor>
    </extension>
       <extension
             point="org.eclipse.ui.views">
@@ -86,7 +92,7 @@
                class="eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart"
                icon="icons/address-book-new.png"
                id="eu.etaxonomy.taxeditor.editor.view.descriptive"
-               name="Factual Data"
+               name="%view.name"
                restorable="true">
          </view>
           <view
                 class="eu.etaxonomy.taxeditor.editor.view.uses.UsesViewPart"
                 icon="icons/leaf.png"
                 id="eu.etaxonomy.taxeditor.editor.view.uses"
-                name="Uses"
+                name="%view.name.0"
                 restorable="true">
          </view>
          <view
                class="eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart"
                icon="icons/camera-photo.png"
                id="eu.etaxonomy.taxeditor.editor.view.media"
-               name="Media"
+               name="%view.name.1"
                restorable="true">
          </view>
          <view
                category="eu.etaxonomy.taxeditor.editor.category"
                class="eu.etaxonomy.taxeditor.editor.view.concept.ConceptViewPart"
                id="eu.etaxonomy.taxeditor.editor.view.concept"
-               name="Concept Relations"
+               name="%view.name.2"
                restorable="true">
          </view>
          <view
                class="eu.etaxonomy.taxeditor.editor.view.concept.graph.ConceptGraphView"
                icon="icons/address-book-new.png"
                id="eu.etaxonomy.taxeditor.editor.view.concept.graph"
-               name="Concept Graph"
+               name="%view.name.3"
                restorable="true">
          </view>
          <category
                id="eu.etaxonomy.taxeditor.editor.category"
-               name="Taxonomic Editor">
+               name="%category.name">
          </category>
       </extension>
    <extension
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.command.new.team"
-               label="Team"
+               label="%command.label.1"
                style="push">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.command.new.person"
-               label="Person"
+               label="%command.label.2"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.command.new.specimen"
-               label="Specimen"
+               label="%command.label.3"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="org.eclipse.ui.views.showView"
-               label="Factual Data"
+               label="%command.label.4"
                style="push">
             <parameter
                   name="org.eclipse.ui.views.showView.viewId"
          </command>
          <command
                commandId="org.eclipse.ui.views.showView"
-               label="Media"
+               label="%command.label.5"
                style="push">
             <parameter
                   name="org.eclipse.ui.views.showView.viewId"
          </command>
          <command
                commandId="org.eclipse.ui.views.showView"
-               label="Concept"
+               label="%command.label.6"
                style="push">
             <parameter
                   name="org.eclipse.ui.views.showView.viewId"
          </command>
          <command
                commandId="org.eclipse.ui.views.showView"
-               label="Concept Graph"
+               label="%command.label.7"
                style="push">
             <parameter
                   name="org.eclipse.ui.views.showView.viewId"
             locationURI="menu:org.eclipse.ui.main.menu.navigate">
          <command
                commandId="eu.etaxonomy.taxeditor.editor.command.openParent"
-               label="Open Parent"
+               label="%command.label.8"
                style="push">
          </command>
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.editor.taxon.name">
          <menu
-               label="New">
+               label="%menu.label">
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.name.createHeterotypicSynoym"
-                  label="Heterotypic Synonym"
+                  label="%command.label.9"
                   style="push">
                <visibleWhen>
                   <reference
             </command>
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.name.createHomotypicSynoym"
-                  label="Homotypic Synonym"
+                  label="%command.label.10"
                   style="push">
                <visibleWhen>
                   <reference
             </command>
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.name.createSynonymInHomotypicalGroup"
-                  label="Synonym In Homotypical Group"
+                  label="%command.label.11"
                   style="push">
                <visibleWhen>
                   <reference
                </visibleWhen>
          </command>-->
          <menu
-               label="Change To">
+               label="%menu.label.0">
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.name.changeToAcceptedTaxon"
-                  label="Accepted Taxon"
+                  label="%command.label.12"
                   style="push">
                <visibleWhen>
                   <not>
             </command>
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.name.changeToSynonym"
-                  label="Synonym"
+                  label="%command.label.13"
                   style="push">
                <visibleWhen>
                   <not>
             </command>
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.name.changeToMisapplication"
-                  label="Misapplication"
+                  label="%command.label.14"
                   style="push">
                <visibleWhen>
                   <not>
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.15"
                style="push">
             <visibleWhen>
                <or>
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.name.deleteAllEmptyNames"
-               label="Delete All Empty Names"
+               label="%command.label.16"
                style="push">
             <visibleWhen>
                <reference
          </dynamic>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.name.swapSynonymAndAccepted"
-               label="Swap Synonym With Accepted"
+               label="%command.label.17"
                style="push">
             <visibleWhen>
                <reference
          </separator>
          <command
                commandId="org.eclipse.ui.views.showView"
-               label="Show Details"
+               label="%command.label.18"
                style="push">
             <parameter
                   name="org.eclipse.ui.views.showView.viewId"
          </separator>
          <command
                commandId="org.eclipse.ui.file.save"
-               label="Save"
+               label="%command.label.19"
                style="push">
          </command>
       </menuContribution>
             locationURI="popup:eu.etaxonomy.taxeditor.editor.key.polytomous">
          <command
                commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new"
-               label="New Node"
+               label="%command.label.20"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.21"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.key.command.applyLayout"
-               label="Apply Layout"
+               label="%command.label.22"
                style="push">
          </command>
          <separator
             locationURI="popup:eu.etaxonomy.taxeditor.editor.key.polytomous.list">
          <command
                commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.child"
-               label="New Key Number"
+               label="%command.label.23"
                style="push">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.sibling"
-               label="New Alternative"
+               label="%command.label.24"
                style="push">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.key.polytomous.command.refresh"
-               label="Refresh Nodes"
+               label="%command.label.25"
                style="push">
          </command>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.26"
                style="push">
          </command>
       </menuContribution>
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.descriptive">
          <command
                commandId="eu.etaxonomy.taxeditor.description.commands.adddescription"
-               label="New Factual Data"
+               label="%command.label.27"
                style="push">
          </command>
          <separator
                visible="true">
          </separator>
          <menu
-               label="New">
+               label="%menu.label.1">
             <dynamic
                   class="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.DynamicFeatureMenu"
                   id="eu.etaxonomy.taxeditor.dynamicFeatureMenu">
          </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.commands.description.moveDescriptionToTaxon"
-               label="Move Description to Taxon"
+               label="%command.label.28"
                style="push">
             <visibleWhen
                   checkEnabled="true">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.description.commands.moveDescriptionElements"
-               label="Move Elements to Taxon"
+               label="%command.label.29"
                style="push">
             <visibleWhen
                   checkEnabled="true">
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.30"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="org.eclipse.ui.file.save"
-               label="Save"
+               label="%command.label.31"
                style="push">
          </command>
       </menuContribution>
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.uses">
          <command
                commandId="eu.etaxonomy.taxeditor.use.commands.adduse"
-               label="New Use"
+               label="%command.label.32"
                style="push">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.use.createUseSummary"
-               label="New Use Summary"
+               label="%command.label.33"
                style="push">
             <visibleWhen
                   checkEnabled="true">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.use.createUseRecord"
-               label="New Use Record"
+               label="%command.label.34"
                style="push">
             <visibleWhen
                   checkEnabled="true">
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.35"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="org.eclipse.ui.file.save"
-               label="Save"
+               label="%command.label.36"
                style="push">
          </command>
       </menuContribution>
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.media">
          <command
                commandId="taxeditor-editor.command.newimagegallery"
-               label="New Image Gallery"
+               label="%command.label.37"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="taxeditor-editor.newimage"
-               label="New Image"
+               label="%command.label.38"
                style="push">
             <visibleWhen>
                <reference
          </command>
          <command
                commandId="taxeditor-editor.command.moveimgdown"
-               label="Move Image Up In List"
+               label="%command.label.39"
                style="push">
             <visibleWhen>
                <reference
          </command>
          <command
                commandId="taxeditor-editor.command.moveimgup"
-               label="Move Image Down In List"
+               label="%command.label.40"
                style="push">
             <visibleWhen>
                <reference
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.41"
                style="push">
          </command>
          <command
                commandId="org.eclipse.ui.file.save"
-               label="Save"
+               label="%command.label.42"
                style="push">
          </command>
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.concept">
          <menu
-               label="New">
+               label="%menu.label.3">
             <dynamic
                   class="eu.etaxonomy.taxeditor.editor.view.concept.handler.CreateConceptRelationMenu"
                   id="eu.etaxonomy.taxeditor.editor.view.concept.menus.new">
          </menu>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.view.concept.command.open"
-               label="Open Related Concept"
+               label="%command.label.43"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.44"
                style="push">
          </command>
       </menuContribution>
             locationURI="popup:#BulkEditorContext?before=taxeditor-bulkeditor.separator1">
          <command
                commandId="eu.etaxonomy.taxeditor.group.cdmauthorities.edit"
-               label="Edit Authorities"
+               label="%command.label.45"
                style="push">
             <visibleWhen>
                <reference
             </with>
          </activeWhen>
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
+            commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler">
+      </handler>
    </extension>
    <extension
-         name="Name Commands"
+         name="%extension.name"
          point="org.eclipse.ui.commands">
       <category
             id="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
-            name="-- Name Editor">
+            name="%category.name.0">
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenParentHandler"
             id="eu.etaxonomy.taxeditor.editor.command.openParent"
-            name="Open Parent">
+            name="%command.name">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.CreateHomotypicSynonymHandler"
             id="eu.etaxonomy.taxeditor.editor.name.createHomotypicSynoym"
-            name="Create Homotypic Synonym">
+            name="%command.name.0">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.CreateHeterotypicSynonymHandler"
             id="eu.etaxonomy.taxeditor.editor.name.createHeterotypicSynoym"
-            name="Create Heterotypic Synonym">
+            name="%command.name.1">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.CreateSynonymInHomotypicalGroupHandler"
             id="eu.etaxonomy.taxeditor.editor.name.createSynonymInHomotypicalGroup"
-            name="Create Synonym In Homotypical Group">
+            name="%command.name.2">
       </command>
      <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.ChangeToSynonymHandler"
             id="eu.etaxonomy.taxeditor.editor.name.changeToSynonym"
-            name="Change To Synonym">
+            name="%command.name.3">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.ChangeSynonymToAcceptedTaxonHandler"
             id="eu.etaxonomy.taxeditor.editor.name.changeToAcceptedTaxon"
-            name="Change To Accepted Taxon">
+            name="%command.name.4">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.ChangeToMisapplicationHandler"
             id="eu.etaxonomy.taxeditor.editor.name.changeToMisapplication"
-            name="Change To Misapplication">
+            name="%command.name.5">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.SwapSynonymAndAcceptedHandler"
             id="eu.etaxonomy.taxeditor.editor.name.swapSynonymAndAccepted"
-            name="Swap Synonym With Accepted">
+            name="%command.name.6">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.SetBasionymHandler"
             id="eu.etaxonomy.taxeditor.editor.name.setBasionym"
-            name="Set Basionym / Original Combination">
+            name="%command.name.7">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.RemoveBasionymHandler"
             id="eu.etaxonomy.taxeditor.editor.name.removeBasionym"
-            name="Remove Basionym / Original Combination">
+            name="%command.name.8">
       </command>
      <!-- <command
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.DeleteAllEmptyNamesHandler"
             id="eu.etaxonomy.taxeditor.editor.name.deleteAllEmptyNames"
-            name="Delete All Empty Names">
+            name="%command.name.9">
       </command>
       <category
             id="eu.etaxonomy.taxeditor.editor.view.descriptive.command.category"
-            name="-- Factual">
+            name="%category.name.1">
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.CreateDescriptionElementHandler"
             id="eu.etaxonomy.taxeditor.editor.description.createDescriptionElement"
-            name="Create Description Element">
+            name="%command.name.10">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.CreateDescriptionHandler"
             id="eu.etaxonomy.taxeditor.description.commands.adddescription"
-            name="New Description">
+            name="%command.name.11">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.MoveDescriptionElementsHandler"
             id="eu.etaxonomy.taxeditor.description.commands.moveDescriptionElements"
-            name="Move Description Elements to Taxon">
+            name="%command.name.12">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.MoveDescriptionToOtherTaxonHandler"
             id="eu.etaxonomy.taxeditor.editor.commands.description.moveDescriptionToTaxon"
-            name="Move Description to Taxon">
+            name="%command.name.13">
       </command>
       <category
             id="eu.etaxonomy.taxeditor.editor.view.uses.command.category"
-            name="-- New Uses">
+            name="%category.name.2">
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.uses.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.uses.handler.CreateUseHandler"
             id="eu.etaxonomy.taxeditor.use.commands.adduse"
-            name="New Use">
+            name="%command.name.14">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.uses.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.uses.handler.CreateUseSummaryHandler"
             id="eu.etaxonomy.taxeditor.editor.use.createUseSummary"
-            name="New Use Summary">
+            name="%command.name.15">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.uses.command.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.uses.handler.CreateUseRecordHandler"
             id="eu.etaxonomy.taxeditor.editor.use.createUseRecord"
-            name="New Use Record">
+            name="%command.name.16">
       </command>
       <category
             id="eu.etaxonomy.taxeditor.editor.media.category"
-            name="-- Media">
+            name="%category.name.3">
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.media.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.media.handler.MoveImageDownInListHandler"
             id="taxeditor-editor.command.moveimgdown"
-            name="Move Image Down In List">
+            name="%command.name.19">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.media.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.media.handler.AddImageGalleryHandler"
             id="taxeditor-editor.command.newimagegallery"
-            name="New Image Gallery">
+            name="%command.name.20">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.media.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.media.handler.CreateMediaHandler"
             id="taxeditor-editor.newimage"
-            name="New Image">
+            name="%command.name.21">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.media.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.media.handler.MoveImageUpInListHandler"
             id="taxeditor-editor.command.moveimgup"
-            name="Move Image Up In List">
+            name="%command.name.22">
       </command>
       <category
             id="eu.etaxonomy.taxeditor.editor.new.category"
-            name="-- New Entity">
+            name="%category.name.4">
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.new.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.create.NewReferenceHandler"
             id="eu.etaxonomy.taxeditor.editor.command.new.reference"
-            name="New Reference">
+            name="%command.name.23">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.new.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.create.NewNameHandler"
             id="eu.etaxonomy.taxeditor.editor.command.new.name"
-            name="New Name">
+            name="%command.name.24">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.new.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.create.NewTeamHandler"
             id="eu.etaxonomy.taxeditor.editor.command.new.team"
-            name="New Team">
+            name="%command.name.25">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.new.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.create.NewPersonHandler"
             id="eu.etaxonomy.taxeditor.editor.command.new.person"
-            name="New Person">
+            name="%command.name.26">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.new.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.create.NewSpecimenHandler"
             id="eu.etaxonomy.taxeditor.editor.command.new.specimen"
-            name="New Specimen">
+            name="%command.name.27">
       </command>
       <category
             id="eu.etaxonomy.taxeditor.editor.key.category"
-            name="-- Polytomous Keys">
+            name="%category.name.5">
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.key.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.CreateChildNodeHandler"
             id="eu.etaxonomy.taxeditor.key.polytomous.command.new.child"
-            name="New Child Node">
+            name="%command.name.28">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.key.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.CreateSiblingNodeHandler"
             id="eu.etaxonomy.taxeditor.key.polytomous.command.new.sibling"
-            name="New Sibling Node">
+            name="%command.name.29">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.key.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RefreshNodeNumberingHandler"
             id="eu.etaxonomy.taxeditor.key.polytomous.command.refresh"
-            name="Refresh Node Numbering">
+            name="%command.name.30">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.key.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.key.handler.ApplyLayoutHandler"
             id="eu.etaxonomy.taxeditor.key.command.applyLayout"
-            name="Apply Layout">
+            name="%command.name.31">
       </command>
       <category
             id="eu.etaxonomy.taxeditor.editor.view.concept.category"
-            name="-- Concept Relations">
+            name="%category.name.6">
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.concept.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.concept.handler.CreateConceptRelationHandler"
             id="eu.etaxonomy.taxeditor.editor.name.createConceptRelation"
-            name="Create Concept Relation">
+            name="%command.name.32">
       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.view.concept.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.concept.handler.OpenRelatedConceptHandler"
             id="eu.etaxonomy.taxeditor.editor.view.concept.command.open"
-            name="Open Related Concept">
+            name="%command.name.33">
       </command>
       <category
             id="eu.etaxonomy.taxeditor.bulkeditor.group.category"
-            name="-- Group">
+            name="%category.name.7">
       </category>
       <command
             categoryId="eu.etaxonomy.taxeditor.bulkeditor.group.category"
             defaultHandler="eu.etaxonomy.taxeditor.editor.group.authority.handler.EditCdmAuthoritiesHandler"
             id="eu.etaxonomy.taxeditor.group.cdmauthorities.edit"
-            name="Edit CDM Authorities">
+            name="%command.name.34">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler"
             id="eu.etaxonomy.taxeditor.editor.handler.openDerivateView"
-            name="Open Derivate View">
+            name="%command.name.35">
       </command>
+       <command
+             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
+             id="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
+             name="Open Checklist Editor">
+       </command>
       <command
             categoryId="eu.etaxonomy.taxeditor.editor.new.category"
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler"
             id="eu.etaxonomy.taxeditor.editor.command.new.datasource"
             name="New Datasource">
       </command>
-
    </extension>
    <extension
          point="org.eclipse.core.expressions.definitions">
    <extension
          point="org.eclipse.ui.bindings">   
       <scheme
-            description="The default key binding scheme for the Taxonomic Editor"
+            description="%scheme.description"
             id="eu.etaxonomy.taxeditor.bindings.scheme.default"
-            name="Taxonomic Editor Default Key Bindings">
+            name="%scheme.name">
       </scheme>
    </extension>
     <extension
index 18d340d60086ebe79157beb39ce23b49a6424734..d3f414a0334e9c9f93ee75f1216c7e1ea9d12b9a 100644 (file)
@@ -35,6 +35,8 @@ import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
 import eu.etaxonomy.taxeditor.editor.view.dataimport.BioCaseEditorInput;
 import eu.etaxonomy.taxeditor.editor.view.dataimport.DataImportEditor;
 import eu.etaxonomy.taxeditor.editor.view.dataimport.DataImportEditorInput;
@@ -103,6 +105,17 @@ public class EditorUtil extends AbstractUtility {
            open(input, DerivateView.ID);
        }
 
+
+       /**
+        * Opens a new ChecklistView for the given input
+        * @param input a {@link ChecklistEditorInput} representing the selected checklist
+        * @throws PartInitException
+        */
+       public static void open(ChecklistEditorInput input)
+               throws PartInitException {
+           open(input, ChecklistEditor.ID);
+       }
+
        /**
         * Opens a new {@link DataImportEditor} for the given input
         * @param input a {@link DataImportEditorInput}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenChecklistEditorHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenChecklistEditorHandler.java
new file mode 100644 (file)
index 0000000..5ffa7ee
--- /dev/null
@@ -0,0 +1,64 @@
+package eu.etaxonomy.taxeditor.editor.handler;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+public class OpenChecklistEditorHandler extends AbstractHandler {
+
+    private static final Logger logger = Logger.getLogger(OpenChecklistEditorHandler.class);
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
+     * ExecutionEvent)
+     */
+    @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+        boolean isChecklistEditorActivated = PreferencesUtil.getPreferenceStore().getBoolean(
+                IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
+        if (isChecklistEditorActivated) {
+            ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
+            if (currentSelection instanceof IStructuredSelection) {
+                Object selectedElement = ((IStructuredSelection) currentSelection).getFirstElement();
+                if (selectedElement instanceof Classification) {
+                    ChecklistEditorInput input = new ChecklistEditorInput(((Classification) selectedElement));
+                    try {
+                        EditorUtil.open(input);
+                    } catch (PartInitException e) {
+                        AbstractUtility.error(OpenChecklistEditorHandler.class, "Could not open ChecklistView", e);
+                    } catch (NullPointerException npe) {
+                        AbstractUtility.errorDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
+                                "Could not open ChecklistView. The hierarchy is corrupted!", npe);
+                    }
+                } else if (selectedElement instanceof TaxonNode) {
+                    ChecklistEditorInput input = new ChecklistEditorInput(((TaxonNode) selectedElement));
+                    try {
+                        EditorUtil.open(input);
+                    } catch (PartInitException e) {
+                        AbstractUtility.error(OpenChecklistEditorHandler.class, "Could not open ChecklistView", e);
+                    } catch (NullPointerException npe) {
+                        AbstractUtility.errorDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
+                                "Could not open ChecklistView. The hierarchy is corrupted!", npe);
+                    }
+                }
+            }
+        }
+        return null;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistContentProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistContentProvider.java
new file mode 100644 (file)
index 0000000..d25a306
--- /dev/null
@@ -0,0 +1,57 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.editor.view.checklist;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ *
+ * @author a.oppermann
+ * @created 30.04.2014
+ * @version 1.0
+ */
+public class ChecklistContentProvider implements IStructuredContentProvider {
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+        */
+       /**
+        * <p>dispose</p>
+        */
+       @Override
+    public void dispose() {
+
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+        */
+       /** {@inheritDoc} */
+       @Override
+    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+        */
+       /** {@inheritDoc} */
+       @Override
+    public Object[] getElements(Object inputElement) {
+               if(inputElement instanceof List){
+                       return ((List) inputElement).toArray();
+               }
+               return new Object[]{};
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditor.java
new file mode 100644 (file)
index 0000000..b38fd59
--- /dev/null
@@ -0,0 +1,645 @@
+// $Id$
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.editor.view.checklist;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.SortedSet;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.ISelectionService;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.SimpleSelectionProvider;
+import eu.etaxonomy.taxeditor.editor.view.checklist.edit.DistributionEditingSupport;
+import eu.etaxonomy.taxeditor.editor.view.checklist.edit.RankEditingSupport;
+import eu.etaxonomy.taxeditor.editor.view.checklist.filter.ChecklistEditorFilter;
+import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistDropdownSelectionListener;
+import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistFocusListener;
+import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistModifyListener;
+import eu.etaxonomy.taxeditor.model.IContextListener;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
+import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
+import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * <p>
+ * ChecklistViewPart class.
+ * </p>
+ *
+ * @author a.oppermann
+ * @created 30.04.2014
+ * @version 1.0
+ */
+public class ChecklistEditor extends EditorPart implements ISelectionListener, IPartContentHasFactualData,
+        IConversationEnabled, IContextListener, IPartContentHasDetails, IDirtyMarkableSelectionProvider {
+
+    private static final Logger logger = Logger.getLogger(ChecklistEditor.class);
+    /**
+     * Key used for storing Checklist Editor View
+     */
+    private static final String CHECKLIST_EDITOR_MEMENTO_KEY = "checklistEditor";
+
+    private class ChecklistJob extends Job {
+
+        private List<TaxonNode> taxonNodes;
+
+        /**
+         * @param name
+         */
+        public ChecklistJob(String title, List<TaxonNode> listTaxonNodes) {
+            super(title);
+            this.taxonNodes = listTaxonNodes;
+
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.
+         * IProgressMonitor)
+         */
+        @Override
+        public IStatus run(final IProgressMonitor monitor) {
+            try {
+                logger.debug("Begin of eclipse core runtime Job to Retrieve datasources");
+                monitor.beginTask("Retrieving TaxonNodes", taxonNodes.size() + 1);
+
+                final List<Taxon> taxonList = new ArrayList<Taxon>();
+
+                for (TaxonNode taxonNode : taxonNodes) {
+                    HibernateProxyHelper hh = new HibernateProxyHelper();
+                    Taxon taxon = hh.deproxy(taxonNode.getTaxon(), Taxon.class);
+                    taxonList.add(taxon);
+                }
+                // set View input
+                Display.getDefault().asyncExec(new Runnable() {
+
+                    @Override
+                    public void run() {
+                        viewer.setInput(taxonList);
+                    }
+                });
+                monitor.worked(1);
+
+            } finally {
+                monitor.done();
+                taxonNodes = null;
+            }
+            return Status.OK_STATUS;
+        }
+    }
+
+    /**
+     * Constant
+     * <code>ID="eu.etaxonomy.taxeditor.store.datasource"{trunked}</code>
+     */
+    public static String ID = "eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor";
+
+    private TableViewer viewer;
+
+    private String partNameCache;
+
+    private IWorkbenchSiteProgressService service;
+
+    private ITaxonNodeService taxonNodeService;
+
+    private ChecklistEditorComparator comparator;
+
+    private ChecklistEditorInput checklistEditorInput;
+
+    private SimpleSelectionProvider simpleSelectionProvider;
+
+    private ISelectionService selectionService;
+
+    private ConversationHolder conversation;
+
+    private Integer countNodes;
+
+    private List<TaxonNode> selectedTaxonNodes;
+
+    private boolean dirty;
+
+    private ChecklistEditorFilter filter;
+
+    private Menu headerMenu;
+
+    private Label statusLabel;
+
+    private SortedSet<DefinedTermBase> terms = null;
+
+    /**
+     * @return the selectedTaxonNodes
+     */
+    public List<TaxonNode> getSelectedTaxonNodes() {
+        return selectedTaxonNodes;
+    }
+
+    /**
+     * @param selectedTaxonNodes
+     *            the selectedTaxonNodes to set
+     */
+    public void setSelectedTaxonNodes(List<TaxonNode> selectedTaxonNodes) {
+        this.selectedTaxonNodes = selectedTaxonNodes;
+    }
+
+    /**
+     * <p>
+     * Constructor for CdmDataSourceViewPart.
+     * </p>
+     */
+    public ChecklistEditor() {
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void createPartControl(Composite parent) {
+        service = (IWorkbenchSiteProgressService) getSite().getAdapter(IWorkbenchSiteProgressService.class);
+        taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
+        selectionService = getSite().getWorkbenchWindow().getSelectionService();
+        selectionService.addSelectionListener(this);
+        filter = new ChecklistEditorFilter();
+        ChecklistLabelProvider labelProvider = new ChecklistLabelProvider();
+        terms = (SortedSet<DefinedTermBase>) labelProvider.getTermsOrderedByLabels(labelProvider.getNamedAreas(),
+                CdmStore.getDefaultLanguage());
+        createTopComposite(parent);
+        loadDataInput();
+    }
+
+    /**
+     * @param parent
+     */
+    private void createTopComposite(Composite parent) {
+        GridLayout gridLayout = new GridLayout(3, false);
+        gridLayout.marginWidth = 0;
+        gridLayout.marginHeight = 0;
+        parent.setLayout(gridLayout);
+
+        final Text searchText = createSearchBar(parent);
+
+        if (terms != null && !terms.isEmpty()) {
+            createToolbar(parent);
+        }
+        viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
+        getSite().setSelectionProvider(viewer);
+
+        final ModifyListener modifyListener = new ChecklistModifyListener(viewer, filter, searchText);
+
+        searchText.addFocusListener(new ChecklistFocusListener(searchText, modifyListener));
+        searchText.addModifyListener(modifyListener);
+
+        // Layout the viewer
+        GridData gridData = new GridData();
+        gridData.verticalAlignment = GridData.FILL;
+        gridData.horizontalSpan = 3;
+        gridData.grabExcessHorizontalSpace = true;
+        gridData.grabExcessVerticalSpace = true;
+        gridData.horizontalAlignment = GridData.FILL;
+        viewer.getControl().setLayoutData(gridData);
+
+        viewer.addFilter(filter);
+        createColumns(viewer);
+
+        viewer.setContentProvider(new ChecklistContentProvider());
+        viewer.setLabelProvider(new ChecklistLabelProvider());
+        comparator = new ChecklistEditorComparator();
+        viewer.setComparator(comparator);
+
+        createStatusBar(parent);
+    }
+
+    /**
+     * @param parent
+     * @return
+     */
+    private Text createSearchBar(Composite parent) {
+        Label searchLabel = new Label(parent, SWT.NONE);
+        searchLabel.setText("Search: ");
+        final Text searchText = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH | SWT.CANCEL);
+        searchText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
+        searchText.setForeground(EditorUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
+        searchText.setText("type filter text");
+        return searchText;
+    }
+
+    /**
+     * @param parent
+     */
+    private void createToolbar(Composite parent) {
+        ToolBar toolBar = new ToolBar(parent, SWT.NONE);
+        ToolItem toolItem = new ToolItem(toolBar, SWT.DROP_DOWN | SWT.BORDER);
+        toolItem.setText("Distribution Status");
+        toolItem.setToolTipText("Show Distribution Status for selected Areas");
+        ChecklistDropdownSelectionListener dropListener = new ChecklistDropdownSelectionListener(toolItem, this, terms);
+        for (DefinedTermBase<DefinedTermBase> term : terms) {
+            if(term!=null){
+                dropListener.add(term);
+            }
+        }
+        toolItem.addSelectionListener(dropListener);
+        toolBar.pack();
+    }
+
+    private void createStatusBar(Composite composite) {
+        GridData gridData = new GridData();
+        gridData.horizontalSpan = 3;
+        gridData.grabExcessHorizontalSpace = true;
+        gridData.horizontalAlignment = GridData.FILL;
+
+        statusLabel = new Label(composite, SWT.LEFT);
+        statusLabel.setText("Anzahl der Elemente: " + (countNodes != null ? countNodes : "uknown"));
+        statusLabel.setLayoutData(gridData);
+    }
+
+    // This will create the columns for the table
+    private void createColumns(TableViewer viewer) {
+        Table table = viewer.getTable();
+        List<String> titles = new ArrayList<String>();
+        Collections.addAll(titles, "Taxon", "Author", "Reference", "Rank");
+        List<Integer> bounds = new ArrayList<Integer>();
+        Collections.addAll(bounds, 300, 200, 200, 200);
+        Map<Integer, Boolean>restoreColumnWidth = new HashMap<Integer, Boolean>();
+        if (terms != null) {
+            int i = 4;
+            for (DefinedTermBase<DefinedTermBase> term : terms) {
+                if(term != null){
+                    restoreColumnWidth.put(i, PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString()));
+                    titles.add(term.getTitleCache());
+                    bounds.add(200);
+                    i++;
+                }
+            }
+        }
+
+        for (int i = 0; i < titles.size(); i++) {
+            TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
+            column.getColumn().setText(titles.get(i));
+            column.getColumn().setWidth(bounds.get(i));
+            column.getColumn().setResizable(true);
+            column.getColumn().setMoveable(true);
+            column.getColumn().addSelectionListener(getSelectionAdapter(column.getColumn(), i));
+            if (i == 1) {
+                table.setSortColumn(column.getColumn());
+            }
+            if (i == 3) {
+                column.setEditingSupport(new RankEditingSupport(viewer, this));
+            }
+            if (i >= 4) {
+                //read PrefrenceStore to setWidth according to last saved state
+                if(restoreColumnWidth.get(i)){
+                    column.getColumn().setWidth(100);
+                }else{
+                    column.getColumn().setWidth(0);
+                }
+                column.setEditingSupport(new DistributionEditingSupport(viewer, this, i));
+            }
+        }
+        table.setSortDirection(SWT.DOWN);
+        table.setHeaderVisible(true);
+        table.setLinesVisible(true);
+    }
+
+    /**
+     *
+     * pull data from database and set input for view
+     *
+     */
+    private void loadDataInput() {
+        Classification classification = checklistEditorInput.getClassification();
+        TaxonNode taxonNode = checklistEditorInput.getTaxonNode();
+        if (classification != null && taxonNode == null) {
+            countNodes = taxonNodeService.countAllNodesForClassification(classification);
+            statusLabel.setText("Anzahl der Elemente: " + (countNodes != null ? countNodes : "uknown"));
+            // This should not kill the view nor the editor if something goes
+            // wrong
+            // TODO: don't load the whole taxonNode Object but rather a small
+            // and simple Solution
+            // FIXME: May be don't open classification which are greater than
+            // 3000 Taxa
+            selectedTaxonNodes = taxonNodeService.listAllNodesForClassification(classification, 0, countNodes);
+            getService().schedule(new ChecklistJob("loading Taxa", selectedTaxonNodes), Job.LONG);
+        }
+        if (taxonNode != null) {
+            selectedTaxonNodes = taxonNodeService.loadChildNodesOfTaxonNode(taxonNode, NODE_INIT_STRATEGY, true, false);
+            getService().schedule(new ChecklistJob("loading Taxa", selectedTaxonNodes), Job.LONG);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void dispose() {
+        super.dispose();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void setFocus() {
+        viewer.getControl().setFocus();
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.eclipse.ui.part.WorkbenchPart#showBusy(boolean)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void showBusy(boolean busy) {
+        super.showBusy(busy);
+        // viewer.getTable().setEnabled(!busy);
+        if (busy) {
+            partNameCache = getPartName();
+            setPartName("Loading " + countNodes + " Taxa...");
+        } else {
+            if (partNameCache != null) {
+                setPartName(partNameCache);
+            }
+        }
+    }
+
+    /**
+     * <p>
+     * Getter for the field <code>viewer</code>.
+     * </p>
+     *
+     * @return a {@link org.eclipse.jface.viewers.StructuredViewer} object.
+     */
+    public StructuredViewer getViewer() {
+        return viewer;
+    }
+
+    public void refresh() {
+        viewer.refresh();
+    }
+
+    /**
+     * <p>
+     * Getter for the field <code>service</code>.
+     * </p>
+     *
+     * @return the service
+     */
+    public IWorkbenchSiteProgressService getService() {
+        return service;
+    }
+
+    private SelectionAdapter getSelectionAdapter(final TableColumn column, final int index) {
+        SelectionAdapter selectionAdapter = new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                comparator.setColumn(index);
+                int dir = viewer.getTable().getSortDirection();
+                if (viewer.getTable().getSortColumn() == column) {
+                    dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
+                } else {
+                    dir = SWT.DOWN;
+                }
+                viewer.getTable().setSortDirection(dir);
+                viewer.getTable().setSortColumn(column);
+                viewer.refresh();
+            }
+        };
+        return selectionAdapter;
+    }
+
+    @Override
+    public void doSave(IProgressMonitor monitor) {
+        try {
+            monitor.beginTask("Saving Editor", 1);
+            getConversationHolder().bind();
+            getConversationHolder().commit(true);
+            setDirty(false);
+            monitor.worked(1);
+        } finally {
+            monitor.done();
+        }
+
+    }
+
+    @Override
+    public void doSaveAs() {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+        setSite(site);
+        setInput(input);
+        if (input instanceof ChecklistEditorInput) {
+            checklistEditorInput = (ChecklistEditorInput) input;
+            setPartName(getPartName() + ": " + checklistEditorInput.getName());
+            conversation = ((ChecklistEditorInput) input).getConversationHolder();
+        }
+        simpleSelectionProvider = new SimpleSelectionProvider();
+        getSite().setSelectionProvider(simpleSelectionProvider);
+    }
+
+    @Override
+    public boolean isSaveAsAllowed() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.
+     * IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+     */
+    @Override
+    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+        // TODO Auto-generated method stub
+
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update
+     * (eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
+     */
+    @Override
+    public void update(CdmDataChangeMap changeEvents) {
+
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
+     * ()
+     */
+    @Override
+    public ConversationHolder getConversationHolder() {
+        return conversation;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.model.IContextListener#contextAboutToStop(org.
+     * eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
+     */
+
+    @Override
+    public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
+
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.model.IContextListener#contextStop(org.eclipse
+     * .ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
+     */
+    @Override
+    public void contextStop(IMemento memento, IProgressMonitor monitor) {
+        // TODO Auto-generated method stub
+//        IStructuredSelection sel = (IStructuredSelection) this.viewer.getSelection();
+//        if (sel.isEmpty()) {
+//            return;
+//        }
+//        memento = memento.createChild("tree-selections");
+//        Iterator iter = sel.iterator();
+//        while (iter.hasNext()) {
+//            String nodeName = (String) iter.next();
+//            memento.createChild("selected-nodes", nodeName);
+//        }
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.model.IContextListener#contextStart(org.eclipse
+     * .ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
+     */
+    @Override
+    public void contextStart(IMemento memento, IProgressMonitor monitor) {
+
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.model.IContextListener#contextRefresh(org.eclipse
+     * .core.runtime.IProgressMonitor)
+     */
+    @Override
+    public void contextRefresh(IProgressMonitor monitor) {
+        // TODO Auto-generated method stub
+
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.model.IContextListener#workbenchShutdown(org.eclipse
+     * .ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
+     */
+    @Override
+    public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
+        conversation.clear();
+        conversation.close();
+        conversation = null;
+    }
+
+    private static final List<String> NODE_INIT_STRATEGY = Arrays.asList(new String[] { "descriptions",
+            "descriptions.*", "description.state", "feature", "feature.*", "childNodes", "childNodes.taxon",
+            "childNodes.taxon.name", "taxonNodes", "taxonNodes.*", "taxonNodes.taxon.*", "taxon.*",
+            "taxon.descriptions", "taxon.sec", "taxon.name.*", "taxon.synonymRelations", "terms", "name.*",
+            "name.rank.representations", "name.status.type.representations", "sources.$", "stateData.$" });
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#changed(
+     * java.lang.Object)
+     */
+    @Override
+    public void changed(Object element) {
+        if (element != null) {
+            viewer.update(element, null);
+            setDirty(true);
+            firePropertyChange(PROP_DIRTY);
+        }
+    }
+
+    public void setDirty(boolean dirty) {
+        this.dirty = dirty;
+        firePropertyChange(PROP_DIRTY);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.eclipse.ui.forms.editor.FormEditor#isDirty()
+     */
+    @Override
+    public boolean isDirty() {
+        return dirty;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorComparator.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorComparator.java
new file mode 100644 (file)
index 0000000..ae7a0c4
--- /dev/null
@@ -0,0 +1,68 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.editor.view.checklist;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+
+/**
+ * @author a.oppermann
+ * @created 30.04.2014
+ * @version 1.0
+ */
+public class ChecklistEditorComparator extends ViewerComparator {
+
+       private int propertyIndex;
+       private static final int ASCENDING = 0;
+       private static final int DESCENDING = 1;
+       private int direction = ASCENDING;
+
+       public ChecklistEditorComparator() {
+               this.propertyIndex = 1;
+               direction = ASCENDING;
+       }
+
+       public void setColumn(int column) {
+               if (column == this.propertyIndex) {
+                       // Same column as last sort; toggle the direction
+                       direction = 1 - direction;
+               } else {
+                       // New column; do an ascending sort
+                       this.propertyIndex = column;
+                       direction = DESCENDING;
+               }
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+        */
+       @Override
+       public int compare(Viewer viewer, Object e1, Object e2) {
+         Taxon d1 = (Taxon) e1;
+         Taxon d2 = (Taxon) e2;
+
+               int result = 0;
+
+               switch (propertyIndex) {
+
+                       default:
+                               result = d1.getTitleCache().compareTo(d2.getTitleCache());
+               }
+
+               // If descending order, flip the direction
+               if (direction == DESCENDING) {
+                       result = -result;
+               }
+               return result;
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorInput.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorInput.java
new file mode 100644 (file)
index 0000000..0bc2b24
--- /dev/null
@@ -0,0 +1,197 @@
+// $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.editor.view.checklist;
+
+import java.util.UUID;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IPersistable;
+import org.eclipse.ui.IPersistableElement;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ *
+ * @author a.oppermann
+ * @date 25.04.2014
+ *
+ */
+public class ChecklistEditorInput implements IEditorInput, IPersistable {
+
+    /**
+     * The selected classification
+     */
+    private TaxonNode taxonNode = null;
+
+    private Classification classification = null;
+
+    private final ConversationHolder conversationHolder;
+
+
+    /**
+     * Creates an editor input for the {@link ChecklistView} with the currently selected TaxonNode
+     * and its childNodes.
+     * @param taxonNode
+     */
+    public ChecklistEditorInput(TaxonNode taxonNode){
+        super();
+        this.conversationHolder = CdmStore.createConversation();
+        this.taxonNode = CdmStore.getCurrentApplicationConfiguration().getTaxonNodeService().load(taxonNode.getUuid());
+        classification = taxonNode.getClassification();
+    }
+
+    /**
+     * Creates an editor input for the {@link ChecklistView} with the currently selected classification.
+     * @param classificationUuid
+     */
+    public ChecklistEditorInput(Classification classification) {
+        super();
+        this.conversationHolder = CdmStore.createConversation();
+        this.classification = CdmStore.getCurrentApplicationConfiguration().getClassificationService().load(classification.getUuid());
+
+    }
+
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+     */
+    @Override
+    public Object getAdapter(Class adapter) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IEditorInput#exists()
+     */
+    @Override
+    public boolean exists() {
+        return false;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+     */
+    @Override
+    public ImageDescriptor getImageDescriptor() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IEditorInput#getName()
+     */
+    @Override
+    public String getName() {
+        if(taxonNode != null){
+            return taxonNode.getTaxon().getName().getTitleCache();
+        }else{
+            return classification.getTitleCache();
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IEditorInput#getPersistable()
+     */
+    @Override
+    public IPersistableElement getPersistable() {
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IEditorInput#getToolTipText()
+     */
+    @Override
+    public String getToolTipText() {
+        return classification.getTitleCache();
+    }
+
+    /**
+     * @return the taxonNode
+     */
+    public TaxonNode getTaxonNode() {
+        return taxonNode;
+    }
+
+    /**
+     * @return classification
+     */
+    public Classification getClassification(){
+       return classification;
+    }
+
+    /**
+     * @return the conversationHolder
+     */
+    public ConversationHolder getConversationHolder() {
+        return conversationHolder;
+    }
+
+
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#hashCode()
+     */
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((classification == null) ? 0 : classification.hashCode());
+        result = prime * result + ((taxonNode == null) ? 0 : taxonNode.hashCode());
+        return result;
+    }
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        ChecklistEditorInput other = (ChecklistEditorInput) obj;
+        if (classification == null) {
+            if (other.classification != null) {
+                return false;
+            }
+        } else if (!classification.equals(other.classification)) {
+            return false;
+        }
+        if (taxonNode == null) {
+            if (other.taxonNode != null) {
+                return false;
+            }
+        } else if (!taxonNode.equals(other.taxonNode)) {
+            return false;
+        }
+        return true;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
+     */
+    @Override
+    public void saveState(IMemento memento) {
+        UUID uuid = classification.getUuid();
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistLabelProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistLabelProvider.java
new file mode 100644 (file)
index 0000000..16a5e26
--- /dev/null
@@ -0,0 +1,182 @@
+// $Id$
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.editor.view.checklist;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.UUID;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.TermLanguageComparator;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.Distribution;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ *
+ * @author a.oppermann
+ * @created 30.04.2014
+ * @version 1.0
+ */
+public class ChecklistLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+    public static final String DEFAULT_ENTRY = "-";
+    private IDescriptionService descriptionService;
+    private final List<DefinedTermBase<?>> namedAreas;
+
+
+
+    /**
+     *
+     */
+    public ChecklistLabelProvider() {
+        namedAreas = loadNamedAreas();
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang
+     * .Object, int)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public Image getColumnImage(Object element, int columnIndex) {
+        // TODO
+        return null;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang
+     * .Object, int)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public String getColumnText(Object element, int columnIndex) {
+        descriptionService = CdmStore.getService(IDescriptionService.class);
+        Taxon taxon = (Taxon) element;
+        //TODO load areas by this list
+        SortedSet<DefinedTermBase<?>> sortedNamedAreas = (SortedSet<DefinedTermBase<?>>) getTermsOrderedByLabels(namedAreas, CdmStore.getDefaultLanguage());
+
+        List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null, null, null, null, DESC_INIT_STRATEGY);;
+        NonViralName<?> nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
+
+        switch (columnIndex) {
+        case 0:
+            String taxonName = null;
+            taxonName = (nonVirlaName != null) ? nonVirlaName.getNameCache() : null;
+            return (taxonName != null) ? taxonName : DEFAULT_ENTRY;
+
+        case 1:
+            String authorship = null;
+            authorship = (nonVirlaName != null) ? nonVirlaName.getAuthorshipCache() : null;
+            return (authorship != null) ? authorship : DEFAULT_ENTRY;
+        case 2:
+            String ref = null;
+            if (taxon.getName() != null) {
+                INomenclaturalReference nomenclaturalReference = HibernateProxyHelper.deproxy(
+                        nonVirlaName.getNomenclaturalReference(), Reference.class);
+                ref = (nomenclaturalReference != null) ? nomenclaturalReference.getAbbrevTitleCache() : null;
+            }
+            return (ref != null) ? ref : DEFAULT_ENTRY;
+        case 3:
+            String rank = null;
+            if (taxon.getName().getRank() != null) {
+                rank = taxon.getName().getRank().toString();
+            }
+            return (rank != null) ? rank : DEFAULT_ENTRY;
+        }
+
+        if(columnIndex >3){
+
+            for (TaxonDescription td : listTaxonDescriptions) {
+                for (DescriptionElementBase deb : td.getElements()) {
+                    if (deb instanceof Distribution) {
+                        Distribution distribution = (Distribution) deb;
+                        String area = distribution.toString();
+                        if(sortedNamedAreas != null){
+                            Object[] array = sortedNamedAreas.toArray();
+                            DefinedTermBase<DefinedTermBase> term = (DefinedTermBase<DefinedTermBase>) array[columnIndex-4];
+                            if(term != null){
+                                if (area.equalsIgnoreCase(term.getTitleCache())) {
+                                    return (distribution.getStatus().getTitleCache() != null)?distribution.getStatus().getTitleCache():DEFAULT_ENTRY;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return DEFAULT_ENTRY;
+
+    }
+
+    private static final List<String> DESC_INIT_STRATEGY = Arrays.asList(new String[] { "descriptions",
+            "descriptions.*", "description.state" });
+
+
+    private List<DefinedTermBase<?>> loadNamedAreas() {
+        IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
+        String values = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
+        if (values != null && values != "") {
+            String[] split = values.split(",");
+            List<String> listValue = Arrays.asList(split);
+            ArrayList<DefinedTermBase<?>> termlist = new ArrayList<DefinedTermBase<?>>();
+            for(String s : listValue){
+                UUID uuid = UUID.fromString(s);
+                ITermService service = CdmStore.getService(ITermService.class);
+                DefinedTermBase definedTermBase = service.load(uuid);
+                termlist.add(definedTermBase);
+            }
+            return termlist;
+        }
+        return null;
+    }
+
+    public SortedSet<?> getTermsOrderedByLabels(List<DefinedTermBase<?>> listTerm,Language language){
+        TermLanguageComparator comp = new TermLanguageComparator();
+        comp.setCompareLanguage(language);
+        SortedSet result = new TreeSet(comp);
+        if(listTerm != null){
+            result.addAll(listTerm);
+        }
+        return result;
+    }
+
+    /**
+     * @return the namedAreas
+     */
+    public List<DefinedTermBase<?>> getNamedAreas() {
+        return namedAreas;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/DistributionEditingSupport.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/DistributionEditingSupport.java
new file mode 100644 (file)
index 0000000..c30985b
--- /dev/null
@@ -0,0 +1,155 @@
+package eu.etaxonomy.taxeditor.editor.view.checklist.edit;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.SortedSet;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ComboBoxViewerCellEditor;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.TableColumn;
+
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.Distribution;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistLabelProvider;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public final class DistributionEditingSupport extends EditingSupport {
+
+    private ComboBoxViewerCellEditor cellEditor = null;
+    private final TableViewer viewer;
+    private final ChecklistEditor editor;
+    private final IDescriptionService descriptionService;
+    private final int columnIndex;
+
+    private static final Logger logger = Logger.getLogger(DistributionEditingSupport.class);
+
+    public DistributionEditingSupport(TableViewer viewer, ChecklistEditor checklistEditor, int columnIndex) {
+        super(viewer);
+        this.viewer = viewer;
+        this.columnIndex = columnIndex;
+        descriptionService = CdmStore.getService(IDescriptionService.class);
+        editor = checklistEditor;
+        cellEditor = new ComboBoxViewerCellEditor((Composite) viewer.getControl(), SWT.READ_ONLY);
+        cellEditor.setLabelProvider(new LabelProvider());
+        cellEditor.setContentProvider(new ArrayContentProvider());
+        // TODO set input
+        List<PresenceAbsenceTermBase> input = CdmStore.getTermManager()
+                .getPreferredTerms(PresenceAbsenceTermBase.class);
+        cellEditor.setInput(input);
+    }
+
+    @Override
+    protected CellEditor getCellEditor(Object element) {
+        return cellEditor;
+    }
+
+    @Override
+    protected boolean canEdit(Object element) {
+        return true;
+    }
+
+    @Override
+    protected Object getValue(Object element) {
+        if (element instanceof Taxon) {
+            Taxon taxon = (Taxon) element;
+            Distribution distributionForColumn = getDistributionForColumn(taxon);
+            if (distributionForColumn != null) {
+                distributionForColumn.getStatus().getTitleCache();
+            }
+            // return PresenceAbsenceTerms
+        }
+        return null;
+    }
+
+    @Override
+    protected void setValue(Object element, Object value) {
+        if (element instanceof Taxon && value instanceof PresenceAbsenceTermBase) {
+            Taxon taxon = (Taxon) element;
+            PresenceAbsenceTermBase occurenceStatus = (PresenceAbsenceTermBase) value;
+            Distribution distribution = getDistributionForColumn(taxon);
+            if (distribution != null) {
+                // change status for already exsiting distribution
+                distribution.setStatus(occurenceStatus);
+            } else {
+                createDistributionForColumn(taxon, occurenceStatus);
+            }
+            // viewer.update(distribution, null);
+            viewer.update(element, null);
+            viewer.refresh();
+            editor.setDirty(true);
+            editor.changed(element);
+            viewer.refresh();
+        }
+    }
+
+    private static final List<String> DESC_INIT_STRATEGY = Arrays.asList(new String[] { "descriptions",
+            "descriptions.*", "description.state" });
+
+    /**
+     *
+     * @param taxon
+     * @return
+     */
+    private Distribution getDistributionForColumn(Taxon taxon) {
+        List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null,
+                null, null, null, DESC_INIT_STRATEGY);
+        TableColumn column = viewer.getTable().getColumn(columnIndex);
+        for (TaxonDescription td : listTaxonDescriptions) {
+            for (DescriptionElementBase deb : td.getElements()) {
+                if (deb instanceof Distribution) {
+                    Distribution distribution = (Distribution) deb;
+                    if (column.getText().equalsIgnoreCase(distribution.getArea().getTitleCache())) {
+                        return distribution;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+    private void createDistributionForColumn(Taxon taxon, PresenceAbsenceTermBase occurenceStatus) {
+        TableColumn column = viewer.getTable().getColumn(columnIndex);
+
+        ChecklistLabelProvider labelProvider = new ChecklistLabelProvider();
+        List<DefinedTermBase<?>> namedAreas = labelProvider.getNamedAreas();
+        SortedSet<DefinedTermBase<?>> terms = (SortedSet<DefinedTermBase<?>>) labelProvider.getTermsOrderedByLabels(
+                namedAreas, CdmStore.getDefaultLanguage());
+
+        if (terms != null) {
+            for (DefinedTermBase term : terms) {
+                if (column.getText().equalsIgnoreCase(term.getTitleCache())) {
+                    NamedArea area = (NamedArea) term;
+                    Distribution distribution = Distribution.NewInstance(area, occurenceStatus);
+                    Set<TaxonDescription> descriptions = taxon.getDescriptions();
+                    if (descriptions != null) {
+                        for (TaxonDescription desc : descriptions) {
+                            // add to first taxon description
+                            desc.addElement(distribution);
+                            break;
+                        }
+                    } else {// there are no TaxonDescription yet.
+                        TaxonDescription td = TaxonDescription.NewInstance(taxon);
+                        td.addElement(distribution);
+                    }
+                }
+            }
+        }
+
+        return;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/RankEditingSupport.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/RankEditingSupport.java
new file mode 100644 (file)
index 0000000..9e59a05
--- /dev/null
@@ -0,0 +1,74 @@
+package eu.etaxonomy.taxeditor.editor.view.checklist.edit;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ComboBoxViewerCellEditor;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public final class RankEditingSupport extends EditingSupport{
+
+    private ComboBoxViewerCellEditor cellEditor = null;
+    private final TableViewer viewer;
+    private final ChecklistEditor editor;
+
+
+    private static final Logger logger = Logger.getLogger(RankEditingSupport.class);
+
+    public RankEditingSupport(TableViewer viewer, ChecklistEditor checklistEditor) {
+        super(viewer);
+        this.viewer = viewer;
+        editor = checklistEditor;
+        cellEditor = new ComboBoxViewerCellEditor((Composite) viewer.getControl(), SWT.READ_ONLY);
+        cellEditor.setLabelProvider(new LabelProvider());
+        cellEditor.setContentProvider(new ArrayContentProvider());
+        //TODO set input
+        List<Rank> input = CdmStore.getTermManager().getPreferredTerms(Rank.class);
+        cellEditor.setInput(input);
+    }
+
+    @Override
+    protected CellEditor getCellEditor(Object element) {
+        return cellEditor;
+    }
+
+    @Override
+    protected boolean canEdit(Object element) {
+        return true;
+    }
+
+    @Override
+    protected Object getValue(Object element) {
+        if (element instanceof Taxon) {
+            Taxon taxon = (Taxon)element;
+            Rank rank = (taxon.getName().getRank() != null)?taxon.getName().getRank() : null;
+            return rank;
+        }
+        return null;
+    }
+
+    @Override
+    protected void setValue(Object element, Object value) {
+        if (element instanceof Taxon && value instanceof Rank) {
+            Taxon taxon = (Taxon)element;
+            Rank rank = (Rank) value;
+            taxon.getName().setRank(rank);
+            viewer.update(element, null);
+            viewer.refresh();
+            editor.setDirty(true);
+            editor.changed(element);
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/filter/ChecklistEditorFilter.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/filter/ChecklistEditorFilter.java
new file mode 100644 (file)
index 0000000..bcbc27f
--- /dev/null
@@ -0,0 +1,51 @@
+package eu.etaxonomy.taxeditor.editor.view.checklist.filter;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+
+public class ChecklistEditorFilter extends ViewerFilter {
+
+    private String searchString;
+
+    public void setSearchText(String s) {
+        // Search must be a substring of the existing value
+        if(s.contains("*")){
+            s=s.replace("*", "");
+        }
+        this.searchString = "(?i).*" + s + ".*";
+    }
+
+    @Override
+    public boolean select(Viewer viewer, Object parentElement, Object element) {
+        if (searchString == null || searchString.length() == 0) {
+            return true;
+        }
+        Taxon taxon = (Taxon) element;
+        NonViralName<?> nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
+        Reference reference = HibernateProxyHelper.deproxy(nonVirlaName.getNomenclaturalReference(), Reference.class);
+        String rank = taxon.getName().getRank().toString();
+        //TaxonName
+        if (nonVirlaName.getNameCache()!=null && nonVirlaName.getNameCache().matches(searchString)) {
+            return true;
+        }
+        //Author
+        if (nonVirlaName.getAuthorshipCache() != null && nonVirlaName.getAuthorshipCache().matches(searchString)) {
+            return true;
+        }
+        //Reference
+        if(reference != null && reference.getAbbrevTitleCache().matches(searchString)){
+            return true;
+        }
+        //Rank
+        if (rank != null && rank.matches(searchString)) {
+            return true;
+        }
+        return false;
+    }
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionElementHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionElementHandler.java
new file mode 100644 (file)
index 0000000..b358658
--- /dev/null
@@ -0,0 +1,103 @@
+// $Id$
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.editor.view.checklist.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeSelection;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * <p>CreateDescriptionElementHandler class.</p>
+ *
+ * @author n.hoffmann
+ * @created 16.04.2009
+ * @version 1.0
+ */
+public class CreateDescriptionElementHandler extends AbstractHandler {
+
+       /*
+        * (non-Javadoc)
+        *
+        * @see
+        * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
+        * ExecutionEvent)
+        */
+    /** {@inheritDoc} */
+    @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+        IWorkbenchPart part = HandlerUtil.getActivePart(event);
+        IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part
+                : null;
+
+
+        DescriptionBase<?> description = null;
+
+        ISelection selection = HandlerUtil.getCurrentSelection(event);
+        Object selectedElement = null;
+        if (selection instanceof ITreeSelection) {
+            TreePath[] paths = ((ITreeSelection) selection).getPaths();
+            selectedElement = paths[0].getFirstSegment();
+        }
+        else if (selection instanceof IStructuredSelection) {
+            selectedElement = ((IStructuredSelection) selection).getFirstElement();
+        }
+        if (selectedElement instanceof DescriptionBase<?>) {
+            description = (DescriptionBase<?>) selectedElement;
+        }
+
+        if (description != null) {
+            AbstractPostOperation operation = null;
+            try {
+                // TODO use undo context specific to editor
+                operation = operationCreationInstance(event.getCommand().getName(), event, description, postOperationEnabled);
+                AbstractUtility.executeOperation(operation);
+            } catch (NotDefinedException e) {
+                AbstractUtility.warn(getClass(), "Command name not set");
+            }
+        } else {
+            AbstractUtility.error(getClass(), new IllegalArgumentException("Could not determine the taxon description"));
+            return null;
+        }
+        return null;
+
+    }
+
+    /**
+        * Added to make the Class more generic and limit the amount of code changes required
+        * @param label
+        * @param event
+        * @param taxon
+        * @param description
+        * @param postOperationEnabled
+        * @return
+        */
+       protected AbstractPostOperation operationCreationInstance(String label, ExecutionEvent event, DescriptionBase<?> description, IPostOperationEnabled postOperationEnabled) {
+               Feature feature = (Feature) ((Event) event.getTrigger()).data;
+               return new CreateDescriptionElementOperation(label, EditorUtil.getUndoContext(), description, feature, postOperationEnabled);
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionHandler.java
new file mode 100644 (file)
index 0000000..2ad00da
--- /dev/null
@@ -0,0 +1,88 @@
+// $Id$
+/**
+* Copyright (C) 2011 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.view.checklist.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateSpecimenDescriptionOperation;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * <p>AddDescriptionHandler class.</p>
+ *
+ * @author p.ciardelli
+ * @created 11.08.2009
+ * @version 1.0
+ */
+public class CreateDescriptionHandler extends AbstractHandler {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+        */
+       /** {@inheritDoc} */
+       @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+               IWorkbenchPart part = HandlerUtil.getActivePart(event);
+               IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
+
+               IEditorPart editor = HandlerUtil.getActiveEditor(event);
+               if (editor instanceof FormEditor) {
+                       editor = ((FormEditor) editor).getActiveEditor();
+               }
+               IEditorInput input = editor.getEditorInput();
+               AbstractPostOperation<?> operation;
+
+               // taxon description
+               if (input instanceof TaxonEditorInput) {
+                       Taxon taxon = ((TaxonEditorInput) input).getTaxon();
+                       try {
+                           operation = createTaxonOperation(event.getCommand().getName(), taxon, postOperationEnabled);
+                               AbstractUtility.executeOperation(operation);
+                       } catch (NotDefinedException e) {
+                               AbstractUtility.warn(getClass(), "Command name not set.");
+                       }
+               }
+               // specimen description
+               else if(part instanceof DescriptiveViewPart){
+                   Object viewerInput = ((DescriptiveViewPart)part).getViewer().getInput();
+                   if(viewerInput instanceof SpecimenOrObservationBase<?>){
+                       try {
+                           operation = new CreateSpecimenDescriptionOperation(event.getCommand().getName(), EditorUtil.getUndoContext(), (SpecimenOrObservationBase<?>) viewerInput, postOperationEnabled);
+                           AbstractUtility.executeOperation(operation);
+                       } catch (NotDefinedException e) {
+                           AbstractUtility.warn(getClass(), "Command name not set.");
+                       }
+                   }
+               }
+               return null;
+       }
+
+          /** {@inheritDoc} */
+    protected CreateTaxonDescriptionOperation createTaxonOperation(String eventLabel, Taxon taxon, IPostOperationEnabled postOperationEnabled) {
+        return new CreateTaxonDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxon, postOperationEnabled);
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/OpenDistributionHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/OpenDistributionHandler.java
new file mode 100644 (file)
index 0000000..051b06b
--- /dev/null
@@ -0,0 +1,65 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.editor.view.checklist.handler;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
+
+/**
+ * @author a.oppermann
+ * @date 15.05.2014
+ *
+ */
+public class OpenDistributionHandler extends AbstractHandler {
+
+    @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+
+        ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
+        ChecklistEditor editor = (ChecklistEditor) EditorUtil.getActiveEditor();
+
+        if (currentSelection instanceof IStructuredSelection) {
+
+            Object selectedElement = ((IStructuredSelection) currentSelection).getFirstElement();
+            if (selectedElement instanceof Taxon) {
+                TableViewer viewer = (TableViewer)editor.getViewer();
+                final Table table = viewer.getTable();
+
+                TableColumn column2 = table.getColumn(4);
+                column2.setWidth(100);
+                viewer.refresh();
+
+            }
+        }
+        return null;
+    }
+    private static final List<String> DESC_INIT_STRATEGY = Arrays.asList(new String[]{
+            "descriptions",
+            "descriptions.*",
+            "description.state"
+    });
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistDropdownSelectionListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistDropdownSelectionListener.java
new file mode 100644 (file)
index 0000000..68a1a94
--- /dev/null
@@ -0,0 +1,104 @@
+package eu.etaxonomy.taxeditor.editor.view.checklist.listener;
+
+import java.util.SortedSet;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.ToolItem;
+
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * Handles drop down menu selection. Available items are defined in the
+ * enumeration SearchOption.
+ *
+ * @author n.hoffmann
+ * @created Feb 2, 2010
+ * @version 1.0
+ */
+public class ChecklistDropdownSelectionListener extends SelectionAdapter {
+
+    private final Menu menu;
+    private final ToolItem dropdown;
+    private final ChecklistEditor editor;
+    private final SortedSet<DefinedTermBase> termSet;
+
+    public ChecklistDropdownSelectionListener(ToolItem dropdown, ChecklistEditor editor,
+            SortedSet<DefinedTermBase> termSet) {
+        this.dropdown = dropdown;
+        this.editor = editor;
+        this.termSet = termSet;
+        menu = new Menu(dropdown.getParent().getShell());
+    }
+
+    // SearchOption option
+    public void add(DefinedTermBase<DefinedTermBase> term) {
+        MenuItem menuItem = new MenuItem(menu, SWT.CHECK);
+        menuItem.setText(term.getTitleCache());
+        if (PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString())) {
+            menuItem.setSelection(true);
+        } else {
+            menuItem.setSelection(false);
+        }
+        menuItem.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent event) {
+                MenuItem selected = (MenuItem) event.widget;
+
+                TableViewer viewer = (TableViewer) editor.getViewer();
+                final Table table = viewer.getTable();
+                // TODO make it selectable according to selection event
+                TableColumn column = null;
+                DefinedTermBase<DefinedTermBase> selectedTerm = null;
+                if (termSet != null) {
+                    int i = 0;
+                    for (DefinedTermBase<DefinedTermBase> term : termSet) {
+                        if (term != null) {
+                            if (selected.getText().equalsIgnoreCase(term.getTitleCache())) {
+                                selectedTerm = term;
+                                column = table.getColumn(4 + i);
+                            }
+                            i++;
+                        }
+                    }
+                }
+                if (column != null && column.getWidth() == 0) {
+                    // save column status if shown or not
+                    if (selectedTerm != null) {
+                        PreferencesUtil.getPreferenceStore().setValue(selectedTerm.getUuid().toString(), true);
+                    }
+                    column.setWidth(100);
+                } else if (column != null) {
+                    if (selectedTerm != null) {
+                        PreferencesUtil.getPreferenceStore().setValue(selectedTerm.getUuid().toString(), false);
+                    }
+                    column.setWidth(0);
+                }
+                viewer.refresh();
+            }
+        });
+    }
+
+    @Override
+    public void widgetSelected(SelectionEvent event) {
+        if (event.detail == SWT.ARROW) {
+            ToolItem item = (ToolItem) event.widget;
+            Rectangle rect = item.getBounds();
+            Point pt = item.getParent().toDisplay(new Point(rect.x, rect.y));
+            menu.setLocation(pt.x, pt.y + rect.height);
+            menu.setVisible(true);
+        } else {
+            menu.setVisible(true);
+        }
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistFocusListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistFocusListener.java
new file mode 100644 (file)
index 0000000..ca4e4a8
--- /dev/null
@@ -0,0 +1,48 @@
+package eu.etaxonomy.taxeditor.editor.view.checklist.listener;
+
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
+
+public class ChecklistFocusListener implements FocusListener{
+
+   private final Text searchText;
+   private final ModifyListener modifyListener;
+
+    /**
+     *
+     */
+    public ChecklistFocusListener(Text searchText, ModifyListener modifyListener) {
+        this.searchText = searchText;
+        this.modifyListener = modifyListener;
+    }
+
+
+    @Override
+    public void focusGained(FocusEvent e) {
+        if ("type filter text".equals(searchText.getText())) {
+            searchText.setForeground(EditorUtil.getColor(Resources.SEARCH_VIEW_FOCUS));
+            searchText.setText("");
+        }
+    }
+
+    @Override
+    public void focusLost(FocusEvent e) {
+        if ("".equals(searchText.getText())) {
+            //TODO: set demo string
+            searchText.removeModifyListener(modifyListener);
+
+            searchText.setForeground(EditorUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
+            searchText.setText("type filter text");
+
+            searchText.addModifyListener(modifyListener);
+        }
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistModifyListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistModifyListener.java
new file mode 100644 (file)
index 0000000..1fe7a6f
--- /dev/null
@@ -0,0 +1,48 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.view.checklist.listener;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.taxeditor.editor.view.checklist.filter.ChecklistEditorFilter;
+
+/**
+ * @author alex
+ * @date 27.06.2014
+ *
+ */
+public class ChecklistModifyListener implements ModifyListener {
+
+    private final Text searchText;
+    private final TableViewer viewer;
+    private final ChecklistEditorFilter filter;
+
+    /**
+     *
+     */
+    public ChecklistModifyListener(TableViewer viewer, ChecklistEditorFilter filter, Text searchText) {
+        this.viewer = viewer;
+        this.filter = filter;
+        this.searchText = searchText;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
+     */
+    @Override
+    public void modifyText(ModifyEvent e) {
+        filter.setSearchText(searchText.getText());
+        viewer.refresh();
+    }
+
+}
index b912c7d97873c12f1da9b37d84531810ddb6821e..4b3a999c1fbd42794eda895cc62cd6888a25e973 100644 (file)
@@ -41,7 +41,9 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.IDescribable;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -172,7 +174,12 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
                        selection = new StructuredSelection(treeNodeOfSelection.getValue());
                    }
                }
-
+        else if(part instanceof ChecklistEditor){
+            if(selection instanceof StructuredSelection  && ((IStructuredSelection) selection).getFirstElement() instanceof Taxon){
+                Taxon taxon = (Taxon)((IStructuredSelection) selection).getFirstElement();
+                selection = new StructuredSelection(taxon);
+            }
+        }
                if(selection instanceof IStructuredSelection
                        && ((IStructuredSelection) selection).getFirstElement() instanceof IDescribable<?>
                        && part instanceof IPartContentHasFactualData){
diff --git a/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle.properties b/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle.properties
new file mode 100644 (file)
index 0000000..402c877
--- /dev/null
@@ -0,0 +1,42 @@
+#Properties file for eu.etaxonomy.taxeditor.navigation\r
+view.name = Search Result\r
+view.name.0 = Taxon Navigator\r
+view.name.1 = Polytomous Keys\r
+command.label = Taxon Navigator\r
+command.label.0 = Polytomous Keys\r
+command.label.1 = Edit\r
+menu.label = New\r
+command.label.2 = Taxon\r
+command.label.3 = Classification\r
+command.label.4 = Open in Checklist Editor\r
+command.label.5 = Edit\r
+command.label.6 = Change Accepted Taxon to Synonym\r
+command.label.7 = Move Taxon (with child taxa)\r
+command.label.8 = Import...\r
+command.label.9 = Export...\r
+command.label.10 = Delete\r
+command.label.11 = Refresh\r
+command.label.12 = Copy\r
+command.label.13 = Taxon\r
+command.label.14 = Classification\r
+command.label.15 = New\r
+command.label.16 = Edit\r
+menu.label.0 = Refresh\r
+command.label.17 = List\r
+command.label.18 = Key Nodes\r
+command.label.19 = Delete\r
+command.name = New Taxon Node\r
+command.name.0 = New Classification\r
+command.name.1 = Edit\r
+command.name.2 = Move Taxon\r
+command.name.3 = Refresh\r
+command.name.4 = Copy\r
+command.name.5 = Change Accepted Taxon to Synonym\r
+command.name.6 = New Polytomous Key\r
+command.name.7 = Edit Polytomous Key Nodes\r
+command.name.8 = Refresh Polytomous Key List\r
+command.name.9 = Refresh Polytomous Key Nodes\r
+view.name.2 = Taxonomic Tree\r
+navigatorContent.name = Classification\r
+navigatorContent.name.0 = TaxonNode\r
+navigatorContent.name.1 = Synonyms (experimental)
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_de.properties b/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_de.properties
new file mode 100644 (file)
index 0000000..c6c5e34
--- /dev/null
@@ -0,0 +1,42 @@
+#Properties file for eu.etaxonomy.taxeditor.navigation\r
+view.name = Suchergebnis\r
+view.name.0 = Taxon Navigator\r
+view.name.1 = Polytomous Keys\r
+command.label = Taxon Navigator\r
+command.label.0 = Polytomous Keys\r
+command.label.1 = Edit\r
+menu.label = Neu\r
+command.label.2 = Taxon\r
+command.label.3 = Klassifikation\r
+command.label.4 = \u00D6ffne im Checklisten Editor\r
+command.label.5 = Bearbeiten\r
+command.label.6 = Akzeptiertes Taxon zum Synonym umwandeln\r
+command.label.7 = Verschiebe Taxon (with child taxa)\r
+command.label.8 = Importieren\r
+command.label.9 = Exportieren\r
+command.label.10 = L\u00F6schen\r
+command.label.11 = Aktualisieren\r
+command.label.12 = Kopieren\r
+command.label.13 = Taxon\r
+command.label.14 = Klassifikation\r
+command.label.15 = Neu\r
+command.label.16 = Bearbeiten\r
+menu.label.0 = Aktualisieren\r
+command.label.17 = Liste\r
+command.label.18 = Key Nodes\r
+command.label.19 = L\u00F6schen\r
+command.name = Neuer Taxonknoten\r
+command.name.0 = Neue Klassifikation\r
+command.name.1 = Bearbeiten\r
+command.name.2 = Verschiebe Taxon\r
+command.name.3 = Refresh\r
+command.name.4 = Copy\r
+command.name.5 = Change Accepted Taxon to Synonym\r
+command.name.6 = New Polytomous Key\r
+command.name.7 = Edit Polytomous Key Nodes\r
+command.name.8 = Aktualisieren Polytomous Key List\r
+command.name.9 = Aktualisieren Polytomous Key Knoten\r
+view.name.2 = Taxonomiebaum\r
+navigatorContent.name = Klassifikation\r
+navigatorContent.name.0 = Taxonknoten\r
+navigatorContent.name.1 = Synonyme (experimental)
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_en.properties b/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_en.properties
new file mode 100644 (file)
index 0000000..402c877
--- /dev/null
@@ -0,0 +1,42 @@
+#Properties file for eu.etaxonomy.taxeditor.navigation\r
+view.name = Search Result\r
+view.name.0 = Taxon Navigator\r
+view.name.1 = Polytomous Keys\r
+command.label = Taxon Navigator\r
+command.label.0 = Polytomous Keys\r
+command.label.1 = Edit\r
+menu.label = New\r
+command.label.2 = Taxon\r
+command.label.3 = Classification\r
+command.label.4 = Open in Checklist Editor\r
+command.label.5 = Edit\r
+command.label.6 = Change Accepted Taxon to Synonym\r
+command.label.7 = Move Taxon (with child taxa)\r
+command.label.8 = Import...\r
+command.label.9 = Export...\r
+command.label.10 = Delete\r
+command.label.11 = Refresh\r
+command.label.12 = Copy\r
+command.label.13 = Taxon\r
+command.label.14 = Classification\r
+command.label.15 = New\r
+command.label.16 = Edit\r
+menu.label.0 = Refresh\r
+command.label.17 = List\r
+command.label.18 = Key Nodes\r
+command.label.19 = Delete\r
+command.name = New Taxon Node\r
+command.name.0 = New Classification\r
+command.name.1 = Edit\r
+command.name.2 = Move Taxon\r
+command.name.3 = Refresh\r
+command.name.4 = Copy\r
+command.name.5 = Change Accepted Taxon to Synonym\r
+command.name.6 = New Polytomous Key\r
+command.name.7 = Edit Polytomous Key Nodes\r
+command.name.8 = Refresh Polytomous Key List\r
+command.name.9 = Refresh Polytomous Key Nodes\r
+view.name.2 = Taxonomic Tree\r
+navigatorContent.name = Classification\r
+navigatorContent.name.0 = TaxonNode\r
+navigatorContent.name.1 = Synonyms (experimental)
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages.properties b/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages.properties
new file mode 100644 (file)
index 0000000..571b000
--- /dev/null
@@ -0,0 +1,10 @@
+SearchBar_0=Use "*" for wildcard searching\r
+SearchBar_1=Search\r
+SearchBar_2=Could not execute search\r
+SearchBar_3=Please type at least one character when using the "*" wildcard.\r
+SearchBar_4=Error opening search result.\r
+SearchBar_5=configuration menu clicked\r
+SearchBar_6=Taxa\r
+SearchBar_7=Synonyms\r
+SearchBar_8=Names (without taxa)\r
+SearchBar_9=Common Names\r
diff --git a/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_de.properties b/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_de.properties
new file mode 100644 (file)
index 0000000..314ea1b
--- /dev/null
@@ -0,0 +1,10 @@
+SearchBar_0=Benutze "*" f\u00FCr Platzhalter-Suche\r
+SearchBar_1=Suche\r
+SearchBar_2=Suche konnte nicht ausgef\u00FChrt werden\r
+SearchBar_3=Bitte geben Sie mindestens ein Zeichen, wenn Sie die "*" Platzhalter benutzen wollen\r
+SearchBar_4=Fehler beim f\u00fcffnen des Suchergebnisses\r
+SearchBar_5=Konfigurationsmen├╝ angeklickt\r
+SearchBar_6=Taxa\r
+SearchBar_7=Synonyme\r
+SearchBar_8=Namen (ohne Taxa)\r
+SearchBar_9=Umgangsprachliche Namen\r
diff --git a/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_en.properties b/eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_en.properties
new file mode 100644 (file)
index 0000000..571b000
--- /dev/null
@@ -0,0 +1,10 @@
+SearchBar_0=Use "*" for wildcard searching\r
+SearchBar_1=Search\r
+SearchBar_2=Could not execute search\r
+SearchBar_3=Please type at least one character when using the "*" wildcard.\r
+SearchBar_4=Error opening search result.\r
+SearchBar_5=configuration menu clicked\r
+SearchBar_6=Taxa\r
+SearchBar_7=Synonyms\r
+SearchBar_8=Names (without taxa)\r
+SearchBar_9=Common Names\r
index 0699eecc070b32902c6e0d8cfca6254459f7e2ba..25703253efd9a9a42b013ca2503ad5b3bdc20152 100644 (file)
@@ -6,4 +6,6 @@ bin.includes = META-INF/,\
                .,\
                plugin.xml,\
                icons/,\
-               p2.inf
+               p2.inf,\
+               OSGI-INF/
+
index b4361204aff0dd7cd72ff2562221237d9c480e87..940095c9c62ec9ceb132fb2177d10368ae27743a 100644 (file)
@@ -17,7 +17,7 @@
             class="eu.etaxonomy.taxeditor.navigation.search.SearchResultView"
             icon="icons/system-search.png"
             id="eu.etaxonomy.taxeditor.navigation.search.searchResultView"
-            name="Search Result"
+            name="%view.name"
             restorable="false">
       </view>
       <view
             class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator"
             icon="icons/preferences-system-windows.png"
             id="eu.etaxonomy.taxeditor.navigation.navigator"
-            name="Taxon Navigator"
+            name="%view.name.0"
             restorable="true">
       </view>
       <view
             allowMultiple="false"
             class="eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyViewPart"
             id="eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart"
-            name="Polytomous Keys"
+            name="%view.name.1"
             restorable="true">
       </view>
    </extension>
@@ -53,7 +53,7 @@
             locationURI="menu:eu.etaxonomy.taxeditor.menu.showView?before=eu.etaxonomy.taxeditor.editor.showViewMenu">
          <command
                commandId="org.eclipse.ui.views.showView"
-               label="Taxon Navigator"
+               label="%command.label"
                style="push">
             <parameter
                   name="org.eclipse.ui.views.showView.viewId"
@@ -62,7 +62,7 @@
          </command>
          <command
                commandId="org.eclipse.ui.views.showView"
-               label="Polytomous Keys"
+               label="%command.label.0"
                style="push">
             <parameter
                   name="org.eclipse.ui.views.showView.viewId"
@@ -74,7 +74,7 @@
             locationURI="popup:eu.etaxonomy.taxeditor.navigation.search.searchResultView">
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.command.editTaxon"
-               label="Edit"
+               label="%command.label.1"
                style="push">
          </command>
       </menuContribution>
             locationURI="popup:eu.etaxonomy.taxeditor.navigation.navigatorpopup">
          <menu
                id="eu.etaxonomy.navigation.menu.new"
-               label="New">
+               label="%menu.label">
             <command
                   commandId="eu.etaxonomy.taxeditor.navigation.command.create.taxonNode"
-                  label="Taxon"
+                  label="%command.label.2"
                   style="push">
             </command>
             <separator
             <command
                   commandId="eu.etaxonomy.taxeditor.navigation.create.classification"
                   id="eu.etaxonomy.taxeditor.navigation.create.classificationHandler"
-                  label="Classification"
+                  label="%command.label.3"
                   style="push">
             </command>
          </menu>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
+               icon="icons/edit_16x16.gif"
+               label="%command.label.4"
+               style="push">
+           <visibleWhen
+                 checkEnabled="true">
+              <and>
+                 <reference
+                       definitionId="isChecklistEditorEnabled">
+                 </reference>
+                 <or>
+                    <reference
+                          definitionId="isClassification">
+                    </reference>
+                    <reference
+                          definitionId="isTaxonNode">
+                    </reference>
+                 </or>
+              </and>
+            </visibleWhen>
+         </command>
          <separator
                name="taxeditor-navigation.separator1"
                visible="true">
          </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.command.update.editSelection"
-               label="Edit"
+               label="%command.label.5"
                style="push">       
             <visibleWhen
                   checkEnabled="true">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.navigator.command.update.changeAcceptedToSynonym"
-               label="Change Accepted Taxon to Synonym"
+               label="%command.label.6"
                style="push">
                <visibleWhen
                   checkEnabled="true">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.command.update.moveTaxon"
-               label="Move Taxon (with child taxa)"
+               label="%command.label.7"
                style="push">
             <visibleWhen
                   checkEnabled="true">
          </command-->
          <command
                commandId="org.eclipse.ui.file.import"
-               label="Import..."
+               label="%command.label.8"
                style="push">
          </command>
          <command
                commandId="org.eclipse.ui.file.export"
-               label="Export..."
+               label="%command.label.9"
                style="push">
          </command>
          <separator
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.10"
                style="push">
             <visibleWhen>
                <not>
          </separator>
          <command
                commandId="org.eclipse.ui.file.refresh"
-               label="Refresh"
+               label="%command.label.11"
                style="push">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.command.copyTaxonName"
-               label="Copy"
+               label="%command.label.12"
                style="push">
          </command>
       </menuContribution>
       <menuContribution
             locationURI="menu:eu.etaxonomy.navigation.menu.new">
          <command
-               commandId="eu.etaxonomy.taxeditor.navigation.create.classification"
-               id="eu.etaxonomy.taxeditor.navigation.create.classificationHandler"
-               label="Classification"
+               commandId="eu.etaxonomy.taxeditor.navigation.command.create.taxonNode"
+               label="%command.label.13"
                style="push">
          </command>
          <separator
-               name="eu.etaxonomy.navigation.menu.new.separator0"
+               name="eu.etaxonomy.navigation.menu.new.separator1"
                visible="true">
          </separator>
          <command
-               commandId="eu.etaxonomy.taxeditor.navigation.command.create.taxonNode"
-               label="Taxon"
+               commandId="eu.etaxonomy.taxeditor.navigation.create.classification"
+               id="eu.etaxonomy.taxeditor.navigation.create.classificationHandler"
+               label="%command.label.14"
                style="push">
          </command>
-         <separator
-               name="eu.etaxonomy.navigation.menu.new.separator1"
-               visible="true">
-         </separator>
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart">
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.newKey"
-               label="New"
+               label="%command.label.15"
                style="push">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.editNodes"
-               label="Edit"
+               label="%command.label.16"
                style="push">
          </command>
          <menu
-               label="Refresh">
+               label="%menu.label.0">
             <command
                   commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.refreshKeyList"
-                  label="List"
+                  label="%command.label.17"
                   style="push">
             </command>
             <command
                   commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.refreshKeyNodes"
-                  label="Key Nodes"
+                  label="%command.label.18"
                   style="push">
             </command>
          </menu>
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.19"
                style="push">
          </command>
          
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.NewTaxonNodeHandler"
             id="eu.etaxonomy.taxeditor.navigation.command.create.taxonNode"
-            name="New Taxon Node">
+            name="%command.name">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.NewClassificationHandler"
             id="eu.etaxonomy.taxeditor.navigation.create.classification"
-            name="New Classification">
+            name="%command.name.0">
       </command>
    </extension>
    <extension
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.EditHandler"
             id="eu.etaxonomy.taxeditor.navigation.command.update.editSelection"
-            name="Edit">
+            name="%command.name.1">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.MoveTaxonHandler"
             id="eu.etaxonomy.taxeditor.navigation.command.update.moveTaxon"
-            name="Move Taxon">
+            name="%command.name.2">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.RefreshTreeHandler"
             id="org.eclipse.ui.file.refresh"
-            name="Refresh">
+            name="%command.name.3">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.CopyHandler"
             id="eu.etaxonomy.taxeditor.navigation.command.copyTaxonName"
-            name="Copy">
+            name="%command.name.4">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.ChangeAcceptedTaxonToSynonymHandler"
             id="eu.etaxonomy.taxeditor.navigator.command.update.changeAcceptedToSynonym"
-            name="Change Accepted Taxon to Synonym">
+            name="%command.name.5">
       </command>
    </extension>
    <extension
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.NewPolytomousKeyHandler"
             id="eu.etaxonomy.taxeditor.navigation.key.polytomous.newKey"
-            name="New Polytomous Key">
+            name="%command.name.6">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.EditPolytomousKeyNodesHandler"
             id="eu.etaxonomy.taxeditor.navigation.key.polytomous.editNodes"
-            name="Edit Polytomous Key Nodes">
+            name="%command.name.7">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.RefreshPolytomousKeyListHandler"
             id="eu.etaxonomy.taxeditor.navigation.key.polytomous.refreshKeyList"
-            name="Refresh Polytomous Key List">
+            name="%command.name.8">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.RefreshPolytomousKeyNodesHandler"
             id="eu.etaxonomy.taxeditor.navigation.key.polytomous.refreshKeyNodes"
-            name="Refresh Polytomous Key Nodes">
+            name="%command.name.9">
       </command>
    </extension>
    <extension
             class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator"
             icon="icons/edit_16x16.gif"
             id="eu.etaxonomy.taxeditor.navigation.navigator"
-            name="Taxonomic Tree"/>
+            name="%view.name.2"/>
    </extension>
    <extension
          point="org.eclipse.ui.navigator.navigatorContent">
             contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.ClassificationContentProvider"
             id="eu.etaxonomy.taxeditor.navigation.classificationContent"
             labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.ClassificationLabelProvider"
-            name="Classification">
+            name="%navigatorContent.name">
          <triggerPoints>
             <instanceof
                   value="eu.etaxonomy.taxeditor.navigation.navigator.Root">
             contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodeContentProvider"
             id="eu.etaxonomy.taxeditor.navigation.taxonNodeContent"
             labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodeLabelProvider"
-            name="TaxonNode">
+            name="%navigatorContent.name.0">
          <triggerPoints>
             <or>
                <instanceof
                </instanceof>
                <and>
                   <instanceof
-                     value="eu.etaxonomy.cdm.model.taxon.TaxonomicTree">
+                     value="eu.etaxonomy.cdm.model.taxon.Classification">
                   </instanceof>
                   <test
                      forcePluginActivation="true"
                         value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
                   </instanceof>
                   <instanceof
-                        value="eu.etaxonomy.cdm.model.taxon.TaxonomicTree">
+                        value="eu.etaxonomy.cdm.model.taxon.Classification">
                   </instanceof>
                </or>
             </possibleDropTargets>
             contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.SynonymContentProvider"
             id="eu.etaxonomy.taxeditor.navigation.synonymContent"
             labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.SynonymLabelProvider"
-            name="Synonyms (experimental)"
+            name="%navigatorContent.name.1"
             priority="highest">
          <triggerPoints>
             <and>
          </adapter>
       </factory>
    </extension>
-   <extension
+      <extension
          point="org.eclipse.core.expressions.propertyTesters">
       <propertyTester
             class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester"
             properties="hasTaxa"
             type="eu.etaxonomy.cdm.model.taxon.TaxonomicTree">
       </propertyTester>
+      <propertyTester
+            class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester"
+            id="eu.etaxonomy.taxeditor.propertytests.navigatorPropertyTester"
+            namespace="eu.etaxonomy.taxeditor.propertytests"
+            properties="hasTaxa"
+            type="eu.etaxonomy.cdm.model.taxon.Classification">
+      </propertyTester>
+   <propertyTester
+         class="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester"
+         id="eu.etaxonomy.taxeditor.preferences.propertyTester"
+         namespace="eu.etaxonomy.taxeditor.preferences.propertyTester"
+         properties="isChecklistEditorEnabled"
+         type="org.eclipse.jface.viewers.IStructuredSelection">
+   </propertyTester>
    </extension>
    <extension
          point="org.eclipse.core.expressions.definitions">
             id="isTaxonNode">
          <with
                variable="selection">
-            <iterate>
+            <iterate
+                  ifEmpty="false">
                <instanceof
                      value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
                </instanceof>
          </with>
       </definition>
       <definition
-            id="isTaxonomicTree">
+            id="isSynonymNode">
          <with
                variable="selection">
-            <iterate>
+            <iterate
+                  ifEmpty="false">
                <instanceof
-                     value="eu.etaxonomy.cdm.model.taxon.TaxonomicTree">
+                     value="eu.etaxonomy.cdm.model.taxon.Synonym">
                </instanceof>
             </iterate>
          </with>
       </definition>
       <definition
-            id="isSynonymNode">
+            id="isClassification">
          <with
                variable="selection">
-            <iterate>
+            <iterate
+                  ifEmpty="false">
                <instanceof
-                     value="eu.etaxonomy.cdm.model.taxon.Synonym">
+                     value="eu.etaxonomy.cdm.model.taxon.Classification">
                </instanceof>
             </iterate>
          </with>
       </definition>
+      <definition
+            id="isChecklistEditorEnabled">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.preferences.propertyTester.isChecklistEditorEnabled">
+            </test>
+         </with>
+      </definition>
    </extension>
 </plugin>
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/Messages.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/Messages.java
new file mode 100644 (file)
index 0000000..5d3c21a
--- /dev/null
@@ -0,0 +1,38 @@
+// $Id$\r
+/**\r
+ * Copyright (C) 2014 EDIT\r
+ * European Distributed Institute of Taxonomy\r
+ * http://www.e-taxonomy.eu\r
+ *\r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+package eu.etaxonomy.taxeditor.navigation.search;\r
+\r
+import org.eclipse.osgi.util.NLS;\r
+\r
+/**\r
+ * @author d.schild\r
+ * @date 18.06.2014\r
+ *\r
+ */\r
+public class Messages extends NLS {\r
+    private static final String BUNDLE_NAME = "OSGI-INF/l10n/messages"; //$NON-NLS-1$\r
+    public static String SearchBar_0;\r
+    public static String SearchBar_1;\r
+    public static String SearchBar_2;\r
+    public static String SearchBar_3;\r
+    public static String SearchBar_4;\r
+    public static String SearchBar_5;\r
+    public static String SearchBar_6;\r
+    public static String SearchBar_7;\r
+    public static String SearchBar_8;\r
+    public static String SearchBar_9;\r
+    static {\r
+        // initialize resource bundle\r
+        NLS.initializeMessages(BUNDLE_NAME, Messages.class);\r
+    }\r
+\r
+    private Messages() {\r
+    }\r
+}\r
index 347a5998770085ca81c1324af11cd7508e6e94a3..dccf5decd285aa4531b398c4ac0bcba618c9be0f 100644 (file)
@@ -53,7 +53,7 @@ public class SearchBar extends WorkbenchWindowControlContribution{
        private Text text_search;
        private String secondaryId;
 
-       private final String defaultText = "Use \"*\" for wildcard searching";
+       private final String defaultText = Messages.SearchBar_0;
 
        final private ConfigurationSelectionListener configurationListener = new ConfigurationSelectionListener();
 
@@ -89,7 +89,7 @@ public class SearchBar extends WorkbenchWindowControlContribution{
                final ToolBar toolBar = new ToolBar(composite, SWT.NULL);
 
                ToolItem toolItem = new ToolItem(toolBar, SWT.DROP_DOWN | SWT.BORDER);
-               toolItem.setText("Search");
+               toolItem.setText(Messages.SearchBar_1);
 
                DropdownSelectionListener dropdownListener = new DropdownSelectionListener(
                                toolItem);
@@ -177,7 +177,7 @@ public class SearchBar extends WorkbenchWindowControlContribution{
                }
                
                if("*".equals(searchString.trim())){
-                       NavigationUtil.warningDialog("Could not execute search", this, "Please type at least one character when using the \"*\" wildcard.");
+                       NavigationUtil.warningDialog(Messages.SearchBar_2, this, Messages.SearchBar_3);
                        return;
                }
                
@@ -214,7 +214,7 @@ public class SearchBar extends WorkbenchWindowControlContribution{
                                                        IWorkbenchPage.VIEW_ACTIVATE);
                        ((SearchResultView) resultsView).performSearch(configurator);
                } catch (PartInitException e) {
-                       NavigationUtil.error(this.getClass(), "Error opening search result.", e);
+                       NavigationUtil.error(this.getClass(), Messages.SearchBar_4, e);
                }
        }
 
@@ -275,7 +275,7 @@ public class SearchBar extends WorkbenchWindowControlContribution{
                 */
                @Override
                public void widgetSelected(SelectionEvent e) {
-                       NavigationUtil.info("configuration menu clicked");
+                       NavigationUtil.info(Messages.SearchBar_5);
                        SearchOption option = (SearchOption) e.widget.getData();
 
                        switch (option){
@@ -314,10 +314,10 @@ public class SearchBar extends WorkbenchWindowControlContribution{
         * @version 1.0
         */
        enum SearchOption {
-               TAXON("Taxa"), 
-               SYNONYM("Synonyms"), 
-               NAME("Names (without taxa)"), 
-               COMMON_NAME("Common Names");
+               TAXON(Messages.SearchBar_6), 
+               SYNONYM(Messages.SearchBar_7), 
+               NAME(Messages.SearchBar_8), 
+               COMMON_NAME(Messages.SearchBar_9);
 
                private final String label;
 
diff --git a/eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle.properties b/eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle.properties
new file mode 100644 (file)
index 0000000..e0e4fc2
--- /dev/null
@@ -0,0 +1,4 @@
+#Properties file for eu.etaxonomy.taxeditor.printpublisher\r
+category.name = Print Publishing\r
+command.label = Generate PDF\r
+command.name = Generate PDF
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle_de.properties b/eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle_de.properties
new file mode 100644 (file)
index 0000000..88df08a
--- /dev/null
@@ -0,0 +1,4 @@
+#Properties file for eu.etaxonomy.taxeditor.printpublisher\r
+category.name = Print Publishing\r
+command.label = Erzeuge PDF\r
+command.name = Erzeuge PDF
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle_en.properties b/eu.etaxonomy.taxeditor.printpublisher/OSGI-INF/l10n/bundle_en.properties
new file mode 100644 (file)
index 0000000..e0e4fc2
--- /dev/null
@@ -0,0 +1,4 @@
+#Properties file for eu.etaxonomy.taxeditor.printpublisher\r
+category.name = Print Publishing\r
+command.label = Generate PDF\r
+command.name = Generate PDF
\ No newline at end of file
index 5589fdf944c710f9aece4c51cdced1f4baf7770c..4b96d06737c3b4f8ac67640fb99dce26b694d8bd 100644 (file)
@@ -2,4 +2,7 @@ source.. = src/main/java/
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
-               p2.inf
+               p2.inf,\
+               OSGI-INF/l10n/bundle.properties,\
+               OSGI-INF/l10n/bundle_de.properties,\
+               OSGI-INF/l10n/bundle_en.properties
index baacae2bd29c1ebcb93b2f628e94d17c1e7e8209..c8e8b958205547de33feed607690acaa7080b9e9 100644 (file)
@@ -5,7 +5,7 @@
          point="org.eclipse.ui.exportWizards">
          <category
             id="print-publisher.category"
-            name="Print Publishing">
+            name="%category.name">
       </category>
       <wizard
             category="print-publisher.category"
@@ -37,7 +37,7 @@
       <command
             defaultHandler="eu.etaxonomy.taxeditor.printpublisher.handler.GeneratePdfHandler"
             id="eu.etaxonomy.printpublisher.plugin.generatePdf"
-            name="Generate PDF">
+            name="%command.name">
       </command>
    </extension>
 -->
index f3a5d62f5f363ffda234e6ec746fe8e6ce0b550b..07a0fb8de23f3ad92b63f84242c1034fa6d81c12 100644 (file)
@@ -236,3 +236,4 @@ Bundle-ClassPath: .,
  xpp3_min-1.1.4c.jar,
  xstream-1.4.4.jar,
  yjp-controller-api-redist-9.0.8.jar
+Bundle-Localization: OSGI-INF/l10n/bundle
diff --git a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
new file mode 100644 (file)
index 0000000..dc98244
--- /dev/null
@@ -0,0 +1,126 @@
+#Properties file for eu.etaxonomy.taxeditor.store\r
+page.name = Taxonomic Editor\r
+page.name.0 = Description\r
+page.name.1 = Features\r
+page.name.2 = Distribution Status\r
+page.name.3 = Taxonomic\r
+page.name.4 = Nomenclatural Code\r
+page.name.5 = Ranks\r
+page.name.6 = Nomenclatural Status Type\r
+page.name.7 = Name Relationship Type\r
+page.name.8 = Taxon Relationship Type\r
+page.name.9 = Specimen Type Designation Status\r
+page.name.10 = Available Languages\r
+page.name.11 = Marker Types\r
+page.name.12 = Extension Types\r
+page.name.13 = Name Type Designation Status\r
+page.name.14 = Named Area Type\r
+page.name.15 = Matching (Experimental)\r
+page.name.16 = NonViralName Matching Strategy\r
+page.name.17 = Reference Matching Strategy\r
+page.name.18 = Team or Person Matching Strategy\r
+page.name.19 = Stage\r
+page.name.20 = Preservation Method\r
+page.name.21 = Feature Tree\r
+page.name.22 = Default Feature Trees\r
+page.name.23 = Language\r
+page.name.24 = Mobot Open Url\r
+page.name.25 = Type Designations\r
+view.name = Datasource\r
+view.name.0 = Progress\r
+view.name.1 = Message\r
+view.name.2 = Reporting\r
+view.name.3 = Supplemental Data\r
+view.name.4 = Details\r
+view.name.5 = Use Records\r
+view.name.6 = Derivate Search\r
+editor.name = Defined Term Editor\r
+menu.label = Show View\r
+command.label = Derivate Search\r
+command.label.0 = Details\r
+command.label.1 = Supplemental\r
+command.label.2 = Datasource\r
+command.label.3 = Messages\r
+command.label.4 = Reporting\r
+command.label.5 = Switch User\r
+command.label.6 = Connect\r
+command.label.7 = New\r
+command.label.8 = Edit\r
+command.label.9 = Delete\r
+command.label.10 = Close Active Connection\r
+command.label.11 = Update Datamodel\r
+menu.label.0 = New\r
+command.label.12 = Vocabulary\r
+command.label.13 = Defined Term\r
+command.label.14 = Delete\r
+extension.name = Popup Menu Commands\r
+command.name = Connect Datasource\r
+command.name.0 = Edit Datasource\r
+command.name.1 = Create Datasource\r
+command.name.2 = Close Active Connection\r
+command.name.3 = Update Datasource\r
+command.name.4 = Show Login Window\r
+command.name.5 = Open Defined Term Editor\r
+commandParameter.name = inputType\r
+commandParameter.name.0 = inputType\r
+command.name.6 = New Defined Term\r
+command.name.7 = New Term Vocabulary\r
+category.name = CDM\r
+wizard.name = TCS\r
+wizard.name.0 = Berlin Model\r
+wizard.name.1 = Endnote\r
+wizard.name.2 = Excel Normal Explicit Taxa\r
+wizard.name.3 = ABCD\r
+wizard.name.4 = SDD\r
+wizard.name.5 = Specimen CDM Excel\r
+category.name.0 = CDM\r
+wizard.name.6 = JAXB\r
+wizard.name.7 = Berlin Model\r
+category.name.1 = Excel\r
+wizard.name.8 = SDD\r
+wizard.name.9 = DwC-A\r
+wizard.name.10 = Reference\r
+wizard.name.11 = Name\r
+wizard.name.12 = Team\r
+wizard.name.13 = Person\r
+wizard.name.14 = Specimen\r
+wizard.name.15 = Polytomous Key\r
+category.name.2 = CDM\r
+wizard.name.16 = Taxon\r
+wizard.name.17 = Classification\r
+themeElementCategory.label = Taxonomic Editor\r
+themeElementCategory.description = Color and font definitions for the EDIT Taxonomic Editor\r
+colorDefinition.label = List Background\r
+colorDefinition.label.0 = Global Text Color\r
+colorDefinition.label.1 = Global Color Composite Background\r
+colorDefinition.label.2 = Global Color Composite Irrelevant\r
+colorDefinition.label.3 = Global Text Color Disabled\r
+colorDefinition.label.4 = Global Background Color Disabled\r
+themeElementCategory.label.0 = Details View\r
+themeElementCategory.description.0 = Colors and fonts for the details view\r
+colorDefinition.label.5 = Entity Element List Background Odd\r
+colorDefinition.label.6 = Entity Element List Background Even\r
+themeElementCategory.label.1 = Name Editor\r
+themeElementCategory.description.1 = Colors and fonts for the name editor\r
+colorDefinition.label.7 = Container Background\r
+colorDefinition.label.8 = Container Selected Focus\r
+colorDefinition.label.9 = Container Selected\r
+colorDefinition.label.10 = Container Drag Enter\r
+fontDefinition.label = Accepted Taxon Font\r
+fontDefinition.label.0 = Synonym Font\r
+fontDefinition.label.1 = Misapplication Font\r
+fontDefinition.label.2 = Concept Font\r
+fontDefinition.label.3 = Default Font\r
+themeElementCategory.label.2 = Search View\r
+themeElementCategory.description.2 = Colors and fonts for the search view\r
+colorDefinition.label.11 = Search View Foreground\r
+colorDefinition.label.12 = Search View Focus\r
+fontDefinition.label.4 = Accepted font\r
+fontDefinition.description = The font that is used for accepted taxa in the search result list.\r
+fontDefinition.label.5 = Synonym font\r
+fontDefinition.description.0 = The font that is used for synonyms in the search result list.\r
+fontDefinition.label.6 = Other font\r
+fontDefinition.description.1 = The font used by default in the search result list.\r
+colorDefinition.label.13 = Parse Error\r
+colorDefinition.label.14 = Disabled Name Editor Field\r
+colorDefinition.label.15 = Editor On Error
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
new file mode 100644 (file)
index 0000000..94c9770
--- /dev/null
@@ -0,0 +1,126 @@
+#Properties file for eu.etaxonomy.taxeditor.store, German
+page.name = Taxonomischer Editor
+page.name.0 = Beschreibung
+page.name.1 = Merkmal
+page.name.2 = Verbreitungsstatus
+page.name.3 = Taxonomisch
+page.name.4 = Nomenklaturcode
+page.name.5 = R\u00e4nge
+page.name.6 = Nomenklaturstatus Typ
+page.name.7 = Beziehungstyp Name
+page.name.8 = Beziehungstyp Taxon
+page.name.9 = Belegtyp Bezeichnungsstatus
+page.name.10 = Verf\u00fcgbare Sprachen
+page.name.11 = Markertypen
+page.name.12 = Erweiterungstypen
+page.name.13 = Namenstyp Bezeichnungsstatus
+page.name.14 = Benannte Gebiete
+page.name.15 = Matching (Experimental)
+page.name.16 = NonViralName Matching Strategie
+page.name.17 = Referenz Matching Strategie
+page.name.18 = Team oder Person Matching Strategie
+page.name.19 = Stufe (Stage)
+page.name.20 = Erhaltungs-(Preservation) Methode
+page.name.21 = Merkmalsbaum
+page.name.22 = Standard Merkmalsbaum
+page.name.23 = Sprache
+page.name.24 = Mobot Open Url
+page.name.25 = Typ Bezeichnungen
+view.name = Datenquelle
+view.name.0 = Fortschritt
+view.name.1 = Nachrichten
+view.name.2 = Berichte
+view.name.3 = Zusatzdaten
+view.name.4 = Details
+view.name.5 = Benutze Datensatz
+view.name.6 = Suche Derivate
+editor.name = Editor f\u00fcr definierte Begriffe 
+menu.label = Zeige Ansicht
+command.label = Derivatsuche
+command.label.0 = Details
+command.label.1 = Zusatz
+command.label.2 = Datenquelle
+command.label.3 = Fehlermeldungen
+command.label.4 = Berichte
+command.label.5 = Benutzer wechseln
+command.label.6 = Verbinden
+command.label.7 = Neu
+command.label.8 = Bearbeiten
+command.label.9 = L\u00f6schen
+command.label.10 = Schlie\u00dfe aktive Verbindung
+command.label.11 = Aktualisiere Datenmodel
+menu.label.0 = Neu
+command.label.12 = Vokabular
+command.label.13 = Definierter Begriff
+command.label.14 = L\u00f6schen
+extension.name = Popup Men\u00fc Befehle
+command.name = Verbinde Datenquelle
+command.name.0 = Bearbeite Datenquelle
+command.name.1 = Erstelle Datenquelle
+command.name.2 = Schie\u00dfe aktive Verbindungen
+command.name.3 = Aktualisiere Datenquellen
+command.name.4 = Zeige Login Window
+command.name.5 = \u00d6ffne Editor f\u00fcr definierte Begriffe
+commandParameter.name = inputTyp
+commandParameter.name.0 = inputTyp
+command.name.6 = Neuer definierter Begriff
+command.name.7 = Neues Begriffsvokabular
+category.name = CDM
+wizard.name = TCS
+wizard.name.0 = Berlin Modell
+wizard.name.1 = Endnote
+wizard.name.2 = Excel Normal Explicit Taxa
+wizard.name.3 = ABCD
+wizard.name.4 = SDD
+wizard.name.5 = Beleg CDM Excel
+category.name.0 = CDM
+wizard.name.6 = JAXB
+wizard.name.7 = Berlin Model
+category.name.1 = Excel
+wizard.name.8 = SDD
+wizard.name.9 = DwC-A
+wizard.name.10 = Referenz
+wizard.name.11 = Name
+wizard.name.12 = Team
+wizard.name.13 = Person
+wizard.name.14 = Beleg
+wizard.name.15 = Polytomous Key
+category.name.2 = CDM
+wizard.name.16 = Taxon
+wizard.name.17 = Klassifikation
+themeElementCategory.label = Taxonomischer Editor
+themeElementCategory.description = Farb- und Schriftdefinitionen f\u00fcr den EDIT Taxonomischen Editor
+colorDefinition.label = Liste Hintergrund
+colorDefinition.label.0 = Globale Textfarbe
+colorDefinition.label.1 = Globale Farbe Composite Hintergrund
+colorDefinition.label.2 = Globale Composite Farbe irrelevant
+colorDefinition.label.3 = Globale Textfarbe gesperrt
+colorDefinition.label.4 = Globale Hintergrundfarbe gesperrt
+themeElementCategory.label.0 = Ansicht Details
+themeElementCategory.description.0 = Farben und Schriften f\u00fcr die Detailansicht
+colorDefinition.label.5 = Entity Element List Background Odd
+colorDefinition.label.6 = Entity Element List Background Even
+themeElementCategory.label.1 = Namenseditor
+themeElementCategory.description.1 = Farben und Schriften f\u00fcr den Namenseditor
+colorDefinition.label.7 = Container Hintergrund
+colorDefinition.label.8 = Container ausgew\u00e4hlter Fokus
+colorDefinition.label.9 = Container ausgew\u00e4hlt
+colorDefinition.label.10 = Container Drag Enter
+fontDefinition.label = Schrift akzeptiertes Taxon
+fontDefinition.label.0 = Schrift Synonyme
+fontDefinition.label.1 = Schrift Fehlanwendungen
+fontDefinition.label.2 = Schrift Konzepte
+fontDefinition.label.3 = Schrift Normal
+themeElementCategory.label.2 = Suche Ansicht
+themeElementCategory.description.2 = Farben und Schriften f\u00fcr die Suchansicht
+colorDefinition.label.11 = Suche Ansicht Fordergrund
+colorDefinition.label.12 = Suche Ansicht Fokus
+fontDefinition.label.4 = Schrift f\u00fcr Akzeptierte
+fontDefinition.description = Die Schrift f\u00fcr akzeptierte Taxa in den Suchergebnissen.
+fontDefinition.label.5 = Synonymschrift
+fontDefinition.description.0 = Die Schrift f\u00fcr Synonyme in den Suchergebnissen.
+fontDefinition.label.6 = Andere Schrift
+fontDefinition.description.1 = Die Schrift die normalerweise in den Suchergebnissen benutzt wird.
+colorDefinition.label.13 = Fehler beim Parsing
+colorDefinition.label.14 = Gesperrtes Namenseditierfeld
+colorDefinition.label.15 = Editor fehlerhaft
diff --git a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_en.properties b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_en.properties
new file mode 100644 (file)
index 0000000..dc98244
--- /dev/null
@@ -0,0 +1,126 @@
+#Properties file for eu.etaxonomy.taxeditor.store\r
+page.name = Taxonomic Editor\r
+page.name.0 = Description\r
+page.name.1 = Features\r
+page.name.2 = Distribution Status\r
+page.name.3 = Taxonomic\r
+page.name.4 = Nomenclatural Code\r
+page.name.5 = Ranks\r
+page.name.6 = Nomenclatural Status Type\r
+page.name.7 = Name Relationship Type\r
+page.name.8 = Taxon Relationship Type\r
+page.name.9 = Specimen Type Designation Status\r
+page.name.10 = Available Languages\r
+page.name.11 = Marker Types\r
+page.name.12 = Extension Types\r
+page.name.13 = Name Type Designation Status\r
+page.name.14 = Named Area Type\r
+page.name.15 = Matching (Experimental)\r
+page.name.16 = NonViralName Matching Strategy\r
+page.name.17 = Reference Matching Strategy\r
+page.name.18 = Team or Person Matching Strategy\r
+page.name.19 = Stage\r
+page.name.20 = Preservation Method\r
+page.name.21 = Feature Tree\r
+page.name.22 = Default Feature Trees\r
+page.name.23 = Language\r
+page.name.24 = Mobot Open Url\r
+page.name.25 = Type Designations\r
+view.name = Datasource\r
+view.name.0 = Progress\r
+view.name.1 = Message\r
+view.name.2 = Reporting\r
+view.name.3 = Supplemental Data\r
+view.name.4 = Details\r
+view.name.5 = Use Records\r
+view.name.6 = Derivate Search\r
+editor.name = Defined Term Editor\r
+menu.label = Show View\r
+command.label = Derivate Search\r
+command.label.0 = Details\r
+command.label.1 = Supplemental\r
+command.label.2 = Datasource\r
+command.label.3 = Messages\r
+command.label.4 = Reporting\r
+command.label.5 = Switch User\r
+command.label.6 = Connect\r
+command.label.7 = New\r
+command.label.8 = Edit\r
+command.label.9 = Delete\r
+command.label.10 = Close Active Connection\r
+command.label.11 = Update Datamodel\r
+menu.label.0 = New\r
+command.label.12 = Vocabulary\r
+command.label.13 = Defined Term\r
+command.label.14 = Delete\r
+extension.name = Popup Menu Commands\r
+command.name = Connect Datasource\r
+command.name.0 = Edit Datasource\r
+command.name.1 = Create Datasource\r
+command.name.2 = Close Active Connection\r
+command.name.3 = Update Datasource\r
+command.name.4 = Show Login Window\r
+command.name.5 = Open Defined Term Editor\r
+commandParameter.name = inputType\r
+commandParameter.name.0 = inputType\r
+command.name.6 = New Defined Term\r
+command.name.7 = New Term Vocabulary\r
+category.name = CDM\r
+wizard.name = TCS\r
+wizard.name.0 = Berlin Model\r
+wizard.name.1 = Endnote\r
+wizard.name.2 = Excel Normal Explicit Taxa\r
+wizard.name.3 = ABCD\r
+wizard.name.4 = SDD\r
+wizard.name.5 = Specimen CDM Excel\r
+category.name.0 = CDM\r
+wizard.name.6 = JAXB\r
+wizard.name.7 = Berlin Model\r
+category.name.1 = Excel\r
+wizard.name.8 = SDD\r
+wizard.name.9 = DwC-A\r
+wizard.name.10 = Reference\r
+wizard.name.11 = Name\r
+wizard.name.12 = Team\r
+wizard.name.13 = Person\r
+wizard.name.14 = Specimen\r
+wizard.name.15 = Polytomous Key\r
+category.name.2 = CDM\r
+wizard.name.16 = Taxon\r
+wizard.name.17 = Classification\r
+themeElementCategory.label = Taxonomic Editor\r
+themeElementCategory.description = Color and font definitions for the EDIT Taxonomic Editor\r
+colorDefinition.label = List Background\r
+colorDefinition.label.0 = Global Text Color\r
+colorDefinition.label.1 = Global Color Composite Background\r
+colorDefinition.label.2 = Global Color Composite Irrelevant\r
+colorDefinition.label.3 = Global Text Color Disabled\r
+colorDefinition.label.4 = Global Background Color Disabled\r
+themeElementCategory.label.0 = Details View\r
+themeElementCategory.description.0 = Colors and fonts for the details view\r
+colorDefinition.label.5 = Entity Element List Background Odd\r
+colorDefinition.label.6 = Entity Element List Background Even\r
+themeElementCategory.label.1 = Name Editor\r
+themeElementCategory.description.1 = Colors and fonts for the name editor\r
+colorDefinition.label.7 = Container Background\r
+colorDefinition.label.8 = Container Selected Focus\r
+colorDefinition.label.9 = Container Selected\r
+colorDefinition.label.10 = Container Drag Enter\r
+fontDefinition.label = Accepted Taxon Font\r
+fontDefinition.label.0 = Synonym Font\r
+fontDefinition.label.1 = Misapplication Font\r
+fontDefinition.label.2 = Concept Font\r
+fontDefinition.label.3 = Default Font\r
+themeElementCategory.label.2 = Search View\r
+themeElementCategory.description.2 = Colors and fonts for the search view\r
+colorDefinition.label.11 = Search View Foreground\r
+colorDefinition.label.12 = Search View Focus\r
+fontDefinition.label.4 = Accepted font\r
+fontDefinition.description = The font that is used for accepted taxa in the search result list.\r
+fontDefinition.label.5 = Synonym font\r
+fontDefinition.description.0 = The font that is used for synonyms in the search result list.\r
+fontDefinition.label.6 = Other font\r
+fontDefinition.description.1 = The font used by default in the search result list.\r
+colorDefinition.label.13 = Parse Error\r
+colorDefinition.label.14 = Disabled Name Editor Field\r
+colorDefinition.label.15 = Editor On Error
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages.properties b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages.properties
new file mode 100644 (file)
index 0000000..887b082
--- /dev/null
@@ -0,0 +1,12 @@
+CdmDataSourceViewPart_1=Loading datasources\r
+CdmDataSourceViewPart_10=Server\r
+CdmDataSourceViewPart_11=Name\r
+CdmDataSourceViewPart_12=Connected\r
+CdmDataSourceViewPart_2=Notes\r
+CdmDataSourceViewPart_3=Compatible\r
+CdmDataSourceViewPart_4=CDM Version\r
+CdmDataSourceViewPart_5=Created\r
+CdmDataSourceViewPart_6=Nomenclatural Code\r
+CdmDataSourceViewPart_7=Database\r
+CdmDataSourceViewPart_8=Type\r
+CdmDataSourceViewPart_9=Up\r
diff --git a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_de.properties b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_de.properties
new file mode 100644 (file)
index 0000000..ca15205
--- /dev/null
@@ -0,0 +1,12 @@
+CdmDataSourceViewPart_1=Datenquelle wird geladen\r
+CdmDataSourceViewPart_10=Server\r
+CdmDataSourceViewPart_11=Name\r
+CdmDataSourceViewPart_12=Verbunden\r
+CdmDataSourceViewPart_2=Notizen\r
+CdmDataSourceViewPart_3=Kompatibel\r
+CdmDataSourceViewPart_4=CDM Version\r
+CdmDataSourceViewPart_5=Erstellt\r
+CdmDataSourceViewPart_6=Nomenklaturcode\r
+CdmDataSourceViewPart_7=Datenquelle\r
+CdmDataSourceViewPart_8=Typ\r
+CdmDataSourceViewPart_9=Verf\u00FCgbar\r
diff --git a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_en.properties b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/messages_en.properties
new file mode 100644 (file)
index 0000000..887b082
--- /dev/null
@@ -0,0 +1,12 @@
+CdmDataSourceViewPart_1=Loading datasources\r
+CdmDataSourceViewPart_10=Server\r
+CdmDataSourceViewPart_11=Name\r
+CdmDataSourceViewPart_12=Connected\r
+CdmDataSourceViewPart_2=Notes\r
+CdmDataSourceViewPart_3=Compatible\r
+CdmDataSourceViewPart_4=CDM Version\r
+CdmDataSourceViewPart_5=Created\r
+CdmDataSourceViewPart_6=Nomenclatural Code\r
+CdmDataSourceViewPart_7=Database\r
+CdmDataSourceViewPart_8=Type\r
+CdmDataSourceViewPart_9=Up\r
index 925934e50ff1d92c868e24dda037b16c48abeb72..ba626c82943edd651b6f24f357be63cd2c3b7829 100644 (file)
@@ -6,4 +6,6 @@ bin.includes = META-INF/,\
                .,\
                plugin.xml,\
                icons/,\
-               p2.inf
+               p2.inf,\
+               OSGI-INF/
+
index 8277d0a748a1687f61e98b262339412ef4c278f8..cb91bc2fc133a8387a3cf62817467559e06c22e8 100644 (file)
@@ -6,37 +6,37 @@
       <page
             class="eu.etaxonomy.taxeditor.preference.TaxonomicEditorGeneralPreferences"
             id="eu.etaxonomy.taxeditor.preferences.general"
-            name="Taxonomic Editor">
+            name="%page.name">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.DescriptionPreferences"
             id="eu.etaxonomy.taxeditor.preferences.description"
-            name="Description">
+            name="%page.name.0">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.preference.menu.FeatureMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.feature"
-            name="Features">
+            name="%page.name.1">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.preference.menu.PresenceAbsenceMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.distributionStatus"
-            name="Distribution Status">
+            name="%page.name.2">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.TaxonomicPreferences"
             id="eu.etaxonomy.taxeditor.preferences.taxonomic"
-            name="Taxonomic">
+            name="%page.name.3">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.taxonomic"
             class="eu.etaxonomy.taxeditor.preference.NomenclaturalCodePreferences"
             id="eu.etaxonomy.taxeditor.preferences.nomenclatural"
-            name="Nomenclatural Code">
+            name="%page.name.4">
       </page>
       <!--page
             class="eu.etaxonomy.taxeditor.store.preference.CdmPreferences"
             category="eu.etaxonomy.taxeditor.preferences.taxonomic"
             class="eu.etaxonomy.taxeditor.preference.menu.RankMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.ranks"
-            name="Ranks">
+            name="%page.name.5">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.taxonomic"
             class="eu.etaxonomy.taxeditor.preference.menu.NomenclaturalStatusTypeMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.nomenclaturalStatusType"
-            name="Nomenclatural Status Type">
+            name="%page.name.6">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.taxonomic"
             class="eu.etaxonomy.taxeditor.preference.menu.NameRelationshipTypeMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.nameRelationshipType"
-            name="Name Relationship Type">
+            name="%page.name.7">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.taxonomic"
             class="eu.etaxonomy.taxeditor.preference.menu.TaxonRelationshipTypeMenuPreferences"
             id="taxeditor-store.page1"
-            name="Taxon Relationship Type">
+            name="%page.name.8">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.taxonomic"
             class="eu.etaxonomy.taxeditor.preference.menu.SpecimenTypeDesignationStatusMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.specimenTypeDesignationStatus"
-            name="Specimen Type Designation Status">
+            name="%page.name.9">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.language"
             class="eu.etaxonomy.taxeditor.preference.menu.LanguageMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.languages"
-            name="Available Languages">
+            name="%page.name.10">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.menu.MarkerTypeMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.markerTypes"
-            name="Marker Types">
+            name="%page.name.11">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.menu.ExtensionTypeMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.extensionTypes"
-            name="Extension Types">
+            name="%page.name.12">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.taxonomic"
             class="eu.etaxonomy.taxeditor.preference.menu.NameTypeDesignationStatusMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.nameTypeDesignationStatus"
-            name="Name Type Designation Status">
+            name="%page.name.13">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.preference.menu.NamedAreaTypeMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.namedAreaType"
-            name="Named Area Type">
+            name="%page.name.14">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.MatchingPreferences"
             id="eu.etaxonomy.taxeditor.preferences.matching"
-            name="Matching (Experimental)">
+            name="%page.name.15">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.matching"
             class="eu.etaxonomy.taxeditor.preference.matching.NonViralNameMatchingPreference"
             id="eu.etaxonomy.taxeditor.preferences.matching.nonViralName"
-            name="NonViralName Matching Strategy">
+            name="%page.name.16">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.matching"
             class="eu.etaxonomy.taxeditor.preference.matching.ReferenceMatchingPreference"
             id="eu.etaxonomy.taxeditor.preferences.matching"
-            name="Reference Matching Strategy">
+            name="%page.name.17">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.matching"
             class="eu.etaxonomy.taxeditor.preference.matching.TeamOrPersonMatchingPreference"
             id="eu.etaxonomy.taxeditor.preferences.matching"
-            name="Team or Person Matching Strategy">
+            name="%page.name.18">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.preference.menu.StageMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.stage"
-            name="Stage">
+            name="%page.name.19">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.preference.menu.PreservationMethodMenuPreferences"
             id="eu.etaxonomy.taxeditor.preferences.preservationMethod"
-            name="Preservation Method">
+            name="%page.name.20">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.feature"
             class="eu.etaxonomy.taxeditor.preference.FeatureTreePreferences"
             id="eu.etaxonomy.taxeditor.preferences.featureTree"
-            name="Feature Tree">
+            name="%page.name.21">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.feature"
             class="eu.etaxonomy.taxeditor.preference.DefaultFeatureTreePreferenecs"
             id="eu.etaxonomy.taxeditor.preferences.defaultFeatureTreePreferenecs"
-            name="Default Feature Trees">
+            name="%page.name.22">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.LanguagePreferencePage"
             id="eu.etaxonomy.taxeditor.preferences.language"
-            name="Language">
+            name="%page.name.23">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.MobotOpenUrlPreferences"
             id="eu.etaxonomy.taxeditor.preferences.mobotOpenUrl"
-            name="Mobot Open Url">
+            name="%page.name.24">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.preference.TypeDesignationPreferences"
             id="eu.etaxonomy.taxeditor.preferences.typeDesignation"
-            name="Type Designations">
+            name="%page.name.25">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             id="eu.etaxonomy.taxeditor.preference.SpecimenOrObservationPreferences"
             name="Specimens and FieldUnits">
       </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.general"
+            class="eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreference"
+            id="eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreferencePage"
+            name="Checklist Editor">
+      </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.general"
+            class="eu.etaxonomy.taxeditor.preference.TemplatePreferencePage"
+            id="eu.etaxonomy.taxeditor.preference.TemplatePreferencePage"
+            name="Editor Profile">
+      </page>
    </extension>
    <extension
          point="org.eclipse.ui.views">
             class="eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart"
             icon="icons/system-file-manager.png"
             id="eu.etaxonomy.taxeditor.view.datasource"
-            name="Datasource"
+            name="%view.name"
             restorable="true">
       </view>
       <view  
-                       name="Progress View"  
+                       name="%view.name.0"  
                        category="org.eclipse.ui"  
                        class="org.eclipse.ui.ExtensionFactory:progressView"  
                        id="org.eclipse.ui.views.ProgressView">  
                </view>
                <view  
-                       name="Message View"  
+                       name="%view.name.1"  
                        icon="icons/console.gif"  
                        category="org.eclipse.ui"  
                        class="org.eclipse.ui.ExtensionFactory:logView"  
   <view
         class="eu.etaxonomy.taxeditor.view.reporting.ReportingViewPart"
         id="eu.etaxonomy.taxeditor.reporting.viewPart"
-        name="Reporting"
+        name="%view.name.2"
         restorable="true">
   </view>
   <view
         class="eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart"
         icon="icons/applications-office.png"
         id="eu.etaxonomy.taxeditor.view.supplementalData"
-        name="Supplemental Data"
+        name="%view.name.3"
         restorable="true">
   </view>
   <view
         class="eu.etaxonomy.taxeditor.view.detail.DetailsViewPart"
         icon="icons/accessories-text-editor.png"
         id="eu.etaxonomy.taxeditor.view.detail"
-        name="Details"
+        name="%view.name.4"
         restorable="true">
   </view>
   <view
         class="eu.etaxonomy.taxeditor.view.userecords.UseRecordsViewPart"
         icon="icons/leaf_detail.png"
         id="eu.etaxonomy.taxeditor.view.userecords"
-        name="Use Records"
+        name="%view.name.5"
         restorable="true">
   </view>
   <view
         class="eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView"
         icon="icons/derivate_search_view-16x16-32.png"
         id="eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView"
-        name="Derivate Search"
+        name="%view.name.6"
         restorable="true">
   </view>
    </extension>
             class="eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor"
             default="false"
             id="eu.etaxonomy.taxeditor.editor.definedTerm"
-            name="Defined Term Editor">
+            name="%editor.name">
       </editor>
    </extension>
    <extension
             locationURI="menu:org.eclipse.ui.main.menu.window?before=eu.etaxonomy.taxeditor.application.windowMenu.last">
          <menu
                id="eu.etaxonomy.taxeditor.menu.showView"
-               label="Show View">
+               label="%menu.label">
             <command
                   commandId="org.eclipse.ui.views.showView"
-                  label="Derivate Search View"
+                  label="%command.label"
                   style="push">
                <parameter
                      name="org.eclipse.ui.views.showView.viewId"
             </separator>
             <command
                   commandId="org.eclipse.ui.views.showView"
-                  label="Details"
+                  label="%command.label.0"
                   style="push">
                <parameter
                      name="org.eclipse.ui.views.showView.viewId"
             </command>
             <command
                   commandId="org.eclipse.ui.views.showView"
-                  label="Supplemental"
+                  label="%command.label.1"
                   style="push">
                <parameter
                      name="org.eclipse.ui.views.showView.viewId"
             </separator>
             <command
                   commandId="org.eclipse.ui.views.showView"
-                  label="Datasource"
+                  label="%command.label.2"
                   style="push">
                <parameter
                      name="org.eclipse.ui.views.showView.viewId"
             </command>
             <command
                   commandId="org.eclipse.ui.views.showView"
-                  label="Messages"
+                  label="%command.label.3"
                   style="push">
                <parameter
                      name="org.eclipse.ui.views.showView.viewId"
             </command>
             <command
                   commandId="org.eclipse.ui.views.showView"
-                  label="Reporting"
+                  label="%command.label.4"
                   style="push">
                <parameter
                      name="org.eclipse.ui.views.showView.viewId"
             locationURI="menu:org.eclipse.ui.main.menu.file?after=eu.etaxonomy.taxeditor.application.filemenu.io">
          <command
                commandId="eu.etaxonomy.taxeditor.store.operations.showLoginWindow"
-               label="Switch User"
-               style="push">
-         </command>
-         <command
-               commandId="eu.etaxonomy.taxeditor.store.openPasswordWizzard"
-               label="Change Password"
+               label="%command.label.5"
                style="push">
          </command>
          <separator
             locationURI="popup:eu.etaxonomy.taxeditor.view.datasource">
          <command
                commandId="eu.etaxonomy.taxeditor.store.datasource.change"
-               label="Connect"
+               label="%command.label.6"
                style="push">
                <visibleWhen>
               <with
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.store.datasource.create"
-               label="New"
+               label="%command.label.7"
                style="push">
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.store.datasource.edit"
-               label="Edit"
+               label="%command.label.8"
                style="push">
                 <visibleWhen>
               <with
          </separator>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.9"
                style="push">
                <visibleWhen>
               <with
          </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.store.datasource.close"
-               label="Close Active Connection"
+               label="%command.label.10"
                style="push">
                <visibleWhen>
               <with
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.store.datasource.update"
-               label="Update Datamodel"
+               label="%command.label.11"
                style="push">
             <visibleWhen
                   checkEnabled="true">
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.editor.definedTerm">
          <menu
-               label="New">
+               label="%menu.label.0">
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.definedTerms.newTermVocabulary"
-                  label="Vocabulary"
+                  label="%command.label.12"
                   style="push">
             </command>
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.definedTerms.newDefinedTerm"
-                  label="Defined Term"
+                  label="%command.label.13"
                   style="push">
                <visibleWhen
                      checkEnabled="true">
          </menu>
          <command
                commandId="org.eclipse.ui.edit.delete"
-               label="Delete"
+               label="%command.label.14"
                style="push">
             <visibleWhen
                   checkEnabled="true">
                   definitionId="isUserLoggedIn">
             </reference></enabledWhen>
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.handler.OpenDistributionEditorWizardHandler"
+            commandId="eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler">
+         <activeWhen>
+            <reference
+                  definitionId="hasROLE_PROJECT_MANAGER">
+            </reference>
+         </activeWhen>
+      </handler>
    </extension>
    <extension
          point="org.eclipse.ui.commands">
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.ChangeConnectionHandler"
             id="eu.etaxonomy.taxeditor.store.datasource.change"
-            name="Connect Datasource">
+            name="%command.name">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.EditDataSourceHandler"
             id="eu.etaxonomy.taxeditor.store.datasource.edit"
-            name="Edit Datasource">
+            name="%command.name.0">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.CloneDataSourceHandler"
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.CreateDataSourceHandler"
             id="eu.etaxonomy.taxeditor.store.datasource.create"
-            name="Create Datasource">
+            name="%command.name.1">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.CloseConnectionHandler"
             id="eu.etaxonomy.taxeditor.store.datasource.close"
-            name="Close Active Connection">
+            name="%command.name.2">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.view.datasource.handler.UpdateDataSourceHandler"
             id="eu.etaxonomy.taxeditor.store.datasource.update"
-            name="Update Datasource">
+            name="%command.name.3">
       </command>
       <command
             id="eu.etaxonomy.taxeditor.store.operations.showLoginWindow"
-            name="Show Login Window">
+            name="%command.name.4">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.definedterm.handler.OpenDefinedTermEditorHandler"
             id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
-            name="Open Defined Term Editor">
+            name="%command.name.5">
          <commandParameter
                id="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.termTypeUuid"
-               name="inputType"
+               name="%commandParameter.name.0"
                optional="true">
          </commandParameter>
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.definedterm.handler.CreateDefinedTermHandler"
             id="eu.etaxonomy.taxeditor.editor.definedTerms.newDefinedTerm"
-            name="New Defined Term">
+            name="%command.name.6">
       </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.definedterm.handler.CreateTermVocabularyHandler"
             id="eu.etaxonomy.taxeditor.editor.definedTerms.newTermVocabulary"
-            name="New Term Vocabulary">
+            name="%command.name.7">
       </command>
       <command
          id="eu.etaxonomy.taxeditor.store.open.FeatureTreeEditorWizard"
             id="eu.etaxonomy.taxeditor.store.openPasswordWizzard"
             name="Open Password Wizzard">
       </command>
+      <command
+            id="eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler"
+            name="Open Distribution Editor Wizard">
+      </command>
    </extension>
    <extension
          point="org.eclipse.ui.importWizards">
       <category
             id="eu.etaxonomy.taxeditor.import.category.cdm"
-            name="CDM">
+            name="%category.name">
       </category>
       <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.TcsImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.tcs"
-            name="TCS">
+            name="%wizard.name">
       </wizard>
    <!--   <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.BerlinModelImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.berlinModel"
-            name="Berlin Model">
+            name="%wizard.name.0">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.EndnoteImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.endnote"
-            name="Endnote">
+            name="%wizard.name.1">
       </wizard>-->
       <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.ExcelNormalExplicitTaxaImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.excel.taxa"
-            name="Excel Normal Explicit Taxa">
+            name="%wizard.name.2">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.AbcdImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.abcd"
-            name="ABCD">
+            name="%wizard.name.3">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.SddImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.sdd"
-            name="SDD">
+            name="%wizard.name.4">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.SpecimenCdmExcelImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.specimenCdmExcel"
-            name="Specimen CDM Excel">
+            name="%wizard.name.5">
       </wizard>
    </extension>
    <extension
          point="org.eclipse.ui.exportWizards">
       <category
             id="eu.etaxonomy.taxeditor.export.category.cdm"
-            name="CDM">
+            name="%category.name.0">
       </category>
       <wizard
             category="eu.etaxonomy.taxeditor.export.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.JaxbExportWizard"
             id="eu.etaxonomy.taxeditor.io.export.jaxb"
-            name="JAXB">
+            name="%wizard.name.6">
       </wizard>
       <!--<wizard
             category="eu.etaxonomy.taxeditor.export.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.BerlinModelExportWizard"
             id="eu.etaxonomy.taxeditor.io.export.berlinModel"
-            name="Berlin Model">
+            name="%wizard.name.7">
       </wizard>-->
       <category
             id="eu.etaxonomy.taxeditor.export.category.excel"
-            name="Excel">
+            name="%category.name.1">
       </category>
       <wizard
             category="eu.etaxonomy.taxeditor.export.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.SddExportWizard"
             id="eu.etaxonomy.taxeditor.io.export.sdd"
-            name="SDD">
+            name="%wizard.name.8">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.export.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.DarwinCoreArchiveExportWizard"
             id="eu.etaxonomy.taxeditor.io.export.dwca"
-            name="DwC-A">
+            name="%wizard.name.9">
       </wizard>
    </extension>
    <extension
             class="eu.etaxonomy.taxeditor.newWizard.NewReferenceWizard"
             hasPages="true"
             id="eu.etaxonomy.taxeditor.new.reference"
-            name="Reference">
+            name="%wizard.name.10">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.new.category.cdm"
             class="eu.etaxonomy.taxeditor.newWizard.NewNonViralNameWizard"
             hasPages="true"
             id="eu.etaxonomy.taxeditor.new.nonViralName"
-            name="Name">
+            name="%wizard.name.11">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.new.category.cdm"
             class="eu.etaxonomy.taxeditor.newWizard.NewTeamWizard"
             hasPages="true"
             id="eu.etaxonomy.taxeditor.new.team"
-            name="Team">
+            name="%wizard.name.12">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.new.category.cdm"
             class="eu.etaxonomy.taxeditor.newWizard.NewPersonWizard"
             hasPages="true"
             id="eu.etaxonomy.taxeditor.new.person"
-            name="Person">
+            name="%wizard.name.13">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.new.category.cdm"
             class="eu.etaxonomy.taxeditor.newWizard.NewDerivedUnitBaseWizard"
             hasPages="true"
             id="eu.etaxonomy.taxeditor.new.specimen"
-            name="Specimen">
+            name="%wizard.name.14">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.new.category.cdm"
             class="eu.etaxonomy.taxeditor.newWizard.NewPolytomousKeyWizard"
             hasPages="true"
             id="eu.etaxonomy.taxeditor.new.key.polytomous"
-            name="Polytomous Key">
+            name="%wizard.name.15">
       </wizard>
       <category
             id="eu.etaxonomy.taxeditor.new.category.cdm"
-            name="CDM">
+            name="%category.name.2">
       </category>
       <wizard
             category="eu.etaxonomy.taxeditor.new.category.cdm"
             class="eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizard"
             hasPages="true"
             id="eu.etaxonomy.taxeditor.new.taxonNode"
-            name="Taxon">
+            name="%wizard.name.16">
       </wizard>
       <wizard
             category="eu.etaxonomy.taxeditor.new.category.cdm"
             hasPages="true"
             icon="icons/tree_icon_small.jpg"
             id="eu.etaxonomy.taxeditor.new.classification"
-            name="Classification">
+            name="%wizard.name.17">
       </wizard>
    </extension>
 <extension
             point="org.eclipse.ui.themes">
          <themeElementCategory
                id="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
-               label="Taxonomic Editor">
+               label="%themeElementCategory.label">
             <description>
-               Color and font definitions for the EDIT Taxonomic Editor
+               %themeElementCategory.description
             </description>
          </themeElementCategory>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.listBackground"
-               label="List Background"
+               label="%colorDefinition.label"
                value="150,150,150">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.textDefault"
-               label="Global Text Color"
+               label="%colorDefinition.label.0"
                value="0,0,0">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeBackground"
-               label="Global Color Composite Background"
+               label="%colorDefinition.label.1"
                value="255,255,255">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant"
-               label="Global Color Composite Irrelevant"
+               label="%colorDefinition.label.2"
                value="241,139,18">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.textDisabled"
-               label="Global Text Color Disabled"
+               label="%colorDefinition.label.3"
                value="150,150,150">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.textBackgroundDisabled"
-               label="Global Background Color Disabled"
+               label="%colorDefinition.label.4"
                value="230,230,230">
          </colorDefinition>
          <themeElementCategory
                id="eu.etaxonomy.taxeditor.preferences.themeElementCategory.detailsView"
-               label="Details View"
+               label="%themeElementCategory.label.0"
                parentId="eu.etaxonomy.taxeditor.preferences.themeElementCategory">
             <description>
-               Colors and fonts for the details view
+               %themeElementCategory.description.0
             </description>
          </themeElementCategory>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.detailsView"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.listBackgroundOdd"
-               label="Entity Element List Background Odd"
+               label="%colorDefinition.label.5"
                value="230,230,230">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.detailsView"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.listBackgroundEven"
-               label="Entity Element List Background Even"
+               label="%colorDefinition.label.6"
                value="255,255,255">
          </colorDefinition>
          <themeElementCategory
                id="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
-               label="Name Editor"
+               label="%themeElementCategory.label.1"
                parentId="eu.etaxonomy.taxeditor.preferences.themeElementCategory">
             <description>
-               Colors and fonts for the name editor
+               %themeElementCategory.description.1
             </description>
          </themeElementCategory>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.nameEditor.colorContainerBackground"
-               label="Container Background"
+               label="%colorDefinition.label.7"
                value="220, 220, 220">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.nameEditor.colorContainerSelectedFocus"
-               label="Container Selected Focus"
+               label="%colorDefinition.label.8"
                value="232,242,254">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.nameEditor.colorContainerSelected"
-               label="Container Selected"
+               label="%colorDefinition.label.9"
                value="210, 210, 210">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.nameEditor.colorContainerDragEnter"
-               label="Container Drag Enter"
+               label="%colorDefinition.label.10"
                value="185,255,133">
          </colorDefinition>
          <fontDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.fontDefinition.nameEditor.accepted"
-               label="Accepted Taxon Font"
+               label="%fontDefinition.label"
                value="Georgia-regular-12">
          </fontDefinition>
          <fontDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.fontDefinition.nameEditor.synonym"
-               label="Synonym Font"
+               label="%fontDefinition.label.0"
                value="Georgia-regular-10">
          </fontDefinition>
          <fontDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.fontDefinition.nameEditor.misapplication"
-               label="Misapplication Font"
+               label="%fontDefinition.label.1"
                value="Georgia-regular-10">
          </fontDefinition>
          <fontDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.fontDefinition.nameEditor.concept"
-               label="Concept Font"
+               label="%fontDefinition.label.2"
                value="Georgia-regular-10">
          </fontDefinition>
          <fontDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
                id="eu.etaxonomy.taxeditor.preferences.fontDefinition.nameEditor.default"
-               label="Default Font"
+               label="%fontDefinition.label.3"
                value="Georgia-regular-10">
          </fontDefinition>
          <themeElementCategory
                id="eu.etaxonomy.taxeditor.preferences.themeElementCategory.searchView"
-               label="Search View"
+               label="%themeElementCategory.label.2"
                parentId="eu.etaxonomy.taxeditor.preferences.themeElementCategory">
             <description>
-               Colors and fonts for the search view
+               %themeElementCategory.description.2
             </description>
          </themeElementCategory>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.searchView"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.searchView.foreground"
-               label="Search View Foreground"
+               label="%colorDefinition.label.11"
                value="192, 192, 192">
          </colorDefinition>
          <colorDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.searchView"
                id="eu.etaxonomy.taxeditor.preferences.colorDefinition.searchView.focus"
-               label="Search View Focus"
+               label="%colorDefinition.label.12"
                value="0, 0, 0">
          </colorDefinition>
          <fontDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.searchView"
                id="eu.etaxonomy.taxeditor.preferences.fontDefinition.searchView.accepted"
                isEditable="true"
-               label="Accepted font"
+               label="%fontDefinition.label.4"
                value="Arial-regular-10">
             <description>
-               The font that is used for accepted taxa in the search result list.
+               %fontDefinition.description
             </description>
          </fontDefinition>
          <fontDefinition
                categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.searchView"
                id="eu.etaxonomy.taxeditor.preferences.fontDefinition.searchView.synonym"
                isEditable="true"
-               label="Synonym font"
+               label="%fontDefinition.label.5"
                value="Arial-italic-10">
          <description>
-            The font that is used for synonyms in the search result list.
+            %fontDefinition.description.0
          </description>
       </fontDefinition>
       <fontDefinition
             categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.searchView"
             id="eu.etaxonomy.taxeditor.preferences.fontDefinition.searchView.other"
             isEditable="true"
-            label="Other font"
+            label="%fontDefinition.label.6"
             value="Lucida Grande-regular-11">
          <description>
-            The font used by default in the search result list.
+            %fontDefinition.description.1
          </description>
       </fontDefinition>
       <colorDefinition
             categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.detailsView"
             id="eu.etaxonomy.taxeditor.preferences.colorDefinition.parseError"
-            label="Parse Error"
+            label="%colorDefinition.label.13"
             value="255,0,0">
       </colorDefinition>
       <colorDefinition
             categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory.nameEditor"
             id="eu.etaxonomy.taxeditor.preferences.colorDefinition.disabledEditor"
-            label="Disabled Name Editor Field"
+            label="%colorDefinition.label.14"
             value="105,114,124">
       </colorDefinition>
       <colorDefinition
             categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
             id="eu.etaxonomy.taxeditor.preferences.colorDefinition.editorError"
-            label="Editor On Error"
+            label="%colorDefinition.label.15"
             value="255,0,0">
       </colorDefinition>
       </extension>
index ea74041fde8b84da818019c1f84efc1da529a577..2d223b436df5c1edaa22481b680df118b8c8fa27 100644 (file)
@@ -1,12 +1,12 @@
 // $Id$\r
 /**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy\r
-* http://www.e-taxonomy.eu\r
-*\r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
+ * Copyright (C) 2009 EDIT\r
+ * European Distributed Institute of Taxonomy\r
+ * http://www.e-taxonomy.eu\r
+ *\r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
 package eu.etaxonomy.taxeditor.editor.definedterm;\r
 \r
 import org.apache.commons.lang.StringUtils;\r
@@ -31,76 +31,81 @@ import eu.etaxonomy.cdm.model.common.TermVocabulary;
  */\r
 public class TermLabelProvider extends StyledCellLabelProvider {\r
 \r
-       private static Color vocColor = Display.getCurrent().getSystemColor(\r
-                       SWT.COLOR_BLUE);\r
-       private Styler vocStyler;\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)\r
-        */\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see\r
-        * org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.\r
-        * jface.viewers.ViewerCell)\r
-        */\r
-       @Override\r
-       public void update(ViewerCell cell) {\r
-               Object element = cell.getElement();\r
-               int columnIndex = cell.getColumnIndex();\r
-\r
-               String text = getText(element);\r
-               cell.setText(text);\r
-\r
-               if (element instanceof TermVocabulary) {\r
-                       StyledString styledString = new StyledString(text, getVocabularyStyler());\r
-                       StyleRange[] styleRanges;\r
-                       styleRanges = styledString.getStyleRanges();\r
-                       cell.setStyleRanges(styleRanges);\r
-               }\r
-               super.update(cell);\r
-       }\r
-\r
-       public StyledString getStyledText(Object element) {\r
-\r
-               if(element instanceof TermVocabulary){\r
-                       new StyledString(getText(element), getVocabularyStyler());\r
-               }\r
-               return  new StyledString(getText(element), StyledString.QUALIFIER_STYLER);\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)\r
-        */\r
-\r
-       public String getText(Object element) {\r
-\r
-           if(element instanceof DefinedTermBase){\r
-               DefinedTermBase<?> dtb = (DefinedTermBase<?>)element;\r
-               if (StringUtils.isNotBlank(dtb.getIdInVocabulary())){\r
-                       return dtb.getIdInVocabulary() + " : " + dtb.getTitleCache();\r
-               } else{\r
-                       return dtb.getTitleCache();\r
-              }\r
-           } else if (element instanceof TermBase){\r
-            return ((TermBase)element).getTitleCache();\r
-           }\r
-\r
-               //FIXME : must throw an exception here\r
-               return element.toString();\r
-       }\r
-\r
-       private Styler getVocabularyStyler() {\r
-               if (vocStyler == null) {\r
-                       vocStyler = new Styler() {\r
-                               @Override\r
-                               public void applyStyles(TextStyle textStyle) {\r
-                                       textStyle.foreground = vocColor;\r
-                               }\r
-                       };\r
-               }\r
-               return vocStyler;\r
-       }\r
+    private static Color vocColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLUE);\r
+    private Styler vocStyler;\r
+\r
+    public TermLabelProvider() {\r
+    }\r
+\r
+    public TermLabelProvider(Styler vocStyler){\r
+        this.vocStyler = vocStyler;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     *\r
+     * @see\r
+     * org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.\r
+     * jface.viewers.ViewerCell)\r
+     */\r
+    @Override\r
+    public void update(ViewerCell cell) {\r
+        Object element = cell.getElement();\r
+        int columnIndex = cell.getColumnIndex();\r
+\r
+        String text = getText(element);\r
+        cell.setText(text);\r
+\r
+        if (element instanceof TermVocabulary) {\r
+            StyledString styledString = new StyledString(text, getVocabularyStyler());\r
+            StyleRange[] styleRanges;\r
+            styleRanges = styledString.getStyleRanges();\r
+            cell.setStyleRanges(styleRanges);\r
+        }\r
+        super.update(cell);\r
+    }\r
+\r
+    public StyledString getStyledText(Object element) {\r
+\r
+        if (element instanceof TermVocabulary) {\r
+            new StyledString(getText(element), getVocabularyStyler());\r
+        }\r
+        return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     *\r
+     * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)\r
+     */\r
+\r
+    public String getText(Object element) {\r
+\r
+        if (element instanceof DefinedTermBase) {\r
+            DefinedTermBase<?> dtb = (DefinedTermBase<?>) element;\r
+            if (StringUtils.isNotBlank(dtb.getIdInVocabulary())) {\r
+                return dtb.getIdInVocabulary() + " : " + dtb.getTitleCache();\r
+            } else {\r
+                return dtb.getTitleCache();\r
+            }\r
+        } else if (element instanceof TermBase) {\r
+            return ((TermBase) element).getTitleCache();\r
+        }\r
+\r
+        // FIXME : must throw an exception here\r
+        return element.toString();\r
+    }\r
+\r
+    private Styler getVocabularyStyler() {\r
+        if (vocStyler == null) {\r
+            vocStyler = new Styler() {\r
+                @Override\r
+                public void applyStyles(TextStyle textStyle) {\r
+                    textStyle.foreground = vocColor;\r
+                }\r
+            };\r
+        }\r
+        return vocStyler;\r
+    }\r
 \r
 }\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenDistributionEditorWizardHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/OpenDistributionEditorWizardHandler.java
new file mode 100644 (file)
index 0000000..930eead
--- /dev/null
@@ -0,0 +1,39 @@
+// $Id$
+/**
+* Copyright (C) 2014 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.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.wizard.WizardDialog;
+
+import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionWizard;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+
+/**
+ * @author a.oppermann
+ * @date 21.07.2014
+ *
+ */
+public class OpenDistributionEditorWizardHandler  extends AbstractHandler{
+
+        String commandID = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";
+
+        @Override
+        public Object execute(ExecutionEvent event) throws ExecutionException {
+            AvailableDistributionWizard availableDistributionWizard = new AvailableDistributionWizard();
+            WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
+                    availableDistributionWizard);
+
+            dialog.open();
+            return null;
+        }
+
+    }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
new file mode 100644 (file)
index 0000000..ca82b0e
--- /dev/null
@@ -0,0 +1,95 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.preference;
+
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
+
+/**
+ * @author a.oppermann
+ * @date 21.07.2014
+ *
+ */
+public class ChecklistEditorGeneralPreference extends PreferencePage implements IWorkbenchPreferencePage {
+
+    boolean isEditorActivated;
+    Composite child ;
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
+     * ()
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+
+        Composite composite = new Composite(parent, SWT.NULL);
+        composite.setLayout(new GridLayout());
+        isEditorActivated = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
+        final Button activateCheckButton = new Button(composite, SWT.CHECK);
+        activateCheckButton.setText("Enable Checklist Editor");
+        activateCheckButton.setSelection(isEditorActivated);
+        activateCheckButton.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                isEditorActivated = activateCheckButton.getSelection();
+                PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE, isEditorActivated);
+                if(isEditorActivated){
+                    child.setVisible(true);
+                    child.setEnabled(true);
+                }else{
+                    child.setVisible(false);
+                    child.setEnabled(false);
+                }
+
+            }
+        });
+
+        child  = new Composite(composite, SWT.NULL);
+        child.setLayout(new GridLayout());
+        child.setVisible(isEditorActivated);
+        final CLabel label = new CLabel(child, SWT.NULL);
+        label.setText("Please open the wizard below, in order to \n" + "choose the areas for the Checklist Editor");
+        final CommandHandlerButton button_openFeatureTree = new CommandHandlerButton(child, SWT.PUSH,
+                "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler");
+
+        button_openFeatureTree.setText("Open Distribution Selection Wizard");
+        if(isEditorActivated){
+            child.setEnabled(true);
+        }else{
+            child.setEnabled(false);
+        }
+
+        return composite;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+     */
+    @Override
+    public void init(IWorkbench workbench) {
+    }
+
+}
index 27db8420b3f049bd60f6e65ee54440d1778b6df6..1f7a15b6bc49a30ae824c2c8a20073551ba56409 100644 (file)
@@ -118,4 +118,15 @@ public interface IPreferenceKeys {
        public static final String ADD_TYPES_TO_ALL_NAMES = "eu.etaxonomy.taxeditor.store.addTypeToAllNames";
 
     public static final String DETERMINATION_ONLY_FOR_FIELD_UNITS = "eu.etaxonomy.taxeditor.specimen.determinationOnlyOnFieldUnitLevel";
+
+
+    public static final String DISTRIBUTION_AREA_PREFRENCES_ACTIVE = "eu.etaxonomy.taxeditor.checklist.distributionAreaPreferencesActive";
+
+    public static final String DISTRIBUTION_AREA_OCCURENCE_STATUS = "eu.etaxonomy.taxeditor.checklist.distributionAreaStatus";
+
+    public static final String DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED = "eu.etaxonomy.taxeditor.checklist.distributionAreaStatusGrayed";
+
+    // TODO RL
+    public static final String IS_RL = "eu.etaxonomy.taxeditor.isRL";
+
 }
index aee9397c910af0f5c1c76775635539f054f42f8d..8a00f1ff73be6da4e71414d9ede15a3b238b7dab 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,18 +21,23 @@ public class PreferencePropertyTester extends PropertyTester {
 
 
        private static final String SHOW_EXPERIMENTAL_FEATURES = "isShowExperimentalFeatures";
-       
+
+       private static final String SHOW_CHECKLIST_EDITOR = "isChecklistEditorEnabled";
+
        /* (non-Javadoc)
         * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
         */
        @Override
        public boolean test(Object receiver, String property, Object[] args,
                        Object expectedValue) {
-               
+
                if(SHOW_EXPERIMENTAL_FEATURES.equals(property)){
                        return isShowExperimentalFeatures();
                }
-               
+           if(SHOW_CHECKLIST_EDITOR.equals(property)){
+               return isChecklistEditorEnabled();
+           }
+
                return false;
        }
 
@@ -42,5 +47,8 @@ public class PreferencePropertyTester extends PropertyTester {
        private boolean isShowExperimentalFeatures() {
                return PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES);
        }
-       
+
+       private boolean isChecklistEditorEnabled() {
+        return PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
+    }
 }
index ef581b5b099416ce15c9d40d76577ad6a239966b..f217610d4d4999a3fd3fad28eb900a33d3178564 100644 (file)
@@ -34,7 +34,6 @@ public class SpecimenOrObservationPreferences extends FieldEditorPreferencePage
      */
     @Override
     protected void createFieldEditors() {
-
         addField(new BooleanFieldEditor(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS,
                 "Taxon determination only on FieldUnit level",
                 getFieldEditorParent()));
index d2a229be456cbdcb02b73e7b8c0556012f07fab5..3ac5d747075613aea512642724a5ceb31b65eea1 100644 (file)
@@ -57,6 +57,7 @@ public class TaxonomicEditorGeneralPreferences extends
                addField(new BooleanFieldEditor(IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS,
                                "Open search results in separate windows",
                                getFieldEditorParent()));
+
        }
 
        /*
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TemplatePreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TemplatePreferencePage.java
new file mode 100644 (file)
index 0000000..f8255b8
--- /dev/null
@@ -0,0 +1,37 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * @author a.oppermann
+ * @date 13.08.2014
+ *
+ */
+public class TemplatePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+    @Override
+    public void init(IWorkbench workbench) {
+        setPreferenceStore(PreferencesUtil.getPreferenceStore());
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+     */
+    @Override
+    protected void createFieldEditors() {
+        addField(new BooleanFieldEditor(IPreferenceKeys.IS_RL, "Rote Liste 2020",  getFieldEditorParent()));
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java
new file mode 100644 (file)
index 0000000..cc3ec2f
--- /dev/null
@@ -0,0 +1,248 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.preference.wizard;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTreeViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ITreeSelection;
+import org.eclipse.jface.viewers.StyledString.Styler;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.TextStyle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermContentProvider;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermLabelProvider;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author a.oppermann
+ * @date 21.07.2014
+ *
+ */
+public class AvailableDistributionPage extends WizardPage {
+
+    private CheckboxTreeViewer viewer;
+
+    private Set<TermVocabulary<DefinedTermBase>> vocabularies;
+
+    /**
+     * @param pageName
+     */
+    protected AvailableDistributionPage(String pageName) {
+        super(pageName);
+        // TODO check if configuration exists
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see
+     * org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets
+     * .Composite)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void createControl(Composite parent) {
+        IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
+        String checkedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
+        String grayedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
+        setTitle("Select areas for ChecklistEditor");
+        setDescription("In order to be able to modify and see the distribution status of taxa,\n"
+                + "you have to select the areas which you like to see.");
+        Composite composite = new Composite(parent, SWT.NULL);
+        composite.setLayout(new GridLayout());
+        viewer = new CheckboxTreeViewer(composite, SWT.NULL);
+        viewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+        viewer.setContentProvider(new TermContentProvider());
+        Styler styler = new Styler() {
+            @Override
+            public void applyStyles(TextStyle textStyle) {
+                textStyle.foreground = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK);
+            }
+        };
+        viewer.setLabelProvider(new TermLabelProvider(styler));
+        viewer.addCheckStateListener(new ICheckStateListener() {
+
+            private boolean ignoreCheckEvent = false;
+
+            @Override
+            public void checkStateChanged(CheckStateChangedEvent event) {
+
+
+                if (ignoreCheckEvent ) {
+                    return;
+                }
+
+                ignoreCheckEvent = true;
+
+                try {
+                    TreePath path  = ((ITreeSelection) viewer.getSelection()).getPaths()[0];
+                    checkChildren(path, event.getChecked());
+                    checkParents(path.getParentPath());
+                }
+                finally {
+                    ignoreCheckEvent = false;
+                }
+                checkNoneChecked();
+            }
+        });
+        // TODO: write listener or toggle button to select all named areas
+
+        rememberCheckedValues(checkedValues, grayedValues);
+        setControl(composite);
+    }
+
+
+    protected List<TermVocabulary<DefinedTermBase>> initialiseVocabularies() {
+        if (vocabularies != null) {
+            vocabularies.clear();
+        }
+        List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(
+                TermType.NamedArea);
+        return vocs;
+    }
+
+    private void rememberCheckedValues(String checkedValues, String grayedValues) {
+        viewer.setInput(initialiseVocabularies());
+
+        if (grayedValues != null && grayedValues != "") {
+            String[] listGrayed = grayedValues.split(",");
+            ArrayList listGrayedTerms = new ArrayList();
+            getTermsFromStringValues(listGrayed, listGrayedTerms);
+            for(Object element : listGrayedTerms){
+                if(element != null){
+                    viewer.setGrayChecked(element, true);
+                }
+            }
+        }
+        if (checkedValues != null && checkedValues != "") {
+            String[] listChecked = checkedValues.split(",");
+            ArrayList<DefinedTermBase<?>> listCheckedTerms = new ArrayList<DefinedTermBase<?>>();
+            getTermsFromStringValues(listChecked, listCheckedTerms);
+            for(Object element : listCheckedTerms){
+                if(element != null){
+                    viewer.setChecked(element, true);
+                }
+            }
+        }
+    }
+
+    /**
+     * @param split
+     * @param termlist
+     */
+    private void getTermsFromStringValues(String[] split, ArrayList termlist) {
+        List<String> listValue = Arrays.asList(split);
+        for (String s : listValue) {
+            UUID uuid = UUID.fromString(s);
+            ITermService termService = CdmStore.getService(ITermService.class);
+            DefinedTermBase definedTermBase = termService.load(uuid);
+            if(definedTermBase != null){
+                termlist.add(definedTermBase);
+            }else{
+                IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
+                TermVocabulary termVocabulary = vocabularyService.load(uuid);
+                termlist.add(termVocabulary);
+            }
+        }
+    }
+
+    private boolean checkNoneChecked() {
+
+        if (viewer.getCheckedElements().length == 0) {
+            setMessage("Please check at least one item", WARNING);
+            return true;
+        } else {
+            setMessage(null);
+            return false;
+        }
+    }
+
+    /**
+     * @return the viewer
+     */
+    public CheckboxTreeViewer getViewer() {
+        return viewer;
+    }
+
+    /**
+     *
+     * @param path
+     */
+    private void checkParents(final TreePath path) {
+        if (path == null) {
+            return;
+        }
+        TermContentProvider tcp = new TermContentProvider();
+        Object treeElement = path.getLastSegment();
+
+        if (treeElement != null) {
+            boolean allChecked = true;
+            boolean allUnchecked = true;
+            for (final Object fieldElement : tcp.getChildren(treeElement)) {
+                allChecked = allChecked && this.viewer.getChecked(fieldElement);
+                allUnchecked = allUnchecked && !this.viewer.getChecked(fieldElement);
+            }
+            if (allUnchecked) {
+                this.viewer.setChecked(treeElement, false);
+                this.viewer.setGrayed(treeElement, false);
+            } else if (allChecked) {
+                this.viewer.setChecked(treeElement, true);
+                this.viewer.setGrayed(treeElement, false);
+            } else if (!allUnchecked && !allChecked) {
+                this.viewer.setChecked(treeElement, true);
+                this.viewer.setGrayed(treeElement, true);
+            }
+        }
+        checkParents(path.getParentPath());
+    }
+
+    /**
+     *
+     * @param path
+     * @param checked
+     */
+    private void checkChildren(final TreePath path, final boolean checked) {
+        TermContentProvider tcp = new TermContentProvider();
+
+        if (path == null) {
+            return;
+        }
+        final Object element = path.getLastSegment();
+        if (element != null) {
+            this.viewer.setChecked(element, checked);
+            this.viewer.setGrayed(element, false);
+            int length = tcp.getChildren(element).length;
+            if(length>1){
+                this.viewer.setSubtreeChecked(element, checked);
+            }
+        }
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionWizard.java
new file mode 100644 (file)
index 0000000..19408b3
--- /dev/null
@@ -0,0 +1,130 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.preference.wizard;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.UUID;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.wizard.Wizard;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author alex
+ * @date 21.07.2014
+ *
+ */
+public class AvailableDistributionWizard extends Wizard implements IConversationEnabled {
+
+    private ConversationHolder conversation;
+    private final AvailableDistributionPage aPage;
+
+    public AvailableDistributionWizard() {
+        setWindowTitle("Distribution Selection Wizard");
+        // TODO if preferenceStore has elements checked load elements in wizard
+        aPage = new AvailableDistributionPage("AvailableDistributionPage");
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.eclipse.jface.wizard.Wizard#performFinish()
+     */
+    @Override
+    public boolean performFinish() {
+        // TODO: get Selection and save in EditorPreferences
+        if (!checkNoneChecked()) {
+            Object[] checkedElements = aPage.getViewer().getCheckedElements();
+            Object[] grayedElements = aPage.getViewer().getGrayedElements();
+            ArrayList checkedList = new ArrayList(Arrays.asList(checkedElements));
+            ArrayList grayedList = new ArrayList(Arrays.asList(grayedElements));
+            checkedList = (ArrayList) CollectionUtils.subtract(checkedList, grayedList);
+            ArrayList<UUID> listUIIDChecked = new ArrayList<UUID>();
+            ArrayList<UUID> listUIIDGrayed = new ArrayList<UUID>();
+            for (Object o : checkedList) {
+                if (o instanceof NamedArea) {
+                    NamedArea na = (NamedArea) o;
+                    listUIIDChecked.add(na.getUuid());
+
+                }else if(o instanceof OrderedTermVocabulary){
+                    OrderedTermVocabulary otb = (OrderedTermVocabulary) o;
+                    listUIIDGrayed.add(otb.getUuid());
+                }
+            }
+            for (Object o : grayedList) {
+                if(o instanceof DefinedTermBase){
+                    DefinedTermBase dt = (DefinedTermBase) o;
+                    listUIIDGrayed.add(dt.getUuid());
+                }else if(o instanceof OrderedTermVocabulary){
+                    OrderedTermVocabulary otb = (OrderedTermVocabulary) o;
+                    listUIIDGrayed.add(otb.getUuid());
+                }
+
+            }
+
+            String saveCheckedElements = StringUtils.join(listUIIDChecked, ",");
+            String saveGrayedElements = StringUtils.join(listUIIDGrayed, ",");
+            IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
+            preferenceStore.setValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS, saveCheckedElements);
+            preferenceStore.setValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED, saveGrayedElements);
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    @Override
+    public void addPages() {
+        addPage(aPage);
+    }
+
+    private boolean checkNoneChecked() {
+
+        if (aPage.getViewer().getCheckedElements().length == 0) {
+            aPage.setMessage("Please check at least one item", aPage.WARNING);
+            return true;
+        } else {
+            aPage.setMessage(null);
+            return false;
+        }
+    }
+
+&nbs