Merge branch 'release/5.23.0' 5.23.0
authorjenkins <jenkins-int@bgbm.org>
Thu, 20 May 2021 15:09:26 +0000 (17:09 +0200)
committerjenkins <jenkins-int@bgbm.org>
Thu, 20 May 2021 15:09:26 +0000 (17:09 +0200)
151 files changed:
eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.application/fragment.e4xmi
eu.etaxonomy.taxeditor.application/pom.xml
eu.etaxonomy.taxeditor.bulkeditor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.bulkeditor/pom.xml
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/CellSelectionListener.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/e4/ReferencingObjectsViewE4.java
eu.etaxonomy.taxeditor.cdmlib/.gitignore
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/build.properties
eu.etaxonomy.taxeditor.cdmlib/pom.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.editor/pom.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/descriptiveDataSet/handler/DeleteDescriptiveDataSetHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ConceptContainerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetListenerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeSynonymToAcceptedTaxonHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/MoveSynonymToAnotherAcceptedTaxonHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/operation/MoveSynonymToAnotherAcceptedTaxonOperationE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusHelper.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/CreateDescriptionElementHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/DeleteHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/DynamicFeatureMenuE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionElementsHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionElementsSetNameInSourceHandlerE5.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaContentProvider.java
eu.etaxonomy.taxeditor.feature.platform/feature.xml
eu.etaxonomy.taxeditor.feature.platform/pom.xml
eu.etaxonomy.taxeditor.feature/feature.xml
eu.etaxonomy.taxeditor.feature/pom.xml
eu.etaxonomy.taxeditor.help/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.help/pom.xml
eu.etaxonomy.taxeditor.local/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.local/pom.xml
eu.etaxonomy.taxeditor.molecular.lib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.molecular.lib/pom.xml
eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.molecular/pom.xml
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/e4/AlignmentEditorE4.java
eu.etaxonomy.taxeditor.navigation/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.navigation/pom.xml
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/Messages.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/messages.properties
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/messages_de.properties
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetSecReferenceForSubtreeHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetPublishForSubtreeOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetSecundumForSubtreeOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchOption.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/e4/SearchResultViewE4.java
eu.etaxonomy.taxeditor.printpublisher/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.printpublisher/build.properties
eu.etaxonomy.taxeditor.printpublisher/pom.xml
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.store/pom.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SearchDialogAdminPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/IBulkEditor.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermEditorE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ExportManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/CdmLightExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExportToFileDestinationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/NomenclaturalCodeHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SearchDialogPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/SetSecundumConfiguratorWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementMediaSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/DistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailElementForNode.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/ImageFileElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaMetaElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/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/occurrence/AbstractDeterminationEventDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CurrentDeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationHistoryDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeDetailElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitDetailElement.java with 94% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeDetailSection.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitDetailSection.java with 85% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeGeneralDetailElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralDetailElement.java with 96% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeGeneralDetailSection.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralDetailSection.java with 84% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSamplePreparationPreservationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSamplePreparationPreservationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/ProgressMonitorClientManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/details/DetailsViewerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/supplementaldata/SupplementalDataPartE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/derivative/DerivateContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/derivative/DerivateLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/sessions/InspectSessionHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/sessions/InspectSessionsDialog.java
eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.test/pom.xml
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/IOServiceImportTest.java
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/h2/cdmTest.h2.db
eu.etaxonomy.taxeditor.workbench/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.workbench/fragment.e4xmi
eu.etaxonomy.taxeditor.workbench/pom.xml
eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product
eu.etaxonomy.taxeditor/pom.xml
pom.xml
project-setup-wire-locally.sh [new file with mode: 0755]

index 6cad12f8e513416c47403302cc3069f4323bebb3..48024c01e972c17dcf12ac9415425033da0f0e05 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Application
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/plugin
index 581cfb2b459a428a71f4fe96bef2ccdbcbba83f1..a67aa6b210a75b4f12b06c90d581bf0361841bcd 100644 (file)
@@ -37,7 +37,7 @@
         <children xsi:type="menu:HandledMenuItem" xmi:id="_35iN8B7PEeeC-JvycL9ysA" elementId="org.eclipse.ui.main.menu.window.preferences" label="%command.label.12" command="_l9kXoB7PEeeC-JvycL9ysA"/>
       </children>
       <children xsi:type="menu:Menu" xmi:id="_KDFiMB6tEeePLJ5to5QrXQ" elementId="org.eclipse.ui.main.menu.admin" label="%menu.label.4">
-        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QAx6wD8_EemTy7SLZkowuQ" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
+        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QAx6wD8_EemTy7SLZkowuQ" coreExpressionId="hasROLE_USER_MANAGER_OR_hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_RsV7EB-IEeeIA_2gwq7JKg" elementId="org.eclipse.ui.main.menu.admin.dbpreferences" label="%command.label.23" command="_JXXNIB-IEeeIA_2gwq7JKg">
           <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_ckfJUB-IEeeIA_2gwq7JKg" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
         </children>
index b82cdfaba3a811d2767c92475d46916673ebb3f3..b9041280ad2087cad80c437882e5292b6f93a89d 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 4a496649453733a450adc7e7f3dffb7292f62602..4f11f0cb1f05252605f25597eafcceafb4fb8d23 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Bulkeditor Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
index 964011f03a47f091a017619b3f9083ae3e1108a0..48d12ba9c76b1595e2a0dccfae1c1d609f74a706 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.22.1</version>
+               <version>5.23.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index dadb6b2d36bb38e281f38b0b3e791d722273ed73..fa09fbc757df93c5c3beee62d1f1070040c734c1 100644 (file)
@@ -55,6 +55,7 @@ import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.GroupEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.IBulkEditor;
 import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
@@ -73,7 +74,7 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  */
 public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnabled, IPostOperationEnabled,
         IDirtyMarkable, IDerivedUnitFacadePart, IPartContentHasFactualData,
-        IPartContentHasSupplementalData, IPartContentHasMedia, IE4SavablePart, ITaxonEditor {
+        IPartContentHasSupplementalData, IPartContentHasMedia, IE4SavablePart, ITaxonEditor, IBulkEditor {
 
     @Inject
        private MDirtyable dirty;
index cdb1f7a93341341822b9fc922a8ad52980bef491..09ebbd4ec1cca0fb218de72b911249636df8ac28 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2018 EDIT
 * European Distributed Institute of Taxonomy
@@ -26,7 +25,6 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 /**
  * @author pplitzner
  * @date 09.07.2018
- *
  */
 final class CellSelectionListener extends E4SelectionListener<CdmBase> {
 
index 685bd8186f6031295a95cda719c8b3cd9308c643..2d9c59d181f1335bd682252109bbad65fa8d4429 100644 (file)
@@ -269,8 +269,10 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase>
             try {
                 UUID uuid = UUID.fromString(titleSearchString);
                 T entity = loadEntity(uuid);
-                //UUID search found -> add entity to list and return
-                model.add(entity);
+                //UUID search found -> add entity to list if not null and return
+                if (entity != null){
+                    model.add(entity);
+                }
                 return;
             } catch (IllegalArgumentException e) {
                 // search string was no UUID
index 2611897b4bdfd4754a4dd6ab238b11d9cd6454ff..fd641d14b2df17d1333a5c38911fd3aa0cde7695 100644 (file)
@@ -115,9 +115,6 @@ public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements
 
     private static final Logger logger = Logger.getLogger(ReferencingObjectsViewE4.class);
 
-    public static final String IS_LOADING = "Loading ...";
-//    public static final String CANCELED = "Canceled ...";
-
     private static final List<ReferencingObjectDto> EMPTY_LIST = Arrays.asList();  //immutable empty list
     private static final RefObjectDtoComparator COMPARATOR = new RefObjectDtoComparator();
 
index 8000a78c4ef391d06ce0f4381b512e49a8f79272..187010da15ae79539a5f98e167cca21ef34966ae 100644 (file)
@@ -1,2 +1,3 @@
 bin
 /target/
+/dev-linked-projects/*-classes
index c32fc03b636e448e4aa07cc6858446ac4e3575fd..8b8c30867b486bca4ff1b10537cff92b84bfe2fc 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: CDM Library Dependencies Plugin
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Eclipse-BundleShape: dir
 Export-Package: com.sun.istack.internal.tools,
  com.sun.istack.internal.ws,
@@ -21,6 +21,7 @@ Export-Package: com.sun.istack.internal.tools,
  eu.etaxonomy.cdm.api.service.longrunningService,
  eu.etaxonomy.cdm.api.service.lsid,
  eu.etaxonomy.cdm.api.service.lsid.impl,
+ eu.etaxonomy.cdm.api.service.media,
  eu.etaxonomy.cdm.api.service.molecular,
  eu.etaxonomy.cdm.api.service.name,
  eu.etaxonomy.cdm.api.service.pager,
@@ -562,13 +563,13 @@ Require-Bundle: org.eclipse.osgi,
 Bundle-ClassPath: .,
  lib/apache-log4j-extras-1.2.17.jar,
  lib/aspectjrt-1.9.6.jar,
- lib/cdmlib-commons-5.22.0.jar,
- lib/cdmlib-ext-5.22.0.jar,
- lib/cdmlib-io-5.22.0.jar,
- lib/cdmlib-model-5.22.0.jar,
- lib/cdmlib-persistence-5.22.0.jar,
- lib/cdmlib-cache-5.22.0.jar,
- lib/cdmlib-services-5.22.0.jar,
+ lib/cdmlib-commons-5.23.0.jar,
+ lib/cdmlib-ext-5.23.0.jar,
+ lib/cdmlib-io-5.23.0.jar,
+ lib/cdmlib-model-5.23.0.jar,
+ lib/cdmlib-persistence-5.23.0.jar,
+ lib/cdmlib-cache-5.23.0.jar,
+ lib/cdmlib-services-5.23.0.jar,
  lib/commons-beanutils-1.9.4.jar,
  lib/commons-codec-1.15.jar,
  lib/commons-collections-3.2.2.jar,
index 3fa96bc81598355447a1cb51c80ab2abe3289942..6ba8713735b8bad2fe0c022866effcfdf9e54c86 100644 (file)
@@ -3,12 +3,12 @@ bin.includes = META-INF/,\
                lib/apache-log4j-extras-1.2.17.jar,\
                lib/aspectjrt-1.9.6.jar,\
                lib/aspectjweaver-1.9.6.jar,\
-               lib/cdmlib-commons-5.22.0.jar,\
-               lib/cdmlib-ext-5.22.0.jar,\
-               lib/cdmlib-io-5.22.0.jar,\
-               lib/cdmlib-model-5.22.0.jar,\
-               lib/cdmlib-persistence-5.22.0.jar,\
-               lib/cdmlib-services-5.22.0.jar,\
+               lib/cdmlib-commons-5.23.0.jar,\
+               lib/cdmlib-ext-5.23.0.jar,\
+               lib/cdmlib-io-5.23.0.jar,\
+               lib/cdmlib-model-5.23.0.jar,\
+               lib/cdmlib-persistence-5.23.0.jar,\
+               lib/cdmlib-services-5.23.0.jar,\
                lib/commons-beanutils-1.9.4.jar,\
                lib/commons-codec-1.15.jar,\
                lib/commons-collections-3.2.2.jar,\
@@ -89,7 +89,7 @@ bin.includes = META-INF/,\
                lib/lucene-analyzers-common-5.4.1.jar,\
                lib/lucene-sandbox-5.4.1.jar,\
                lib/lucene-suggest-5.4.1.jar,\
-               lib/cdmlib-cache-5.22.0.jar,\
+               lib/cdmlib-cache-5.23.0.jar,\
                lib/org.swtchart_0.10.0.v20160212.jar,\
                lib/commons-collections4-4.4.jar,\
                lib/commons-math3-3.6.1.jar,\
index 53a8a67feb8c23ebcb2636c4620f7a29f78c200e..778901c23d79d7d566d03a7b592cade44249b3fa 100644 (file)
@@ -4,7 +4,7 @@
   <parent>\r
     <groupId>eu.etaxonomy</groupId>\r
     <artifactId>taxeditor-parent</artifactId>\r
-    <version>5.22.1</version>\r
+    <version>5.23.0</version>\r
   </parent>\r
   <modelVersion>4.0.0</modelVersion>\r
   <artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
index cd1971f2f1c3efe4b05c3c5c4277da4faeb8caf7..ffb2d352a537b162b0d65c3d845d60bb6ed6d8d6 100644 (file)
@@ -74,6 +74,7 @@ import eu.etaxonomy.cdm.api.service.ITestService;
 import eu.etaxonomy.cdm.api.service.IUserService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;\r
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFactory;\r
 import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;\r
 import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;\r
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
@@ -459,6 +460,11 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return (IEntityConstraintViolationService) getService(IEntityConstraintViolationService.class, "/remoting/entityconstraintviolation.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
+    @Override\r
+    public MediaInfoFactory getMediaInfoFactory(){ // TODO use interface\r
+        return (MediaInfoFactory) getService(MediaInfoFactory.class, "/remoting/mediainfofactory.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+    }\r
+\r
     @Override\r
     public ICdmPermissionEvaluator getPermissionEvaluator(){\r
 \r
index dc824f5bab881620b95343e546c34c790c65b916..b491d38fbef282c63fbdf32efce7774997871bcc 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Editor Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: OSGI-INF/l10n/plugin
index 303cd3d2cce799c96f7314147e0dd3cedd84840d..6c4802e52cb1f98108fd21e399ec4fcfbce72828 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
   
   <modelVersion>4.0.0</modelVersion>
index ee461f17229e314b394c26d52d73f1d0c4ee6575..2cae011e2eb9c675a510df35919da913556ee85f 100644 (file)
@@ -227,17 +227,33 @@ public class EditorUtil extends AbstractUtility {
 
         Collection<MPart> parts = partService.getParts();
         //check if part is already opened
+        MPart alreadyOpenInOtherClassification = null;
         for (MPart part : parts) {
                if(part.getObject() instanceof TaxonNameEditorE4
                     && ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null
                     && ((TaxonNameEditorE4) part.getObject()).getTaxon().getUuid().equals(input.getTaxon().getUuid())){
-                   if (part.isDirty()){
-                       forceUserSaveE4Editor(((TaxonNameEditorE4) part.getObject()), getShell());
+
+                   UUID inputNode = input.getTaxonNode().getUuid();
+                   UUID editorNode = ((TaxonNameEditorE4) part.getObject()).getTaxonNode().getUuid();
+                   if (!inputNode.equals(editorNode)){
+                       alreadyOpenInOtherClassification = part;
+                   }else{
+                       partService.activate(part, true);
+                       return;
                    }
-                partService.hidePart(part);
-                break;
+
             }
         }
+        if (alreadyOpenInOtherClassification != null){
+            boolean doSave = forceUserSaveE4Editor(((TaxonNameEditorE4) alreadyOpenInOtherClassification.getObject()), getShell());
+            if (doSave){
+                input = TaxonEditorInputE4.NewInstance(input.getTaxonNode().getUuid());
+                partService.hidePart(alreadyOpenInOtherClassification);
+            }else {
+                return;
+            }
+        }
+
         MPart part = showPart(NAME_EDITOR_ID, modelService, partService, application);
 
         TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
index ae70412b7edabb1ef1664422ecdd4f002905a701..18c8fd5c344ed5047e217d0a1dd2bb6592e14987 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+ * 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.descriptiveDataSet.handler;
 
 import java.util.Iterator;
@@ -29,6 +36,7 @@ import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetNaviga
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
 
@@ -44,7 +52,7 @@ public class DeleteDescriptiveDataSetHandler {
            this.partService = partService;
            Object object = activePart.getObject();
            if(!selection.isEmpty()  && object instanceof DescriptiveDataSetNavigator){
-               Iterator iterator = selection.iterator();
+               Iterator<?> iterator = selection.iterator();
                while(iterator.hasNext()){
                    Object next = iterator.next();
                    if(next instanceof DescriptiveDataSet){
@@ -53,19 +61,17 @@ public class DeleteDescriptiveDataSetHandler {
                        if (!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfig, shell, Messages.DeleteDescriptiveDataSetHandler_DELETE_TITLE,  Messages.DeleteDescriptiveDataSetHandler_DELETE_MESSAGE)){
                            return;
                        }
-//                         IDescriptiveDataSetService descriptiveDataSetService = CdmStore.getService(IDescriptiveDataSetService.class);
-//                         descriptiveDataSetService.delete(((DescriptiveDataSet) next).getUuid());
-                           deleteDescriptiveDataSet(((DescriptiveDataSet) next).getUuid(), deleteConfig);
-                           DescriptiveDataSetNavigator navigator = (DescriptiveDataSetNavigator) object;
-                           navigator.removeDescriptiveDataSet((DescriptiveDataSet) next);
-                           navigator.getConversationHolder().commit();
-                           navigator.getSelService().setSelection(null);
-
-                       }
-                       else{
-                           MessagingUtils.errorDialog(Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_TITLE, DeleteDescriptiveDataSetHandler.class, Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_MESSAGE, TaxeditorEditorPlugin.PLUGIN_ID, null, false);
-                           return;
-                       }
+//                     IDescriptiveDataSetService descriptiveDataSetService = CdmStore.getService(IDescriptiveDataSetService.class);
+//                     descriptiveDataSetService.delete(((DescriptiveDataSet) next).getUuid());
+                    deleteDescriptiveDataSet(((DescriptiveDataSet) next).getUuid(), deleteConfig);
+                    DescriptiveDataSetNavigator navigator = (DescriptiveDataSetNavigator) object;
+                    navigator.removeDescriptiveDataSet((DescriptiveDataSet) next);
+                    navigator.getConversationHolder().commit();
+                    navigator.getSelService().setSelection(null);
+                }else{
+                    MessagingUtils.errorDialog(Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_TITLE, DeleteDescriptiveDataSetHandler.class, Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_MESSAGE, TaxeditorEditorPlugin.PLUGIN_ID, null, false);
+                    return;
+                }
                }
            }
        }
@@ -85,7 +91,7 @@ public class DeleteDescriptiveDataSetHandler {
                                 monitorUuid,
                                 50,
                                 null,
-                                (List)null,
+                                (List<IFeedbackGenerator>)null,
                                 subMonitor);
                 Object resultObject = remotingMonitor.getResult();
                 if(resultObject instanceof Exception){
@@ -100,8 +106,6 @@ public class DeleteDescriptiveDataSetHandler {
                                         .stream().map(ex->ex.toString())
                                         .collect(Collectors.joining("\n"))));
                     }
-
-
                 }
             } catch (InterruptedException e) {
                 return;
@@ -111,8 +115,4 @@ public class DeleteDescriptiveDataSetHandler {
 
         job.schedule();
     }
-
-
-
-
 }
\ No newline at end of file
index 6b5eae4df0bb843456c11d13267c68341198a19b..1d170287ef5c58565dc8240ddb917c54438ef6c0 100755 (executable)
@@ -32,14 +32,15 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date Aug 24, 2017
  */
 public class ConceptContainerE4 extends AbstractGroupedContainerE4<Taxon> {
-       TaxonRelationship relationship;
-       TaxonRelationshipFormatter misappliedFormatter;
-       ConceptType conceptType;
+
+    private TaxonRelationship relationship;
+    private TaxonRelationshipFormatter misappliedFormatter;
+    private ConceptType conceptType;
 
        public ConceptContainerE4(AbstractGroupE4 group, Taxon misappliedName,  ConceptType conceptType) {
                super(group, misappliedName);
                this.conceptType = conceptType;
-               misappliedFormatter = new TaxonRelationshipFormatter();
+               misappliedFormatter = TaxonRelationshipFormatter.INSTANCE();
        }
 
        @Override
index e6d074670fe2a480b26fb939d6997ae60715290b..a43b8058da365c980a87e59706871f49c189e26e 100644 (file)
@@ -3,6 +3,8 @@
  */
 package eu.etaxonomy.taxeditor.editor.name.e4.dnd;
 
+import java.util.UUID;
+
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.swt.dnd.DND;
@@ -10,7 +12,9 @@ import org.eclipse.swt.dnd.DropTargetAdapter;
 import org.eclipse.swt.dnd.DropTargetEvent;
 
 import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
@@ -29,6 +33,8 @@ import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
 
 /**
  * @author pplitzner
@@ -101,8 +107,13 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                                 } else{
                     getEditor().getConversationHolder().commit();
                     ((TaxonNameEditorE4) target).getConversationHolder().commit();
-
-                    return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
+                    UUID newSecUuid = null;
+                    try{
+                        newSecUuid = getNewSecRef(synonym);
+                    }catch (Exception e){
+                        return null;
+                    }
+                    return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), newSecUuid, (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
 
                 }
 
@@ -118,8 +129,13 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                                } else{
                                        getEditor().getConversationHolder().commit();
                                        ((TaxonNameEditorE4) target).getConversationHolder().commit();
-
-                                       return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
+                                       UUID newSecUuid = null;
+                                       try{
+                                           newSecUuid = getNewSecRef(synonym);
+                                       }catch (Exception e){
+                                           return null;
+                                       }
+                                       return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), newSecUuid, (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
 
                                }
                        }
@@ -143,6 +159,33 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                return null;
        }
 
+    public UUID getNewSecRef(Synonym synonym) throws Exception{
+        Reference synSecRef = synonym.getSec();
+        UUID newSecUuid = null;
+        SecReferenceHandlingEnum secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
+        Reference parentSecRef = ((AbstractHomotypicalGroupContainerE4) target).getEditor().getTaxon() != null? ((AbstractHomotypicalGroupContainerE4) target).getEditor().getTaxon().getSec():null;
+        if ((synSecRef != parentSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepWhenSame) )|| secHandling.equals(SecReferenceHandlingEnum.WarningSelect)){
+
+            if ((parentSecRef != synSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepWhenSame) )|| secHandling.equals(SecReferenceHandlingEnum.WarningSelect)){
+                int result = MessagingUtils.confirmDialog(Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title, Messages.MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message,
+                        new String[]{Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select});
+                if (result == 2){
+                    Reference sec = ReferenceSelectionDialog.select(null, null);
+                    newSecUuid = sec != null? sec.getUuid(): null;
+                }else if (result == 1){
+                    newSecUuid = parentSecRef != null? parentSecRef.getUuid(): null;
+                }else if (result == 0){
+                    newSecUuid = synSecRef != null? synSecRef.getUuid(): null;
+                }else{
+                    return null;
+                }
+
+            }
+
+        }
+        return newSecUuid;
+    }
+
        @Override
        public void dropAccept(DropTargetEvent event) {
                // pass
index 20a02b26e8854e6621b6fdabf91715bd31a9f9b3..e638582151f6c3aa212924541e0aa923a4ee6485 100644 (file)
@@ -56,8 +56,8 @@ import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
  * @since Aug 28, 2017
  */
 public class ChangeSynonymToAcceptedTaxonHandlerE4 implements IPostOperationEnabled {
-       private static final Logger logger = Logger
-                       .getLogger(ChangeSynonymToAcceptedTaxonHandlerE4.class);
+
+    private static final Logger logger = Logger.getLogger(ChangeSynonymToAcceptedTaxonHandlerE4.class);
 
        private TaxonNameEditorE4 editor;
     private EPartService partService;
@@ -98,8 +98,8 @@ public class ChangeSynonymToAcceptedTaxonHandlerE4 implements IPostOperationEnab
                TaxonNode newParentNode = TaxonNodeSelectionDialog.select(shell,// editor.getConversationHolder(),
                        Messages.ChangeSynonymToAcceptedTaxonHandler_SELECT_PARENT, null, null, input.getTaxonNode().getClassification().getUuid(), true);
 
-               Reference parentSecRef = newParentNode.getTaxon() != null? newParentNode.getTaxon().getSec(): null;
                if(newParentNode != null){
+                   Reference parentSecRef = newParentNode.getTaxon() != null? newParentNode.getTaxon().getSec(): null;
 
                        // TODO get synonyms from homotypical group and add them as homotypic synonyms to new accepted taxon
                        // apply confirmation dialog
index 87eacfb5d0247afb4112d100ed965bf28f4130d4..8e342d738cf2f2f48e8483db8c3dd33337cea8e0 100644 (file)
@@ -117,7 +117,7 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
         }
                if(newParentNode!=null){
                   MoveSynonymToAnotherAcceptedTaxonOperationE4 operation = new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.MoveSynonymToAnotherAcceptedTaxonHandler_CHANGE_ACC_TAXON, EditorUtil.getUndoContext(),
-                           synonym.getUuid(), newParentNode.getTaxon(), this, editor);
+                           synonym.getUuid(), newParentNode.getTaxon(),newSecUuid, this, editor);
 
                    AbstractUtility.executeOperation(operation, sync);
                }
index 8d54f18ccc5310c87b0b53bcb3eacb085c654c74..ca25ea9a502f8976cb8314199845f3a97210a1db 100644 (file)
@@ -31,9 +31,10 @@ public class MoveSynonymToAnotherAcceptedTaxonOperationE4 extends
         */
        private final Synonym synonym;
        private IConversationEnabled conversationEnabled;
+       private UUID newSecUuid;
 
     public MoveSynonymToAnotherAcceptedTaxonOperationE4(String label, IUndoContext undoContext, UUID synonymUUID,
-            Taxon taxon, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+            Taxon taxon, UUID newSecRefUuid, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
 
                super(label, undoContext, taxon, postOperationEnabled);
                List<String> propertyPaths =  new ArrayList<String>();
@@ -41,6 +42,7 @@ public class MoveSynonymToAnotherAcceptedTaxonOperationE4 extends
                this.conversationEnabled = conversationEnabled;
                this.element = (Taxon) CdmStore.getService(ITaxonService.class).load(taxon.getUuid(),propertyPaths);
                this.synonym = (Synonym) CdmStore.getService(ITaxonService.class).load(synonymUUID);
+               this.newSecUuid = newSecRefUuid;
                if(synonym == null){
                        throw new IllegalArgumentException(
                                        "A null synonym was provided."); //$NON-NLS-1$
@@ -56,15 +58,16 @@ public class MoveSynonymToAnotherAcceptedTaxonOperationE4 extends
                // Switch groups
                monitor.beginTask("Move synonym to another taxon", 40);
                Taxon oldAccepted = synonym.getAcceptedTaxon();
-
+//             Reference secRef = CdmStore.getService(IReferenceService.class).load(newSecUuid);
                conversationEnabled.getConversationHolder().commit();
+
                UpdateResult result = null;
                try {
                        result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,
                                this.element.getUuid(),
                                true,
                                synonym.getType(),
-                               null,
+                               newSecUuid,
                                null,
                                true);
                } catch (HomotypicalGroupChangeException e) {
index 46a08b033a855bbbe570b355516559f4ca23c859..67aec56b955e198c3079b0af92aeebf92b6356f9 100644 (file)
@@ -6,7 +6,6 @@
 * 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.name.operation;
 
 import java.util.ArrayList;
@@ -21,9 +20,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
@@ -40,10 +37,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation {
 
        private final Synonym synonym;
-       // TODO store the old relationship for undo reasons
-       private SynonymType synonymType;
-
-       private List<TaxonNode> nodes;
 
        private boolean setNameInSource;
 
@@ -62,8 +55,6 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
                super(Messages.SwapSynonymAndAcceptedOperation_SWAP_SYN_ACC_TAXON, undoContext, taxon, postOperationEnabled, cdmEntitySessionEnabled);
                this.setNameInSource = setNameInSource;
                this.synonym = synonym;
-               this.nodes = new ArrayList<TaxonNode>(taxon.getTaxonNodes());
-
        }
 
        @Override
@@ -72,7 +63,7 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
 
                monitor.worked(20);
 
-               UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource);//TODO
+               UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource, false);//TODO
                element = (Taxon)result.getCdmEntity();
                List<String> propertyPath = new ArrayList<>();
                propertyPath.add("synonyms");
@@ -85,7 +76,6 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return execute(monitor, info);
        }
 
index ab7c83508bcd8f5f9f0f91638cc08f1e7e65d5d6..aa5c84333da1f5e1d9cdb6420859efbf07fee4db 100755 (executable)
@@ -76,6 +76,8 @@ import eu.etaxonomy.cdm.api.service.dto.TaxonDistributionDTO;
 import eu.etaxonomy.cdm.compare.term.OrderedTermComparator;
 import eu.etaxonomy.cdm.compare.term.TermIdInVocabularyComparator;
 import eu.etaxonomy.cdm.compare.term.TermLanguageComparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol1Comparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol2Comparator;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Distribution;
@@ -674,6 +676,26 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         return result;
     }
 
+    public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedBySymbol(List<T> namedAreas) {
+        TermSymbol1Comparator<T> comp = new TermSymbol1Comparator<>();
+
+        SortedSet<T> result = new TreeSet<>(comp);
+        if(namedAreas != null){
+            result.addAll(namedAreas);
+        }
+        return result;
+    }
+
+    public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedBySymbol2(List<T> namedAreas) {
+        TermSymbol2Comparator<T> comp = new TermSymbol2Comparator<>();
+
+        SortedSet<T> result = new TreeSet<>(comp);
+        if(namedAreas != null){
+            result.addAll(namedAreas);
+        }
+        return result;
+    }
+
     public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedByVocabularyOrder(List<T> listAreas){
         OrderedTermComparator<T> comp = new OrderedTermComparator<>();
         boolean allOrderedTerms = true;
@@ -692,7 +714,7 @@ public class DistributionEditor extends Composite implements IDistributionEditor
             }
         }
         if (allOrderedTerms){
-            SortedSet<T> result = new TreeSet<>(comp.reversed());
+            SortedSet<T> result = new TreeSet<>(comp);
             result.addAll(listAreas);
             return result;
         }else{
index 45275e61da7b0c8aa6e4a67676ac27d94d6881f1..ae630e91a07440ad05d3b080ef0181be18920496 100755 (executable)
@@ -20,6 +20,8 @@ import org.eclipse.nebula.widgets.nattable.edit.editor.IComboBoxDataProvider;
 import eu.etaxonomy.cdm.compare.term.OrderedTermComparator;
 import eu.etaxonomy.cdm.compare.term.TermIdInVocabularyComparator;
 import eu.etaxonomy.cdm.compare.term.TermLanguageComparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol1Comparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol2Comparator;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.location.NamedArea;
@@ -37,7 +39,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 05.12.2018
- *
  */
 public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
 
@@ -68,10 +69,8 @@ public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
 //            }
 //        }
         return getValues(pref);
-
     }
 
-
     public static List<?> getValues(CdmPreference pref){
         List<StatusHelper> inputAll = new ArrayList<>();
         PresenceAbsenceTerm noneTerm = PresenceAbsenceTerm.NewInstance();
@@ -98,12 +97,21 @@ public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
 
         Comparator<DefinedTermBase> comp = new OrderedTermComparator<>();
         //check the status order preference
-        TermOrder order = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));
+        TermOrder order = null;
+        try{
+            order = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));
+        }catch (IllegalArgumentException e){
+            order = TermOrder.Label;
+        }
 
         if (order.equals(TermOrder.IdInVoc)){
-            comp = new TermIdInVocabularyComparator<DefinedTermBase>();
+            comp = new TermIdInVocabularyComparator<>();
         }else if(order.equals(TermOrder.Label)){
-            comp = new TermLanguageComparator<DefinedTermBase>(Language.DEFAULT(), Language.DEFAULT());
+            comp = new TermLanguageComparator<>(Language.DEFAULT(), Language.DEFAULT());
+        }else if(order.equals(TermOrder.Symbol1)){
+            comp = new TermSymbol1Comparator<>();
+        }else if(order.equals(TermOrder.Symbol2)){
+            comp = new TermSymbol2Comparator<>();
         }
         Collections.sort(inputList, comp);
 //        Collections.sort(inputList, Collections.reverseOrder());
index 73020cdd1846404cd036bb06dfa716254687497d..e43d681d9a8988f306e5e37617e9a9b697ec0571 100755 (executable)
@@ -38,15 +38,18 @@ public class StatusHelper {
             result = ((TermComboEnum) PreferencePredicate.DisplayOfStatusInCombo.getDefaultValue()).getKey();
         }
         TermComboEnum comboDisplay = TermComboEnum.byKey(result);
+        label = term.getTitleCache();
         if(term.getTitleCache().trim().equals("-")){
             label = term.getTitleCache();
-        }else if (comboDisplay.equals(TermComboEnum.IdInVocabulary) && term.getIdInVocabulary() != null){
+        }else if (comboDisplay.equals(TermComboEnum.IdInVocabulary) && !StringUtils.isBlank(term.getIdInVocabulary())){
             label = term.getIdInVocabulary();
-        }else if (comboDisplay.equals(TermComboEnum.Symbol1) && term.getSymbol() != null){
-            label =  term.getSymbol();
-        } else if (comboDisplay.equals(TermComboEnum.Symbol2) && term.getSymbol2() != null){
+        }else if (comboDisplay.equals(TermComboEnum.Symbol1) && !StringUtils.isBlank(term.getSymbol())){
+            if (term.getSymbol() != null){
+                label =  term.getSymbol();
+            }
+        } else if (comboDisplay.equals(TermComboEnum.Symbol2) && !StringUtils.isBlank(term.getSymbol2())){
             label = term.getSymbol2();
-        } else if (comboDisplay.equals(TermComboEnum.Title) && term.getLabel() != null){
+        } else if (comboDisplay.equals(TermComboEnum.Title) && !StringUtils.isBlank(term.getLabel())){
             label = term.getLabel();
         } else if (comboDisplay.equals(TermComboEnum.TermDisplayPlusTitle)){
             if (display.equals(TermDisplayEnum.IdInVocabulary)){
index 3293b3cdb5feb23b79da50564d9f8aa9189c2ddd..030e9b80f962cce9dc6446aeadfd0d9ddf35a70c 100644 (file)
@@ -25,7 +25,6 @@ import eu.etaxonomy.taxeditor.ui.EditViewerDropAdapter;
 /**
  * @author pplitzner
  * @date 18.03.2014
- *
  */
 public class DerivateDropListener extends EditViewerDropAdapter {
 
@@ -60,13 +59,9 @@ public class DerivateDropListener extends EditViewerDropAdapter {
         return LocalSelectionTransfer.getTransfer().isSupportedType(transferType) && target instanceof TreeNode;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void dragOver(DropTargetEvent event) {
         super.dragOver(event);
         event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
     }
-
-}
+}
\ No newline at end of file
index 3c1806c334ae4cb177b2e396697684e6fa51cc1e..b34c78daccaf80200c41408019929779840533d7 100644 (file)
@@ -341,7 +341,7 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         //taxon assignment or derivative type are set
         if(derivates!=null && !derivateSearchCompositeController.isDefaultSearch()){
             List<TreeNode> nodesToSelect = new ArrayList<>();
-            for (SpecimenOrObservationBase specimenOrObservationBase : derivates) {
+            for (SpecimenOrObservationBase<?> specimenOrObservationBase : derivates) {
                 nodesToSelect.add(new TreeNode(specimenOrObservationBase));
             }
             setSelection(new StructuredSelection(nodesToSelect));
index 5b991325c903a397db1d635b654e0b71e25e7f63..0989558fcf71c32959bfdfc60a9b91bd19da94ce 100644 (file)
@@ -11,12 +11,17 @@ package eu.etaxonomy.taxeditor.editor.view.descriptive;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.MatrixUtility;
 import eu.etaxonomy.taxeditor.model.DescriptionHelper;
+import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 
 /**
@@ -39,14 +44,14 @@ public class DescriptiveLabelProvider extends ColumnLabelProvider implements ISt
 
        @Override
     public StyledString getStyledText(Object element) {
-               return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
+           return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
        }
 
        @Override
        public Image getImage(Object element) {
            if(element instanceof DescriptionBase){
                DescriptionBase<?> description = (DescriptionBase<?>)element;
-               if(description.getTypes().contains(DescriptionType.AGGREGATED_STRUC_DESC)){
+               if(description.isComputed()){
                    return MatrixUtility.getAggregatedDescriptionIcon();
                }
                else if(description.getTypes().contains(DescriptionType.SECONDARY_DATA)){
@@ -64,4 +69,21 @@ public class DescriptiveLabelProvider extends ColumnLabelProvider implements ISt
            }
            return null;
        }
+
+       @Override
+    public Color getForeground(Object element) {
+           DescriptionBase desc = null;
+           if (element instanceof DescriptionBase){
+               desc = (DescriptionBase)element;
+           }else if (element instanceof DescriptionElementBase){
+               desc = ((DescriptionElementBase)element).getInDescription();
+           }else if (element instanceof FeatureNodeContainer){
+               desc = ((FeatureNodeContainer)element).getDescription();
+           }
+           if (desc.isComputed()){
+               return Display.getCurrent().getSystemColor(SWT.COLOR_GRAY);
+           }
+           return null;
+    }
+
 }
index 2f7084eaa1c21852ab649688748801ce7ab5d725..db40aff2bb9f9af2098c9deafe24c2987f14d6ff 100644 (file)
@@ -82,11 +82,28 @@ public class CreateDescriptionElementHandlerE4 {
     public boolean canExecute(MHandledMenuItem menuItem,
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection){
         boolean canExecute = false;
-        canExecute = selection.size()==1
-                &&
-                (selection.getFirstElement() instanceof DescriptionBase
-                || selection.getFirstElement() instanceof DescriptionElementBase
-                || selection.getFirstElement() instanceof FeatureNodeContainer);
+        DescriptionBase description = null;
+        Object object = selection.getFirstElement();
+        if(object instanceof FeatureNodeContainer){
+            description = ((FeatureNodeContainer) object).getDescription();
+        }
+        else if(object instanceof DescriptionElementBase){
+            DescriptionElementBase elementBase = HibernateProxyHelper.deproxy(object, DescriptionElementBase.class);
+            description = elementBase.getInDescription();
+        }
+        else if (object instanceof DescriptionBase) {
+            description = HibernateProxyHelper.deproxy(object, DescriptionBase.class);
+        }
+        if (description.isComputed()){
+            canExecute = false;
+            menuItem.getParent().setVisible(false);
+        }else{
+            canExecute = selection.size()==1
+                    &&
+                    (selection.getFirstElement() instanceof DescriptionBase
+                    || selection.getFirstElement() instanceof DescriptionElementBase
+                    || selection.getFirstElement() instanceof FeatureNodeContainer);
+        }
         menuItem.setVisible(canExecute);
         return canExecute;
 
index e8d0dd336e123eefb2bd468d62eea4007c3b639f..6976a536d5d1797e07983cf5948fc123269619ef 100644 (file)
@@ -205,7 +205,15 @@ public class DeleteHandlerE4 {
             MHandledMenuItem menuItem){
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
         ISelection selection = factualDataPart.getViewer().getSelection();
-        boolean canExecute = selection instanceof IStructuredSelection && !selection.isEmpty() && !(((IStructuredSelection)selection).getFirstElement() instanceof FeatureNodeContainer);
+        boolean canExecute = true;
+        if (selection instanceof IStructuredSelection && !selection.isEmpty()){
+            IStructuredSelection sel = (IStructuredSelection) selection;
+            if (sel.getFirstElement() instanceof FeatureNodeContainer){
+                canExecute = false;
+            }
+
+        }
+        canExecute &= selection instanceof IStructuredSelection && !selection.isEmpty() && !(((IStructuredSelection)selection).getFirstElement() instanceof FeatureNodeContainer);
 
         menuItem.setVisible(canExecute);
         return canExecute;
index f362f7410a1d3c9140d3b48958c1e25f109abb5f..2e0e58c1222a35ca32ef57b0cb199ed0f341992a 100644 (file)
@@ -55,12 +55,20 @@ public class DynamicFeatureMenuE4 {
         Object selectedElement = selection.getFirstElement();
 
         if (selectedElement instanceof DescriptionBase<?>) {
+            if (((DescriptionBase<?>) selectedElement).isComputed()){
+                items.remove(menu);
+                return;
+            }
             TermTree<?> featureTree = getFeatureTree((DescriptionBase<?>) selectedElement);
 
             for (TermNode<?> childNode : featureTree.getRootChildren()) {
                 createMenuItem(menu, childNode.getTerm(), globalLanguage);
             }
         } else if (selectedElement instanceof FeatureNodeContainer) {
+            if (((FeatureNodeContainer) selectedElement).getDescription().isComputed()){
+                items.remove(menu);
+                return;
+            }
             TermNode<?> featureNode = ((FeatureNodeContainer) selectedElement)
                     .getFeatureNode();
 
@@ -78,6 +86,10 @@ public class DynamicFeatureMenuE4 {
             }
 
         } else if (selectedElement instanceof DescriptionElementBase) {
+            if (((DescriptionElementBase) selectedElement).getInDescription().isComputed()){
+                items.remove(menu);
+                return;
+            }
             Feature feature = ((DescriptionElementBase) selectedElement)
                     .getFeature();
             createMenuItem(menu, feature, globalLanguage);
index 52728047695232770dc50ee67b4eda7a31ba04ae..152b6510f3f82156c69ca5078b6ea46d9bdec94b 100644 (file)
@@ -234,8 +234,11 @@ public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
             if(selection instanceof IStructuredSelection){
                 boolean selectionProviding = factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4;
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-                canExecute = (firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
-                        || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)) ;
+
+                canExecute = ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
+                                    || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)))
+                            && ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getDescription().isComputed()))
+                                    || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription().isComputed()))) ;
                 menuItem.setVisible(canExecute);
             }
         }
index fc62f3f600d62bbc6636816703174e51cba90c04..8fe934d2ec7b69f93e8561f756b2e2a4eba22b39 100755 (executable)
@@ -234,8 +234,10 @@ public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOpe
             if(selection instanceof IStructuredSelection){
                 boolean selectionProviding = factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4;
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-                canExecute = (firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
-                        || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)) ;
+                canExecute = ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
+                                    || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)))
+                            && ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getDescription().isComputed()))
+                                    || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription().isComputed()))) ;
                 menuItem.setVisible(canExecute);
             }
         }
index 37c5479e23c6e01cd8076d7d6b88564da26ed3cc..c1467c0e2c9a11422184a350d4a9d9979259908d 100644 (file)
@@ -184,7 +184,7 @@ public class MoveDescriptionToOtherTaxonHandlerE4 implements IPostOperationEnabl
             if(selection instanceof IStructuredSelection){
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
                 canExecute = ((IStructuredSelection) selection).size()==1
-                        && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription);
+                        && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription) && !((DescriptionBase)firstElement).isComputed();
                 menuItem.setVisible(canExecute);
             }
         }
index 15984dbb3054375bd1483b55e7bb55c427db0379..97c4a56a2a19a9d03d213a035d5f2161256dfcc5 100755 (executable)
@@ -186,7 +186,7 @@ public class MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5 implements IPos
             if(selection instanceof IStructuredSelection){
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
                 canExecute = ((IStructuredSelection) selection).size()==1
-                        && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription);
+                        && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription) && !((DescriptionBase)firstElement).isComputed();
                 menuItem.setVisible(canExecute);
             }
         }
index e183caeaa4a1b600a8c4a7dbdfa3a412e5da4f6c..f3875df2b12bce7bb3295d18aea0e8caff94e364 100644 (file)
@@ -6,10 +6,8 @@
 * 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.media;
 
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -18,16 +16,11 @@ import org.eclipse.core.runtime.Assert;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -58,7 +51,7 @@ public class MediaContentProvider implements ITreeContentProvider{
                                MessagingUtils.error(getClass(), "Taxon is null", null); //$NON-NLS-1$
                                return NO_CHILDREN;
                        }
-                       HashSet<DescriptionBase<?>> imageGalleries = new HashSet<>();
+                       Set<DescriptionBase<?>> imageGalleries = new HashSet<>();
                        for(DescriptionBase<?> description : taxon.getDescriptions()){
                                if(description.isImageGallery()){
                                        imageGalleries.add(description);
@@ -76,28 +69,9 @@ public class MediaContentProvider implements ITreeContentProvider{
 
                        }
                }
-               else if (parentElement instanceof DerivedUnit){
-                       try {
-                               DerivedUnitFacade facade = DerivedUnitFacade.NewInstance((DerivedUnit) parentElement);
-
-                               SpecimenDescription derivedUnitImageGallery = facade.getDerivedUnitImageGallery(false);
-
-                               if(derivedUnitImageGallery != null){
-                                       return Collections.singleton(derivedUnitImageGallery).toArray();
-                               }
-
-                       } catch (DerivedUnitFacadeNotSupportedException e) {
-                               MessagingUtils.error(this.getClass(), "DerivedUnitFacadeNotSupportedException when trying to instantiate DerivedUnitFacade", e); //$NON-NLS-1$
-                       }
-               }
-               else if (parentElement instanceof FieldUnit){
-                       DerivedUnitFacade facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit) parentElement);
-
-                       SpecimenDescription fieldObjectImageGallery = facade.getFieldObjectImageGallery(false);
-
-                       if(fieldObjectImageGallery != null){
-                           return Collections.singleton(fieldObjectImageGallery).toArray();
-                       }
+               else if (parentElement instanceof SpecimenOrObservationBase){
+                   SpecimenOrObservationBase<?> sob = (SpecimenOrObservationBase<?>)parentElement;
+                       return sob.getSpecimenDescriptionImageGallery().toArray();
                }
                return NO_CHILDREN;
        }
@@ -127,7 +101,7 @@ public class MediaContentProvider implements ITreeContentProvider{
        @Override
     public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
 
-       private List<Media> getImages(DescriptionBase description){
+       private List<Media> getImages(DescriptionBase<?> description){
                Assert.isTrue(description.isImageGallery(), "Description should have the imageGallery flag set."); //$NON-NLS-1$
 
                Set<DescriptionElementBase> elements = description.getElements();
@@ -143,10 +117,4 @@ public class MediaContentProvider implements ITreeContentProvider{
                }
                return null;
        }
-
-       private SpecimenDescription createDerivedUnitFacadeImageGallery(DerivedUnitFacade facade){
-               SpecimenDescription description = SpecimenDescription.NewInstance();
-               description.setImageGallery(true);
-               return description;
-       }
 }
index 394fd3d42304c40ea6a7f35040de167c9a201349..a7b1406782a1b7d650f9fa4137142b3f1879ac12 100644 (file)
@@ -2,7 +2,7 @@
 <feature\r
       id="eu.etaxonomy.taxeditor.feature.platform"\r
       label="Taxeditor Dependencies"\r
-      version="5.22.1"\r
+      version="5.23.0"\r
       os="linux,macosx,win32"\r
       ws="cocoa,gtk,win32"\r
       arch="x86,x86_64">\r
index 766fe92eabd59c38011c2694dfe9479a931f6e84..c1327e65d498b71825bc0d5ad7e67c0acc87aad3 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.22.1</version>
+               <version>5.23.0</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
index ce13193aadd20ad6ef3eb0283d9ffaee9947024e..0d37d5a57a37310890b825f3f8064bef05281212 100644 (file)
@@ -2,7 +2,7 @@
 <feature\r
       id="eu.etaxonomy.taxeditor.feature"\r
       label="Taxonomic Editor"\r
-      version="5.22.1"\r
+      version="5.23.0"\r
       provider-name="EDIT"\r
       plugin="eu.etaxonomy.taxeditor.application"\r
       os="linux,macosx,win32"\r
index 66bf36fa11b2f7fca3c7e84fbb3f72a987e6936e..2e263fb1e2e7a26cdf88c2942bbc316b18dec44f 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
index 280d55c2873db56d15a1fe2b47902910e5a8a2f6..22f5b9999f66f44edde698910e48ec10e29c2c8f 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Help
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
 Bundle-Vendor: EDIT
 Require-Bundle: org.eclipse.ui,
index 8e6acf7e0c1c33b1a33937050356bbcd5564708b..f057a5ba1c2de24488b796f4c2b4fc76fbeed163 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.22.1</version>
+               <version>5.23.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 3a3bbdf9a6095b0216fc29f5a9ea6bd86a4cf842..7dda33978302ce41af09a66eaf4993097f8e48e1 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Local
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.local;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.jface,
  org.eclipse.ui.ide,
index 82eb8e6ce5b9f353514851cb8ec00e751d1a835b..f12b1361308df1119f2831df76c7d8629f85fad7 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>eu.etaxonomy.taxeditor.local</artifactId>
index 1f92c0c672698adc02344d40329651ba9c1df42d..60aa9ac2ff178988689b6c7a0ccbd041354c3221 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: eu.etaxonomy.taxeditor.molecular.lib
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-ClassPath: .,
  lib/owlapi-xmlutils-4.1.4.jar,
  lib/commons-collections4-4.1.jar,
index 6e05e0028aae4279917c1f4bbc0f43c7959d00fa..1595853dfef4c30ac3283f2d488f452cb7e9d2dd 100644 (file)
@@ -7,7 +7,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
   
   <name>Molecular Library Dependencies Bundle</name>
index 2df15daf79b542c7a6d34507c459e39dcc43f2d1..b1620c2fada7ca32f8050cd278f0a88c095c3607 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Molecular Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
index 5d16f5bc9c6501682966b06b5593b6d42d454e20..2f10f0dcb7c40f757febedac43b8a791d379de29 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 2678778cc9736c0e6d0c426026b2fb479345fda0..6ff0bc374f80a42871accb1dc203ea7b16b27bf6 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.molecular.editor.e4;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -85,8 +84,6 @@ import info.bioinfweb.libralign.pherogram.provider.PherogramProvider;
 import info.bioinfweb.libralign.pherogram.provider.ReverseComplementPherogramProvider;
 import info.bioinfweb.tic.SWTComponentFactory;
 
-
-
 /**
  * Editor component to edit a contig alignment used to combine different overlapping pherograms from Sanger sequencing to
  * a consensus sequence.
@@ -138,8 +135,7 @@ public class AlignmentEditorE4 {
 
 
     private MultipleAlignmentsContainer alignmentsContainer = null;
-    private final Map<String, SingleReadAlignment> cdmMap = new TreeMap<String, SingleReadAlignment>();  //TODO Move this to ContigSequenceDataProvider
-
+    private final Map<String, SingleReadAlignment> cdmMap = new TreeMap<>();  //TODO Move this to ContigSequenceDataProvider
 
     @Inject
     private MDirtyable dirty;
@@ -150,7 +146,6 @@ public class AlignmentEditorE4 {
     public AlignmentEditorE4() {
     }
 
-
     private void refreshToolbarElement(String id) {
                ICommandService commandService =
                                PlatformUI.getWorkbench().getActiveWorkbenchWindow().getService(ICommandService.class);
@@ -159,7 +154,6 @@ public class AlignmentEditorE4 {
                }
     }
 
-
     private void registerEditSettingListener(MultipleAlignmentsContainer container) {
         container.getEditSettings().addListener(new EditSettingsListener() {
             @Override
@@ -179,7 +173,6 @@ public class AlignmentEditorE4 {
         });
     }
 
-
     private AlignmentArea createIndexArea(MultipleAlignmentsContainer container, AlignmentArea labeledArea) {
                AlignmentArea result = new AlignmentArea(container);
                result.setAllowVerticalScrolling(false);
@@ -187,7 +180,6 @@ public class AlignmentEditorE4 {
                return result;
     }
 
-
     private AlignmentArea createEditableAlignmentArea(MultipleAlignmentsContainer container, boolean allowVerticalScrolling) {
                AlignmentArea result = new AlignmentArea(container);
                result.setAllowVerticalScrolling(allowVerticalScrolling);
@@ -201,7 +193,6 @@ public class AlignmentEditorE4 {
                return result;
        }
 
-
     private AlignmentArea createConsensusHintArea(MultipleAlignmentsContainer container,
                AlignmentArea labeledArea) {
 
@@ -212,7 +203,6 @@ public class AlignmentEditorE4 {
                return result;
     }
 
-
     private MultipleAlignmentsContainer getAlignmentsContainer() {
        if (alignmentsContainer == null) {
                alignmentsContainer = new MultipleAlignmentsContainer();
@@ -266,7 +256,6 @@ public class AlignmentEditorE4 {
        }
     }
 
-
     /**
      * Checks whether the specified alignment area or one of its subcomponents currently has the
      * focus.
@@ -280,12 +269,10 @@ public class AlignmentEditorE4 {
        return SWTUtils.childHasFocus((Composite)area.getToolkitComponent());
     }
 
-
     public boolean hasPherogram(String sequenceID) {
         return getReadsArea().getDataAreas().getSequenceAreas(sequenceID).size() > PHEROGRAM_AREA_INDEX;
     }
 
-
     public PherogramArea getPherogramArea(String sequenceID) {
         if (hasPherogram(sequenceID)) {
             return (PherogramArea)getReadsArea().getDataAreas().getSequenceAreas(sequenceID).get(PHEROGRAM_AREA_INDEX);
@@ -295,14 +282,12 @@ public class AlignmentEditorE4 {
         }
     }
 
-
     private ConsensusSequenceArea getConsensusHintDataArea() {
         return (ConsensusSequenceArea)getAlignmentsContainer().getAlignmentAreas().
                 get(CONSENSUS_HINT_AREA_INDEX).getDataAreas().getBottomAreas().
                 get(CONSENSUS_DATA_AREA_INDEX);
     }
 
-
     @Deprecated  //TODO Remove as soon as testing period is over
     private void createTestContents() {
                // Just for testing:
@@ -326,8 +311,7 @@ public class AlignmentEditorE4 {
                }
     }
 
-
-    private void readCDMData(Sequence sequenceNode) {
+    private void readCdmData(Sequence sequenceNode) {
        //TODO If called from somewhere else than createPartControl() the editorInput needs to be checked and previous contents need to be cleared (or updated).
 
                // Add reads:
@@ -358,7 +342,6 @@ public class AlignmentEditorE4 {
                //TODO Can the consensus sequence also be null? / Should it be created here, if nothing is in the DB?
     }
 
-
     @PostConstruct
     public void createPartControl(Composite parent) {
         if (CdmStore.isActive()){
@@ -488,7 +471,7 @@ public class AlignmentEditorE4 {
             if(sequenceNode!=null && sequenceNode.getId()!=0){
                 sequenceNode = CdmStore.getService(ISequenceService.class).load(sequenceNode.getUuid());
             }
-            readCDMData(sequenceNode);
+            readCdmData(sequenceNode);
         }
         else {
             createTestContents();  // This case will removed after the test phase and an exception should probably be thrown.
index 25026c4042b8c792f0569713445c95fee3734007..a33c069e0d670a0f8936364a4ea533db7690e20b 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Navigation Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-Activator: eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.navigation,
index 7c37714ce88ad1e984577cb593f58fdfbf5724dc..7a7aeb744351a4bc6b351992cc51c9126778e6a9 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.22.1</version>
+               <version>5.23.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 4768c14fc7d9f2b49fe7e5db4e52a46e3c296513..d18acc6a9e0fb9a90efb883686fbe8e5dae8ade6 100644 (file)
@@ -131,6 +131,7 @@ public class Messages extends NLS {
     public static String SearchBar_8;
     public static String SearchBar_9;
     public static String SearchBar_10;
+    public static String SearchBar_11;
     public static String SearchResultLabelProvider_NAME;
     public static String SearchResultLabelProvider_SYNONYM;
     public static String SearchResultLabelProvider_TAXON;
index 09066f491f99bd47bea6546bd7ac13ebd4952664..36d3a6c2af12b47bfa8a08e9d83e24ac0f081f27 100644 (file)
@@ -112,6 +112,7 @@ SearchBar_7=Synonyms
 SearchBar_8=Names (without taxa)
 SearchBar_9=Common Names
 SearchBar_10=Unpublished taxa
+SearchBar_11=With authors
 SearchResultLabelProvider_NAME=Name: 
 SearchResultLabelProvider_SYNONYM=Synonym: 
 SearchResultLabelProvider_TAXON=Taxon: 
index be4bdb0cbfd4058210fb09f6bb33d236ea5b19a6..cdb3fe29f722777f20aaf8400662173c1b92a1d8 100644 (file)
@@ -112,6 +112,7 @@ SearchBar_7=Synonyme
 SearchBar_8=Namen (ohne Taxa)
 SearchBar_9=Umgangsprachliche Namen
 SearchBar_10=Unpublizierte Taxa
+SearchBar_11=Mit Autoren
 SearchResultLabelProvider_NAME=Name: 
 SearchResultLabelProvider_SYNONYM=Synonym: 
 SearchResultLabelProvider_TAXON=Taxon: 
index 991fcbdb81152a9c04243ff396dfe627d98660ed..1bb6eb18908cb730ff51a8a889ca645f88f74136 100755 (executable)
@@ -107,7 +107,7 @@ public class SetSecReferenceForSubtreeHandlerE4 extends CdmHandlerE4 {
             }
         }
 
-        configurator = new SecundumForSubtreeConfigurator(taxonNode.getUuid());
+        configurator = new SecundumForSubtreeConfigurator(taxonNode.getUuid(), null, null, false);
         SetSecundumForSubtreeConfigurationWizard wizard = new SetSecundumForSubtreeConfigurationWizard(configurator);
 
         WizardDialog dialog = new WizardDialog(shell, wizard);
index 5f7c509781101de34ece057210fa49881c20b4f8..efe0c2b46d1f068cda8b0a8fe1417e7afff96f15 100755 (executable)
@@ -103,7 +103,7 @@ public class SetPublishForSubtreeOperation extends UpdateSubtreeOperation implem
         Display.getDefault().asyncExec(new Runnable() {
             @Override
             public void run() {
-                EditorUtil.executeMoniteredOperation("Set Publish Flag for Subtree",
+                EditorUtil.executeMoniteredOperation("Set Publish Flag for Subtree",
                         uuid,
                         1000,
                         false,
index 0d4f83cc446fab826acb4e55ef6adb920b138874..0a0d71ddee26c41c058e2ba38af6f02510564dce 100755 (executable)
@@ -22,11 +22,11 @@ import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.swt.widgets.Display;
 
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 
@@ -94,12 +94,11 @@ public class SetSecundumForSubtreeOperation extends UpdateSubtreeOperation imple
 
 
     public void runMoniteredOperation() {
-        ITaxonNodeService nodeService;
         final UUID uuid = longRunningTaskService.monitLongRunningTask(config);
         Display.getDefault().asyncExec(new Runnable() {
             @Override
             public void run() {
-                EditorUtil.executeMoniteredOperation("Set Secundum Reference for Subtree: ",
+                AbstractUtility.executeMoniteredOperation("Set Secundum Reference for Subtree",
                         uuid,
                         1000,
                         false,
@@ -114,6 +113,5 @@ public class SetSecundumForSubtreeOperation extends UpdateSubtreeOperation imple
     @Override
     public void postOperation(IRemotingProgressMonitor monitor) {
         // TODO Auto-generated method stub
-
     }
  }
index 82ac11db9258b430a43a8544e31fe99b6c14fbd6..05182ca3a487d6ee2b8aa13711f7d754ea904801 100644 (file)
@@ -340,6 +340,9 @@ public class SearchBar implements IContextListener{
             case UNPUBLISHED:
                 configurator.setIncludeUnpublished(configurator.isIncludeUnpublished() ? false : true);
                 break;
+            case WITH_AUTHOR:
+                configurator.setDoIncludeAuthors(configurator.isDoIncludeAuthors() ? false : true);
+                break;
             default:
                 break;
                        }
index 3d0994c8d82854202dee979f2ddcff261da243b6..05fbc4d877aabef1fa77eaa4da3cb152d16dd369 100644 (file)
@@ -22,7 +22,8 @@ public enum SearchOption {
     SYNONYM(Messages.SearchBar_7),
     NAME(Messages.SearchBar_8),
     COMMON_NAME(Messages.SearchBar_9),
-    UNPUBLISHED(Messages.SearchBar_10);
+    UNPUBLISHED(Messages.SearchBar_10),
+    WITH_AUTHOR(Messages.SearchBar_11);
 
     private final String label;
 
@@ -58,6 +59,9 @@ public enum SearchOption {
         case UNPUBLISHED:
             return PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED)? PreferencesUtil.getPreferenceStore().getBoolean(
                     IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED): true;
+        case WITH_AUTHOR:
+            return PreferencesUtil.getPreferenceStore().getBoolean(
+                    IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS);
 
         }
 
index 9810460aa59187b25d9e598a3f784c83c9f7257c..1775bc50bc14aa53f3e40042304dd823d15dd82e 100644 (file)
@@ -220,6 +220,9 @@ public class SearchResultViewE4 implements IConversationEnabled{
                if(configurator.isDoTaxaByCommonNames()){
                        includedEntities.add(SearchOption.COMMON_NAME.getLabel());
                }
+               if(configurator.isDoIncludeAuthors()){
+            includedEntities.add(SearchOption.WITH_AUTHOR.getLabel());
+        }
                configurator.setMatchMode(MatchMode.LIKE);
 
                String includedEntitiesString = ""; //$NON-NLS-1$
index fde68da4fd7cac432244412be9639cbe7c39da24..8728a06b82099aa961c5f8acf37a1a8fbd81ce4e 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Printpublisher Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Export-Package: eu.etaxonomy.cdm.print,
  eu.etaxonomy.cdm.print.out,
  eu.etaxonomy.cdm.print.out.odf,
@@ -47,8 +47,8 @@ Require-Bundle: org.eclipse.osgi,
  eu.etaxonomy.taxeditor.editor,
  eu.etaxonomy.taxeditor.store
 Bundle-ClassPath: .,
- lib/cdmlib-print-5.22.0.jar,
- lib/cdmlib-remote-5.22.0.jar
+ lib/cdmlib-print-5.23.0.jar,
+ lib/cdmlib-remote-5.23.0.jar
 Import-Package: org.apache.log4j,
  org.eclipse.core.runtime,
  org.eclipse.core.runtime.jobs,
index 3862f964d586798a945beb671b483b912c32386d..5bd21fda2ecbdde9ed6a823e65c24a51a2b7b010 100644 (file)
@@ -2,7 +2,7 @@ source.. = src/main/java/
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
-               lib/cdmlib-print-5.22.0.jar,\
-               lib/cdmlib-remote-5.22.0.jar,\
+               lib/cdmlib-print-5.23.0.jar,\
+               lib/cdmlib-remote-5.23.0.jar,\
                OSGI-INF/l10n/bundle.properties,\
                OSGI-INF/l10n/bundle_de.properties,\
index 4108512439216863f984ecb1593b15c88ef90431..32ae49e1b23e9a8ec69fab97b7870c0ccfff3408 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <artifactId>taxeditor-parent</artifactId>
                <groupId>eu.etaxonomy</groupId>
-               <version>5.22.1</version>
+               <version>5.23.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 41d58e5af689fdbadab3dbe8c4bd81b3a41427ef..c427d04927a2eaafb3b5bfd634fa0fa01fbd53ee 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: DataStore Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/bundle
index 890a884c9e5780835f22ba347c8240f3adfdc3e4..1913606889213d87bb2905d8406ef28814592eb1 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-       <version>5.22.1</version>
+       <version>5.23.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index afa775ad4240aef4d8098953d447b606b805f0a9..eeed296eeabbf1d8fae078c78b2c4ccf7590f52d 100755 (executable)
@@ -11,8 +11,8 @@ package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.SearchDialogPreferences;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -60,11 +60,11 @@ public class SearchDialogAdminPreferences extends SearchDialogPreferences implem
             filterCommonNameReferences = null;
             filterCommonNameReferencesPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameReferencesWithMarker, null);
         }
-        if (this.searchNamedAreasByAbbrevPref != null){
-            searchNamedAreasByAbbrev = searchNamedAreasByAbbrevPref.getValue() != null? NamedAreaSearchField.byKey(searchNamedAreasByAbbrevPref.getValue()): null;
+        if (this.searchTermsByAbbrevPref != null){
+            searchTermsByAbbrev = searchTermsByAbbrevPref.getValue() != null? TermSearchField.byKey(searchTermsByAbbrevPref.getValue()): null;
         }else{
-            searchNamedAreasByAbbrev = null;
-            searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
+            searchTermsByAbbrev = null;
+            searchTermsByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
         }
 
     }
@@ -121,12 +121,12 @@ public class SearchDialogAdminPreferences extends SearchDialogPreferences implem
                 service.remove(filterCommonNameReferencesPref.getKey());
             }
 
-            if(searchNamedAreasByAbbrev != null || !searchNamedAreasByAbbrevPref.isAllowOverride()){
-                pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, searchNamedAreasByAbbrev!= null? searchNamedAreasByAbbrev.getKey():null);
-                pref.setAllowOverride(searchNamedAreasByAbbrevPref.isAllowOverride());
+            if(searchTermsByAbbrev != null || !searchTermsByAbbrevPref.isAllowOverride()){
+                pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, searchTermsByAbbrev!= null? searchTermsByAbbrev.getKey():null);
+                pref.setAllowOverride(searchTermsByAbbrevPref.isAllowOverride());
                 service.set(pref);
             }else{
-                service.remove(searchNamedAreasByAbbrevPref.getKey());
+                service.remove(searchTermsByAbbrevPref.getKey());
             }
         }
         PreferencesUtil.updateDBPreferences();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/IBulkEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/IBulkEditor.java
new file mode 100755 (executable)
index 0000000..3037d25
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+* Copyright (C) 2021 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;
+
+/**
+ * @author k.luther
+ * @since May 5, 2021
+ */
+public interface IBulkEditor {
+
+}
index 5fe6748eba408e278284ef0e35395adc1d4020bc..eff0f6db75887eb6ed2cf00219904612c59bff97 100644 (file)
@@ -223,6 +223,10 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContex
                if(input!=null){
                    input.bind();
                }
+
+               if (viewer.getSelection().isEmpty()){
+                   viewer.setSelection(null);
+               }
        }
 
        @Override
index 895469b95984c592db6f9792cbdc553d05d0e23d..e8e7726b80e65c18447d5816cd848ec10c5888fd 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.io;
 
 import java.io.BufferedWriter;
@@ -58,55 +57,29 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
- * <p>
- * ExportHandler class.
- * </p>
  *
  * @author n.hoffmann
  * @created Sep 11, 2009
- * @version 1.0
  */
-public class ExportManager extends AbstractIOManager<IExportConfigurator> implements IPostMoniteredOperationEnabled {
-
-       private final String successMessage = "The export was successful";
+public class ExportManager
+        extends AbstractIOManager<IExportConfigurator>
+        implements IPostMoniteredOperationEnabled {
 
     private static final Logger logger = Logger.getLogger(ExportManager.class);
     /** Constant <code>DATE_FORMAT_NOW="yyyyMMddHHmm"</code> */
        public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
-       /**
-        *
-        * @param applicationConfiguration
-        */
+
+       private final String successMessage = "The export was successful";
+
        private ExportManager(ICdmRepository applicationConfiguration) {
                super(applicationConfiguration);
        }
 
-       /**
-        * <p>
-        * NewInstance
-        * </p>
-        *
-        * @param applicationConfiguration
-        *            a
-        *            {@link eu.etaxonomy.cdm.api.application.CdmApplicationController}
-        *            object.
-        * @return a {@link eu.etaxonomy.taxeditor.io.ExportManager} object.
-        */
        public static ExportManager NewInstance(
                        ICdmRepository applicationConfiguration) {
                return new ExportManager(applicationConfiguration);
        }
 
-       /**
-        * <p>
-        * createIOJob
-        * </p>
-        *
-        * @param configurator
-        *            a {@link eu.etaxonomy.cdm.io.common.IExportConfigurator}
-        *            object.
-        * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
-        */
        @Override
        protected Job createIOJob(final IExportConfigurator configurator) {
 
@@ -136,7 +109,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
 
 //                             monitor.worked(10);
 
-                               CdmDefaultExport<IExportConfigurator> exporter = new CdmDefaultExport<IExportConfigurator>();
+                               CdmDefaultExport<IExportConfigurator> exporter = new CdmDefaultExport<>();
                                configurator.setProgressMonitor(CdmProgressMonitorAdapter
                                                .CreateSubMonitor(monitor, 80));
                                exporter.setCdmAppController(applicationConfiguration);
@@ -154,29 +127,25 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                                                                        + "Please check error log for details.", e);
                                }
 
-                               display.asyncExec(new Runnable() {
-
-                                       @Override
-                                       public void run() {
-                                               Object activePart = EventUtility.getActivePart();
-                                               if (activePart instanceof IConversationEnabled) {
-                                                       // terminate any open transactions
-                                                       IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
-                                                       // restarting transaction and committing it to
-                                                       // trigger
-                                                       // change listener
-                                                       // TODO verify correct behaviour
-
-                                                       try{
-                                                               conversationEnabled.getConversationHolder()
-                                                                       .startTransaction();
-
-                                                               conversationEnabled.getConversationHolder()
-                                                                       .commit();
-                                                       }catch(RuntimeException e){
-                                                               MessagingUtils.messageDialog("Error starting conversation handling", this, "" +
-                                                                               "Conversation Error: "+ e);
-                                                       }
+                               display.asyncExec(()-> {
+                                       Object activePart = EventUtility.getActivePart();
+                                       if (activePart instanceof IConversationEnabled) {
+                                               // terminate any open transactions
+                                               IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
+                                               // restarting transaction and committing it to
+                                               // trigger
+                                               // change listener
+                                               // TODO verify correct behaviour
+
+                                               try{
+                                                       conversationEnabled.getConversationHolder()
+                                                               .startTransaction();
+
+                                                       conversationEnabled.getConversationHolder()
+                                                               .commit();
+                                               }catch(RuntimeException e){
+                                                       MessagingUtils.messageDialog("Error starting conversation handling", this, "" +
+                                                                       "Conversation Error: "+ e);
                                                }
                                        }
                                });
@@ -184,8 +153,6 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
 
                                return Status.OK_STATUS;
                        }
-
-
                };
 
                return job;
@@ -205,7 +172,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                        IIOService ioService = CdmApplicationState.getIOService();
                        UUID uuid = ioService.monitExportData(configurator);
                        IRemotingProgressMonitor remotingMonitor;
-                       List<IFeedbackGenerator> feedBackGeneratorList = new ArrayList<IFeedbackGenerator>();
+                       List<IFeedbackGenerator> feedBackGeneratorList = new ArrayList<>();
                     try {
                         remotingMonitor = CdmStore.getProgressMonitorClientManager().pollMonitor("Export Data",
                                 uuid,
@@ -215,11 +182,11 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                                 subMonitor);
 
                     } catch (Exception ex) {
-                        return new Status(Status.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
+                        return new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
                     }
 
                        ExportResult result = (ExportResult)remotingMonitor.getResult();
-                       ExportDataWrapper data = result.getExportData();
+                       ExportDataWrapper<?> data = result.getExportData();
                        try{
                        if (result.getExportData().getType().equals(ExportResultType.BYTE_ARRAY) || result.getExportData().getType().equals(ExportResultType.LIST_BYTE_ARRAY)){
                            if (data.getExportData() instanceof byte[]){
@@ -235,7 +202,8 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                                 }
                            }else if (data.getExportData() instanceof List<?>){
                                 //TODO:This needs to be improved
-                               List<byte[]> exportData = (List<byte[]>)data.getExportData();
+                               @SuppressWarnings("unchecked")
+                                List<byte[]> exportData = (List<byte[]>)data.getExportData();
                                     if(exportData != null){
                                         FileOutputStream stream = new FileOutputStream(exportFile);
                                         Writer out = new BufferedWriter(new OutputStreamWriter(
@@ -248,10 +216,9 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                            }
 
                        } else if (result.getExportData().getType().equals(ExportResultType.MAP_BYTE_ARRAY)){
+                            @SuppressWarnings("unchecked")
                             Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
                             Set<String> keySet = resultMap.keySet();
-                            SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
-                            Calendar cal = Calendar.getInstance();
                             String fileEnding = ".zip";
                             if (configurator instanceof DwcaTaxExportConfigurator){
                                DwcaTaxExportConfigurator dwcaConfig = (DwcaTaxExportConfigurator)configurator;
@@ -292,10 +259,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
            };
            return job;
        }
-       /**
-        * @param jaxb
-        * @return
-        */
+
        private IIoConfigurator getConfigurator(TYPE type) {
                Assert.isNotNull(type, "Type should not be null");
 
@@ -310,34 +274,14 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                }
        }
 
-       /**
-        * <p>
-        * JaxbConfigurator
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator} object.
-        */
        public final JaxbExportConfigurator JaxbConfigurator() {
                return (JaxbExportConfigurator) getConfigurator(TYPE.Jaxb);
        }
 
-       /**
-        * <p>
-        * SddConfigurator
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator}
-        *         object.
-        */
        public final SDDExportConfigurator SddConfigurator() {
                return (SDDExportConfigurator) getConfigurator(TYPE.Sdd);
        }
 
-    /**
-     * @param configurator
-     * @param urlString
-     * @return
-     */
     public Job createIOServiceJob(CdmLightExportConfigurator configurator, String urlString) {
         Assert.isNotNull(configurator, "Configuration may not be null");
         final Display display = Display.getDefault();
@@ -354,7 +298,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                      configurator.setProgressMonitor(CdmProgressMonitorAdapter
                              .CreateSubMonitor(monitor, 80));
                      ExportResult result = ioService.export(configurator);
-                     ExportDataWrapper data = result.getExportData();
+                     ExportDataWrapper<?> data = result.getExportData();
                      try{
                          if (result.getExportData().getType().equals(ExportResultType.BYTE_ARRAY) || result.getExportData().getType().equals(ExportResultType.LIST_BYTE_ARRAY)){
                              byte[] exportData = (byte[])data.getExportData();
@@ -369,7 +313,8 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                                 stream.close();
                              }
                          } else if (result.getExportData().getType().equals(ExportResultType.MAP_BYTE_ARRAY)){
-                             Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
+                             @SuppressWarnings("unchecked")
+                            Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
                              Set<String> keySet = resultMap.keySet();
                              SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
                              Calendar cal = Calendar.getInstance();
@@ -441,22 +386,14 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                         null,
                         urlString,
                         isZip);
-
             }
         });
-
     }
 
        @Override
        public void postOperation(IRemotingProgressMonitor monitor) {
-                Display.getDefault().asyncExec(new Runnable() {
-
-                   @Override
-                   public void run() {
-                       CdmStore.getContextManager().notifyContextRefresh();
-                   }
-               });
-
+                Display.getDefault().asyncExec(()-> {
+                CdmStore.getContextManager().notifyContextRefresh();
+        });
        }
-
-}
+}
\ No newline at end of file
index efe00f6ab42b98aedf961ca09d063a6c1c9f22a6..8641bd4cf301e2451a5cd8e0fa98d8fc888008aa 100644 (file)
@@ -47,6 +47,8 @@ import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
 import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportConfigurator;
 import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportState;
 import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -155,7 +157,9 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                         dialog.setTitle(configurator.getClass().getSimpleName()+" Report");
                         dialog.setReportText(reportText.toString());
                         dialog.open();
+
                                                CdmStore.getContextManager().notifyContextRefresh();
+
                                        }
                                });
 
@@ -507,7 +511,7 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                            }
                        });
                        showResult("Abcd Import", display, result, importSuccessMessage);
-
+                       EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);
 
 
                        return Status.OK_STATUS;
index 17362d6a949bbac482a757c756236aca75564764..25ebac4ca9ca0509279ece7c79424081fa4bc281 100644 (file)
@@ -73,7 +73,6 @@ AbstractExportWizardE4<CdmLightExportConfigurator> {
             }else{
                 configurator.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(selectedNode.getUuid()));
             }
-
         }
     }
 
@@ -83,7 +82,6 @@ AbstractExportWizardE4<CdmLightExportConfigurator> {
         return configurator;
     }
 
-
     @Override
     public boolean performFinish() {
         String urlString = page.getFolderText() + File.separator ;
index 10faf45809d143c8521be038d9d7f4e81a074441..e38da72bb27932d9a0206e7ecc1bdf5d222ffa77 100644 (file)
@@ -522,7 +522,7 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
                classificationSelectionCombo = new Combo(parent, SWT.BORDER| SWT.READ_ONLY);
                classificationSelectionCombo.setLayoutData(gridData);
                for(Classification tree : classifications){
-                       classificationSelectionCombo.add(tree.getName().getText(), classifications.indexOf(tree));
+                       classificationSelectionCombo.add(tree.getTitleCache(), classifications.indexOf(tree));
                }
 
                classificationSelectionCombo.select(classifications.indexOf(selectedClassification));
index afb07df12517cf3d0f2b34bc3975e5e704369d14..3eb2f2af050bd673dbd06eabc586041691bdf276 100644 (file)
@@ -299,10 +299,11 @@ public class Messages extends NLS {
 
     public static String SetSecundumConfiguration_IncludeAcceptedTaxa;
     public static String SetSecundumConfiguration_IncludeSynonyms;
-    public static String SetSecundumConfiguration_OverwriteExistingAccepted;
-    public static String SetSecundumConfiguration_OverwriteExistingSynonyms;
+    public static String SetSecundumConfiguration_IncludeMisapplications;
+    public static String SetSecundumConfiguration_IncludeProParteSynonyms;
     public static String SetSecundumConfiguration_EmptySecundumDetail;
     public static String SetSecundumConfiguration_IncludeSharedtaxa;
+    public static String SetSecundumConfiguration_OverwriteExisting;
     public static String SetSecundumConfiguration_NewSecundum_Label;
     public static String SetSecundumConfiguration_Description;
     public static String SetSecundumConfiguration_Description_Configurator;
@@ -752,6 +753,8 @@ public class Messages extends NLS {
     public static String CdmLightPreference_distributionString_tooltip;
 
     public static String SecundumPreference_description;
+
+
     public static String Tree;
 
 
index 6aa5035ef820133c66c8a84eccc21401b852e0f2..ea7db36a3b7c877e9c0b113674d2896a99ced595 100644 (file)
@@ -232,8 +232,9 @@ NewGrantedAuthority_AlreadyInDb=The granted authority already exists.
 
 SetSecundumConfiguration_IncludeAcceptedTaxa=Include accepted taxa
 SetSecundumConfiguration_IncludeSynonyms=Include synonyms
-SetSecundumConfiguration_OverwriteExistingAccepted=Overwrite existing references for accepted taxa
-SetSecundumConfiguration_OverwriteExistingSynonyms=Overwrite existing references for synonyms
+SetSecundumConfiguration_IncludeMisapplications=Include misapplications (err. sec)
+SetSecundumConfiguration_IncludeProParteSynonyms=Include pro parte synonyms (syn. sec.)
+SetSecundumConfiguration_OverwriteExisting=Overwrite existing references
 SetSecundumConfiguration_EmptySecundumDetail=Delete existing secundum reference details (recommended)
 SetSecundumConfiguration_IncludeSharedtaxa=Include shared taxa
 SetSecundumConfiguration_NewSecundum_Label=New secundum reference:
index b65905de148fad6cb11a01292cc83f7090729e6e..824f466620d62b55650dc1a9d9a18f249cf8ae6a 100644 (file)
@@ -231,8 +231,9 @@ NewGrantedAuthority_AlreadyInDb=Die GrantedAuthority ist bereits in der DB entha
 
 SetSecundumConfiguration_IncludeAcceptedTaxa=Anwenden auf akzeptierte Taxa
 SetSecundumConfiguration_IncludeSynonyms=Anwenden auf Synonyme
-SetSecundumConfiguration_OverwriteExistingAccepted=Existierende Secundum Referenzen bei akzeptierten Taxa Ã¼berschreiben
-SetSecundumConfiguration_OverwriteExistingSynonyms=Existierende Secundum Referenzen bei Synonymen Ã¼berschreiben
+SetSecundumConfiguration_IncludeMisapplications=Anwenden auf Fehlanwendungen (err. sec)
+SetSecundumConfiguration_IncludeProParteSynonyms=Anwenden auf Pro Parte Synonyme (syn. sec.)
+SetSecundumConfiguration_OverwriteExisting=Existierende Secundum Referenzen Ã¼berschreiben
 SetSecundumConfiguration_EmptySecundumDetail=Existierende Secundum Referenz Details löschen (empfohlen)
 SetSecundumConfiguration_IncludeSharedtaxa=Auch mehrfach verwendete Taxa mit einbeziehen
 SetSecundumConfiguration_NewSecundum_Label=Neue Secundum Referenz:
index d88e763131b749ab982c4021ff1f276f8f59e715..f4ebd6bbd5e025cad5d8c489ed0113096987d365 100644 (file)
@@ -60,6 +60,9 @@ import org.eclipse.ui.progress.IProgressConstants;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.common.SetMap;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.io.common.ExportDataWrapper;
@@ -556,7 +559,7 @@ public abstract class AbstractUtility {
             if (getClass() != obj.getClass()) {
                 return false;
             }
-            TermNode other = (TermNode) obj;
+            TermNode<?> other = (TermNode<?>) obj;
             if (term == null) {
                 if (other.term != null) {
                     return false;
@@ -646,6 +649,7 @@ public abstract class AbstractUtility {
                     if (!taxaToUpdate.isEmpty() && updateNavigator){
                         refreshNavigator();
                     }
+                    subMonitor.subTask("");
                     return Status.OK_STATUS;
                 }
 
@@ -680,7 +684,7 @@ public abstract class AbstractUtility {
 
     private static Set<Taxon> getTaxaToUpdate(IRemotingProgressMonitor remotingMonitor) {
         Set<Taxon> taxaToUpdate = new HashSet<>();
-        if (remotingMonitor.getResult() instanceof UpdateResult){
+        if (remotingMonitor != null && remotingMonitor.getResult() instanceof UpdateResult){
             for (CdmBase object: ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects()){
                 Taxon taxon = null;
 
@@ -699,42 +703,64 @@ public abstract class AbstractUtility {
         }
         return taxaToUpdate;
     }
+
     public static void createResult(String label, boolean showResult,
             IRemotingProgressMonitor remotingMonitor) {
         final StringBuilder reportSb = new StringBuilder();
-        if (remotingMonitor.getResult() instanceof ExportResult) {
+        if (remotingMonitor == null){
+            reportSb.append("Something went wrong. No result returned from server.");
+        }else if (remotingMonitor.getResult() instanceof ExportResult) {
             reportSb.append(((ExportResult)remotingMonitor.getResult()).createReport());
         }else if (remotingMonitor.getResult() instanceof UpdateResult){
-            if (((UpdateResult)remotingMonitor.getResult()).isOk()){
-                int count = ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects().size();
-                if (count == 0){
-                    count = ((UpdateResult)remotingMonitor.getResult()).getUpdatedCdmIds().size();
-                }
-
-                reportSb.append("Update successful. \n"+"Updated Objects: " +count);
-            }
-            if (!((UpdateResult)remotingMonitor.getResult()).getExceptions().isEmpty()){
-                reportSb.append(((UpdateResult)remotingMonitor.getResult()).getExceptions().toString());
-            }
+            UpdateResult result = (UpdateResult)remotingMonitor.getResult();
+            createUpdateResultReport(reportSb, result);
         }else if (remotingMonitor.getReports()!= null){
             for (String o:remotingMonitor.getReports()){
                 reportSb.append(o);
             }
         }
-        if(showResult && !StringUtils.isBlank(reportSb.toString()) && reportSb.length() != 0) {
+        String report = reportSb.toString();
+        if(showResult && !StringUtils.isBlank(report)) {
             Display.getDefault().asyncExec(new Runnable() {
                 @Override
                 public void run() {
                     // display reports with possibility to save
                     ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
                     dialog.setTitle(label + " Report");
-                    dialog.setReportText(reportSb.toString());
+                    dialog.setReportText(report);
                     dialog.open();
                 }
             });
         }
     }
 
+    public static void createUpdateResultReport(final StringBuilder reportSb, UpdateResult result) {
+        if (result.isOk() || result.isAbort()){
+            SetMap<Class<? extends CdmBase>, Integer> map = getUpdateResultStatistics(result);
+            reportSb.append("Update successful. \n"
+              + "Updated Objects: " + map.sizeAll() + "\n================\n");
+            for (Class<? extends CdmBase> clazz : map.keySet()){
+                reportSb.append( CdmUtils.userFriendlyClassName(clazz)+": " + map.get(clazz).size() + "\n");
+            }
+        }
+        if (!result.getExceptions().isEmpty()){
+            reportSb.append(result.getExceptions().toString());
+        }
+    }
+
+    //TODO move to cdmlib
+    public static SetMap<Class<? extends CdmBase>, Integer> getUpdateResultStatistics(UpdateResult result) {
+        SetMap<Class<? extends CdmBase>, Integer> map = new SetMap<>();
+        for (CdmBase cdmBase : result.getUpdatedObjects()){
+            map.putItem(cdmBase.getClass(), cdmBase.getId());
+        }
+        for (CdmEntityIdentifier entity : result.getUpdatedCdmIds()){
+            map.putItem(entity.getCdmClass(), entity.getId());
+        }
+
+        return map;
+    }
+
     private static void createExportResult(final String label, String urlString, boolean createZip,
             IRemotingProgressMonitor remotingMonitor) {
 
@@ -827,6 +853,7 @@ public abstract class AbstractUtility {
             }
         }
     }
+
     public static void updateNameEditors(Set<Taxon> taxaToUpdate){
         for (Taxon tax: taxaToUpdate){
             if (tax != null){
index 1cf9d3f80e9d6ebe23d8faa91629cfac5f52d10b..6625422b4aa86357235e658e3a663bc0bb6318e7 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.model;
 
 import java.util.ArrayList;
@@ -17,31 +16,17 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
- * <p>NomenclaturalCodeHelper class.</p>
- *
  * @author p.ciardelli
  * @created 11.09.2009
- * @version 1.0
  */
 public class NomenclaturalCodeHelper {
 
-       /**
-        * <p>getAllCodes</p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        public static List<NomenclaturalCode> getAllCodes() {
                return Arrays.asList(NomenclaturalCode.values());
        }
 
-
-       /**
-        * <p>getSupportedCodes</p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        public static List<NomenclaturalCode> getSupportedCodes() {
-               List<NomenclaturalCode> supportedCodes = new ArrayList<NomenclaturalCode>();
+               List<NomenclaturalCode> supportedCodes = new ArrayList<>();
                NomenclaturalCode nomenclaturalCode =PreferencesUtil.getPreferredNomenclaturalCode();
                for (NomenclaturalCode code : getAllCodes()) {
                        if (isSupported(code)) {
@@ -55,10 +40,6 @@ public class NomenclaturalCodeHelper {
                return supportedCodes;
        }
 
-       /**
-        * @param code
-        * @return
-        */
        private static boolean isSupported(NomenclaturalCode code) {
                if (code.equals(NomenclaturalCode.ICNAFP ) || code.equals(NomenclaturalCode.ICZN)) {
                        return true;
@@ -67,16 +48,9 @@ public class NomenclaturalCodeHelper {
                }
        }
 
-
-       /**
-        * <p>getDescription</p>
-        *
-        * @param code a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
-        * @return a {@link java.lang.String} object.
-        */
        public static String getDescription(NomenclaturalCode code) {
-               if (code.equals(NomenclaturalCode.ICNB)) {
-                       return "International Code of Nomenclature of Bacteria (ICNB)";
+               if (code.equals(NomenclaturalCode.ICNP)) {
+                       return "International Code of Nomenclature of Prokaryotes (ICNP)";
                }
                if (code.equals(NomenclaturalCode.ICNAFP )) {
                        return "International Code of Botanical Nomenclature (ICNAFP )";
@@ -93,12 +67,7 @@ public class NomenclaturalCodeHelper {
                return code.name();
        }
 
-       /**
-        * <p>getDefaultCode</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
-        */
        public static NomenclaturalCode getDefaultCode() {
                return NomenclaturalCode.ICNAFP ;
        }
-}
+}
\ No newline at end of file
index 4ba1e0fbca7b10af312e6be5630531c43259f672..9f8930c527e94eabc52179a94d935b1ee3461007 100644 (file)
@@ -864,7 +864,11 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             }\r
         } else {\r
             if (overrideOrderStatus){\r
-                orderStatus = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));\r
+                try{\r
+                    orderStatus = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));\r
+                }catch (IllegalArgumentException e){\r
+                    orderStatus = TermOrder.Label;\r
+                }\r
             }else{\r
                 orderStatus = null;\r
             }\r
index 084568b9ce79c03b7aa75011a001a9640eafe224..05e3d0016f17a07b0bcbd4690b78bacfbe204f5f 100644 (file)
@@ -40,6 +40,7 @@ public interface IPreferenceKeys {
 
        public static final String TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED =  "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doUnpublishedTaxa";
 
+       public static final String TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS =  "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doWithAuthors";
        /**
         * Whether to show UUID and database id in the supplemental data view.
         */
index 5d69cf37f794617d15c4469f24719f2bead883d2..05f3f75d238322d543e164b2a7b5b8d90713b012 100644 (file)
@@ -747,6 +747,10 @@ public class PreferencesUtil implements IPreferenceKeys {
                 IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_NAMES): true);
         configurator.setDoTaxaByCommonNames(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES)? PreferencesUtil.getPreferenceStore().getBoolean(
                 IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES): true);
+        configurator.setDoIncludeAuthors(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS)? PreferencesUtil.getPreferenceStore().getBoolean(
+                IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS): false);
+        configurator.setIncludeUnpublished(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED)? PreferencesUtil.getPreferenceStore().getBoolean(
+                IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED): true);
         //configurator.setMatchMode(eu.etaxonomy.cdm.persistence.query.MatchMode.valueOf(getStringValue(TAXON_SERVICE_CONFIGURATOR_MATCH_MODE)));
 
         return configurator;
@@ -766,7 +770,8 @@ public class PreferencesUtil implements IPreferenceKeys {
         configurator.setDoSynonyms(true);
         configurator.setDoNamesWithoutTaxa(true);
         configurator.setDoTaxaByCommonNames(true);
-
+        configurator.setIncludeUnpublished(true);
+        configurator.setDoIncludeAuthors(false);
         configurator.setTaxonPropertyPath(Arrays.asList("$", "titleCache",
                 "name", "name.$", "relationsFromThisTaxon.$"));
 
@@ -804,6 +809,10 @@ public class PreferencesUtil implements IPreferenceKeys {
                 configurator.isDoNamesWithoutTaxa());
         getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES,
                 configurator.isDoTaxaByCommonNames());
+        getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS,
+                configurator.isDoIncludeAuthors());
+        getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED,
+                configurator.isIncludeUnpublished());
     }
 
     public static void firePreferencesChanged(Class clazz) {
@@ -840,6 +849,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_SYNONYMS, true);
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_NAMES, true);
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES, true);
+        getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS, false);
 
         //Name Details
        // getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.NameDetailsView.getKey()), new NameDetailsConfigurator(false).toString());
@@ -1430,12 +1440,16 @@ public class PreferencesUtil implements IPreferenceKeys {
                  }else if (keyString.equals("getSiblings")){
                      config.setGetSiblings(Boolean.valueOf(valueString));
                  }else if (keyString.equals("classificationUUID")){
-                     config.setClassificationUuid(UUID.fromString(valueString));
+                     if (valueString != null){
+                         config.setClassificationUuid(UUID.fromString(valueString));
+                     }
                  }else if (keyString.equals("classificationName")){
                      config.setClassificationName(valueString);
                  }else if (keyString.equals("dnaSource")){
                      try{
-                         config.setDnaSoure(URI.create(valueString));
+                         if (StringUtils.isNotBlank(valueString)){
+                             config.setDnaSoure(URI.create(valueString));
+                         }
                      }catch(Exception e){
                          config.setDnaSoure(null);
                      }
index 3bfe7f492dc73e88c3b27f2816e64d09fe7d7003..517562e8d9119744d5df338a60391e0f30ca78fb 100755 (executable)
@@ -20,8 +20,8 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 
@@ -37,7 +37,7 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected CdmPreference searchForIdentifierAndTitleCachePref;
     protected CdmPreference sortTaxaByRankAndNamePref;
     protected CdmPreference filterCommonNameReferencesPref;
-    protected CdmPreference searchNamedAreasByAbbrevPref;
+    protected CdmPreference searchTermsByAbbrevPref;
 
 
     protected Boolean showIdInSelectionDialog;
@@ -45,14 +45,14 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected Boolean searchForIdentifierAndTitleCache;
     protected Boolean sortTaxaByRankAndName;
     protected Boolean filterCommonNameReferences;
-    protected NamedAreaSearchField searchNamedAreasByAbbrev;
+    protected TermSearchField searchTermsByAbbrev;
 
     private boolean overrideShowIdInSelectionDialog = true;
     private boolean overrideSearchForIdentifierAsDefault = true;
     private boolean overrideSearchForIdentifierAndTitleCache = true;
     private boolean overrideSortTaxaByRankAndName = true;
     private boolean overrideFilterCommonNameReferences = true;
-    private boolean overrideSearchNamedAreasByAbbrev = true;
+    private boolean overrideSearchTermsByAbbrev = true;
 
     protected Combo showIdInSelectionDialogButton;
     protected Button allowOverrideIsShowIdInSelectionDialogButton;
@@ -64,8 +64,8 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected Button allowOverrideIsSortTaxaByRankAndNameButton;
     protected Combo filterCommonNameReferenceButton;
     protected Button allowOverrideFilterCommonNameReferencesButton;
-    protected Combo searchNamedAreasByAbbrevButton;
-    protected Button allowOverridesearchNamedAreasByAbbrevButton;
+    protected Combo searchTermsByAbbrevButton;
+    protected Button allowOverridesearchTermsByAbbrevButton;
 
 
 
@@ -77,14 +77,14 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
         searchForIdentifierAndTitleCachePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.SearchForIdentifierAndTitleCache);
         sortTaxaByRankAndNamePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.SortTaxaByRankAndName);
         filterCommonNameReferencesPref =  PreferencesUtil.getPreferenceFromDB(PreferencePredicate.CommonNameReferencesWithMarker);
-        searchNamedAreasByAbbrevPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NamedAreaSearchForAbbrev);
+        searchTermsByAbbrevPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NamedAreaSearchForAbbrev);
 
         overrideShowIdInSelectionDialog = PreferencesUtil.getOverrideForPreference(PreferencePredicate.ShowIdInSelectionDialog.getKey());
         overrideSearchForIdentifierAsDefault = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SearchForIdentifierAsDefault.getKey());
         overrideSearchForIdentifierAndTitleCache = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SearchForIdentifierAndTitleCache.getKey());
         overrideSortTaxaByRankAndName = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SortTaxaByRankAndName.getKey());
         overrideFilterCommonNameReferences = PreferencesUtil.getOverrideForPreference(PreferencePredicate.CommonNameReferencesWithMarker.getKey());
-        overrideSearchNamedAreasByAbbrev = PreferencesUtil.getOverrideForPreference(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());
+        overrideSearchTermsByAbbrev = PreferencesUtil.getOverrideForPreference(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());
 
         if(overrideShowIdInSelectionDialog){
             showIdInSelectionDialog = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey(), true);
@@ -101,9 +101,9 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
         if(overrideFilterCommonNameReferences){
             filterCommonNameReferences = PreferencesUtil.getBooleanValue(PreferencePredicate.CommonNameReferencesWithMarker.getKey(), true);
         }
-        if(overrideSearchNamedAreasByAbbrev){
+        if(overrideSearchTermsByAbbrev){
             String stringValue = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), true);
-            searchNamedAreasByAbbrev = stringValue != null? NamedAreaSearchField.byKey(stringValue):null;
+            searchTermsByAbbrev = stringValue != null? TermSearchField.byKey(stringValue):null;
         }
 
 
@@ -185,13 +185,13 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             }
         }
 
-        if (e.getSource().equals(this.searchNamedAreasByAbbrevButton)) {
-            String text = searchNamedAreasByAbbrevButton.getText();
+        if (e.getSource().equals(this.searchTermsByAbbrevButton)) {
+            String text = searchTermsByAbbrevButton.getText();
             if(text.startsWith(Messages.Preference_Use_Default)){
-                searchNamedAreasByAbbrev = null;
+                searchTermsByAbbrev = null;
                 return;
             }
-            searchNamedAreasByAbbrev = (NamedAreaSearchField) searchNamedAreasByAbbrevButton.getData(text);
+            searchTermsByAbbrev = (TermSearchField) searchTermsByAbbrevButton.getData(text);
 
         }
 
@@ -336,25 +336,25 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             });
         }
 
-        searchNamedAreasByAbbrevButton = createCombo(composite, NamedAreaSearchField.values(), PreferencePredicate.NamedAreaSearchForAbbrev, Messages.DatabasePreferncesPage_NamedAreaSearchField, isAdminPreference);
-        searchNamedAreasByAbbrevButton.addSelectionListener(this);
+        searchTermsByAbbrevButton = createCombo(composite, TermSearchField.values(), PreferencePredicate.NamedAreaSearchForAbbrev, Messages.DatabasePreferncesPage_NamedAreaSearchField, isAdminPreference);
+        searchTermsByAbbrevButton.addSelectionListener(this);
 
 
-        if (!isAdminPreference && searchNamedAreasByAbbrevPref != null){
-            searchNamedAreasByAbbrevButton.setEnabled(searchNamedAreasByAbbrevPref.isAllowOverride());
+        if (!isAdminPreference && searchTermsByAbbrevPref != null){
+            searchTermsByAbbrevButton.setEnabled(searchTermsByAbbrevPref.isAllowOverride());
         }
 
         if (isAdminPreference){
-            allowOverridesearchNamedAreasByAbbrevButton = createAllowOverrideButton(composite);
-            allowOverridesearchNamedAreasByAbbrevButton.setSelection(searchNamedAreasByAbbrevPref != null? searchNamedAreasByAbbrevPref.isAllowOverride():true);
-            allowOverridesearchNamedAreasByAbbrevButton.addSelectionListener(new SelectionAdapter(){
+            allowOverridesearchTermsByAbbrevButton = createAllowOverrideButton(composite);
+            allowOverridesearchTermsByAbbrevButton.setSelection(searchTermsByAbbrevPref != null? searchTermsByAbbrevPref.isAllowOverride():true);
+            allowOverridesearchTermsByAbbrevButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     setApply(true);
-                    if (searchNamedAreasByAbbrevPref == null && !allowOverridesearchNamedAreasByAbbrevButton.getSelection()){
-                        searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
+                    if (searchTermsByAbbrevPref == null && !allowOverridesearchTermsByAbbrevButton.getSelection()){
+                        searchTermsByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
                     }
-                    searchNamedAreasByAbbrevPref.setAllowOverride(allowOverridesearchNamedAreasByAbbrevButton.getSelection());
+                    searchTermsByAbbrevPref.setAllowOverride(allowOverridesearchTermsByAbbrevButton.getSelection());
                 }
             });
         }
@@ -396,11 +396,11 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             allowOverrideFilterCommonNameReferencesButton.setSelection(true);
             filterCommonNameReferencesPref.setAllowOverride(true);
         }
-        searchNamedAreasByAbbrevButton.select(0);
-        searchNamedAreasByAbbrev = null;
+        searchTermsByAbbrevButton.select(0);
+        searchTermsByAbbrev = null;
         if (isAdminPreference){
-            allowOverridesearchNamedAreasByAbbrevButton.setSelection(true);
-            searchNamedAreasByAbbrevPref.setAllowOverride(true);
+            allowOverridesearchTermsByAbbrevButton.setSelection(true);
+            searchTermsByAbbrevPref.setAllowOverride(true);
         }
         setApply(true);
     }
@@ -458,9 +458,9 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
                 override);
         override = false;
 
-        if(searchNamedAreasByAbbrev != null){
+        if(searchTermsByAbbrev != null){
             override = true;
-            PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), searchNamedAreasByAbbrev.getKey());
+            PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), searchTermsByAbbrev.getKey());
         }
         PreferencesUtil.setBooleanValue(
                 PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaSearchForAbbrev.getKey()),
@@ -558,15 +558,15 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             index++;
         }
         index = 0;
-        for (String itemLabel: searchNamedAreasByAbbrevButton.getItems()) {
-            if ((searchNamedAreasByAbbrev == null || (!overrideSearchNamedAreasByAbbrev && !isAdminPreference)) && itemLabel.startsWith(Messages.Preference_Use_Default)) {
-                searchNamedAreasByAbbrevButton.select(index);
+        for (String itemLabel: searchTermsByAbbrevButton.getItems()) {
+            if ((searchTermsByAbbrev == null || (!overrideSearchTermsByAbbrev && !isAdminPreference)) && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+                searchTermsByAbbrevButton.select(index);
                 break;
             }
 
 
-            if (searchNamedAreasByAbbrev != null && itemLabel.equals(searchNamedAreasByAbbrev.getLabel())){
-                searchNamedAreasByAbbrevButton.select(index);
+            if (searchTermsByAbbrev != null && itemLabel.equals(searchTermsByAbbrev.getLabel())){
+                searchTermsByAbbrevButton.select(index);
                 break;
             }
 
index 40a1909537cb6e4abd39300489c51df7c18171f3..8db5038ca39072591515ede5cad289f630fc37c9 100644 (file)
@@ -278,6 +278,9 @@ public class TermTreeEditor<T extends DefinedTermBase>
         if(cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
+        if (viewer.getSelection().isEmpty()){
+            viewer.setSelection(null);
+        }
        }
 
        @Override
index d8b9f876fb1dc613592005812f4eb195e11355ae..4f6e0c589e90ad9257b237211afa87b7ffa25734 100755 (executable)
@@ -44,15 +44,18 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
 
     private  Button btnBrowseReference = null;
 
-    private  Text textReference = null;
-    private  Button btnClear = null;
+    private Text textReference = null;
+    private Button btnClear = null;
     private EntitySelectionElement<Reference> selectReference;
-    private  Button btnIncludeAcceptedTaxa;
+    private Button btnIncludeAcceptedTaxa;
     private Button btnIncludeSynonyms;
-    private Button btnOverwriteExistingAccepted;
-    private Button btnOverwriteExistingSynonyms;
+    private Button btnOverwriteExisting;
+//    private Button btnOverwriteExistingSynonyms;
+//    private Button btnOverwriteExistingRelations;
     private Button btnEmptySecundumDetail;
     private Button btnIncludeSharedTaxa;
+    private Button btnIncludeMisappliedNamed;
+    private Button btnIncludeProParteSynonyms;
 
 
     /**
@@ -81,13 +84,17 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
         IObservableValue includeSynonymsConfiguratorObserveValue = PojoProperties.value("includeSynonyms").observe(configurator);
         bindingContext.bindValue(observeSelectionBtnIncludeSynonyms, includeSynonymsConfiguratorObserveValue, null, null);
 
-        IObservableValue observeSelectionBtnOverwriteExistingAccepted = WidgetProperties.selection().observe(btnOverwriteExistingAccepted);
-        IObservableValue overwriteExistingAcceptedConfiguratorObserveValue = PojoProperties.value("overwriteExistingAccepted").observe(configurator);
-        bindingContext.bindValue(observeSelectionBtnOverwriteExistingAccepted, overwriteExistingAcceptedConfiguratorObserveValue, null, null);
+        IObservableValue observeSelectionBtnIncludeMisappliedNames = WidgetProperties.selection().observe(btnIncludeMisappliedNamed);
+        IObservableValue includeMisappliedNamesConfiguratorObserveValue = PojoProperties.value("includeMisapplications").observe(configurator);
+        bindingContext.bindValue(observeSelectionBtnIncludeMisappliedNames, includeMisappliedNamesConfiguratorObserveValue, null, null);
 
-        IObservableValue observeSelectionBtnOverwriteExistingSynonyms = WidgetProperties.selection().observe(btnOverwriteExistingSynonyms);
-        IObservableValue overwriteExistingSynonymsConfiguratorObserveValue = PojoProperties.value("overwriteExistingSynonyms").observe(configurator);
-        bindingContext.bindValue(observeSelectionBtnOverwriteExistingSynonyms, overwriteExistingSynonymsConfiguratorObserveValue, null, null);
+        IObservableValue observeSelectionBtnIncludeProparteSynonyms = WidgetProperties.selection().observe(btnIncludeProParteSynonyms);
+        IObservableValue includeProparteSynonymsConfiguratorObserveValue = PojoProperties.value("includeProParteSynonyms").observe(configurator);
+        bindingContext.bindValue(observeSelectionBtnIncludeProparteSynonyms, includeProparteSynonymsConfiguratorObserveValue, null, null);
+
+        IObservableValue observeSelectionBtnOverwriteExisting = WidgetProperties.selection().observe(btnOverwriteExisting);
+        IObservableValue overwriteExistingConfiguratorObserveValue = PojoProperties.value("overwriteExisting").observe(configurator);
+        bindingContext.bindValue(observeSelectionBtnOverwriteExisting, overwriteExistingConfiguratorObserveValue, null, null);
 
         IObservableValue observeSelectionBtnEmptySecundumDetail = WidgetProperties.selection().observe(btnEmptySecundumDetail);
         IObservableValue emptySecundumDetailConfiguratorObserveValue = PojoProperties.value("emptySecundumDetail").observe(configurator);
@@ -103,18 +110,22 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
     public void createControl(Composite parent) {
 
         final Composite composite = new Composite(parent, SWT.NULL);
-
+        GridData gridComp = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true);
+        gridComp.minimumWidth = 200;
         GridLayout gridLayout = new GridLayout();
-        gridLayout.numColumns = 1;
 
+        gridLayout.numColumns = 1;
+        composite.setLayoutData(gridComp);
         composite.setLayout(gridLayout);
         final Composite compositeRef = new Composite(composite, SWT.NULL);
 
         GridLayout gridLayoutRef = new GridLayout();
         gridLayoutRef.numColumns = 4;
 
+
         compositeRef.setLayout(gridLayoutRef);
-        compositeRef.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true));
+        GridData gridRef = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true);
+        compositeRef.setLayoutData(gridRef);
         Label label = new Label(compositeRef, SWT.WRAP);
         label.setText(Messages.SetSecundumConfiguration_NewSecundum_Label);
         label.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
@@ -125,7 +136,10 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
 //        textReference.setTextLimit(Text.LIMIT);
         textReference.setBackground(StoreUtil
                 .getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
-
+        GridData gridTextReference = new GridData(SWT.FILL, SWT.FILL, true, true);
+        gridTextReference.widthHint = 20;
+        gridTextReference.grabExcessHorizontalSpace = true;
+        textReference.setLayoutData(gridTextReference);
 
         btnBrowseReference = new Button(compositeRef, SWT.NONE);
         btnBrowseReference.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/prj_obj.gif"));
@@ -160,30 +174,24 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
                 Button b = (Button) e.widget;
                 GridData data = (GridData)  btnIncludeAcceptedTaxa.getLayoutData();
                 data.exclude = b.getSelection();
-                btnOverwriteExistingAccepted.setVisible(data.exclude);
-                btnIncludeSharedTaxa.setVisible(data.exclude);
+                boolean isEnabled = true;
                 if (!btnIncludeSynonyms.getSelection() && !data.exclude){
-                    btnEmptySecundumDetail.setVisible(false);
-                    setPageComplete(false);
-                }else{
-                    btnEmptySecundumDetail.setVisible(true);
-                    setPageComplete(true);
+                    isEnabled = false;
                 }
+                btnOverwriteExisting.setVisible(isEnabled);
+                btnEmptySecundumDetail.setVisible(isEnabled);
+                btnIncludeSharedTaxa.setVisible(isEnabled);
+                setPageComplete(isEnabled);
             }
         });
 
-        btnOverwriteExistingAccepted = new Button(control, SWT.CHECK);
-        GridData gd_btnOverwriteExistingAccepted = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-        gd_btnOverwriteExistingAccepted.horizontalIndent = 10;
-        btnOverwriteExistingAccepted.setLayoutData(gd_btnOverwriteExistingAccepted);
-        btnOverwriteExistingAccepted.setText(Messages.SetSecundumConfiguration_OverwriteExistingAccepted);
+//                btnOverwriteExistingAccepted = new Button(control, SWT.CHECK);
+//                GridData gd_btnOverwriteExistingAccepted = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+//                gd_btnOverwriteExistingAccepted.horizontalIndent = 10;
+//                btnOverwriteExistingAccepted.setLayoutData(gd_btnOverwriteExistingAccepted);
+//                btnOverwriteExistingAccepted.setText(Messages.SetSecundumConfiguration_OverwriteExistingAccepted);
+
 
-                btnIncludeSharedTaxa = new Button(control, SWT.CHECK);
-                GridData gd_btnIncludeSharedTaxa = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-                gd_btnIncludeSharedTaxa.horizontalIndent = 10;
-                btnIncludeSharedTaxa.setLayoutData(gd_btnIncludeSharedTaxa);
-                btnIncludeSharedTaxa.setText(Messages.SetSecundumConfiguration_IncludeSharedtaxa);
-                btnIncludeSharedTaxa.setSelection(configurator.isIncludeSharedTaxa());
 
         btnIncludeSynonyms = new Button(control, SWT.CHECK);
         btnIncludeSynonyms.setText(Messages.SetSecundumConfiguration_IncludeSynonyms);
@@ -194,25 +202,80 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
                 Button b = (Button) e.widget;
                 GridData data = (GridData)  btnIncludeSynonyms.getLayoutData();
                 data.exclude = b.getSelection();
-                btnOverwriteExistingSynonyms.setVisible(data.exclude);
-                if (!btnIncludeAcceptedTaxa.getSelection() && !data.exclude){
-                    btnEmptySecundumDetail.setVisible(false);
-                    setPageComplete(false);
-                }else{
-                    btnEmptySecundumDetail.setVisible(true);
-                    setPageComplete(true);
+                boolean isEnabled = true;
+                if (!btnIncludeAcceptedTaxa.getSelection() && !data.exclude && !btnIncludeMisappliedNamed.getSelection() && !btnIncludeProParteSynonyms.getSelection()){
+                    isEnabled = false;
+                }
+                btnEmptySecundumDetail.setVisible(isEnabled);
+                btnOverwriteExisting.setVisible(isEnabled);
+                btnIncludeSharedTaxa.setVisible(isEnabled);
+                setPageComplete(isEnabled);
+
+            }
+        });
+
+//                btnOverwriteExistingSynonyms = new Button(control, SWT.CHECK);
+//                GridData gd_btnOverwriteExistingSynonyms = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+//                gd_btnOverwriteExistingSynonyms.horizontalIndent = 10;
+//                btnOverwriteExistingSynonyms.setLayoutData(gd_btnOverwriteExistingSynonyms);
+//                btnOverwriteExistingSynonyms.setText(Messages.SetSecundumConfiguration_OverwriteExistingSynonyms);
+//                btnOverwriteExistingSynonyms.setSelection(configurator.isOverwriteExistingSynonyms());
+
+        btnIncludeMisappliedNamed = new Button(control, SWT.CHECK);
+        btnIncludeMisappliedNamed.setText(Messages.SetSecundumConfiguration_IncludeMisapplications);
+        btnIncludeMisappliedNamed.setSelection(configurator.isIncludeMisapplications());
+        btnIncludeMisappliedNamed.addListener(SWT.Selection, new Listener() {
+            @Override
+         public void handleEvent(Event e) {
+                Button b = (Button) e.widget;
+                GridData data = (GridData)  btnIncludeMisappliedNamed.getLayoutData();
+                data.exclude = b.getSelection();
+                boolean isEnabled = true;
+                if (!btnIncludeAcceptedTaxa.getSelection() && !btnIncludeProParteSynonyms.getSelection() && !btnIncludeSynonyms.getSelection() && !data.exclude){
+                    isEnabled = false;
                 }
+                btnEmptySecundumDetail.setVisible(isEnabled);
+                btnOverwriteExisting.setVisible(isEnabled);
+                btnIncludeSharedTaxa.setVisible(isEnabled);
+                setPageComplete(isEnabled);
+            }
+        });
+
 
+
+        btnIncludeProParteSynonyms = new Button(control, SWT.CHECK);
+        btnIncludeProParteSynonyms.setText(Messages.SetSecundumConfiguration_IncludeProParteSynonyms);
+        btnIncludeProParteSynonyms.setSelection(configurator.isIncludeProParteSynonyms());
+        btnIncludeProParteSynonyms.addListener(SWT.Selection, new Listener() {
+            @Override
+         public void handleEvent(Event e) {
+                Button b = (Button) e.widget;
+                GridData data = (GridData)  btnIncludeProParteSynonyms.getLayoutData();
+                data.exclude = b.getSelection();
+                boolean isEnabled = true;
+                if (!btnIncludeAcceptedTaxa.getSelection() && !btnIncludeMisappliedNamed.getSelection() && !btnIncludeSynonyms.getSelection() && !data.exclude){
+                    isEnabled = false;
+                }
+                btnEmptySecundumDetail.setVisible(isEnabled);
+                btnOverwriteExisting.setVisible(isEnabled);
+                btnIncludeSharedTaxa.setVisible(isEnabled);
+                setPageComplete(isEnabled);
             }
         });
 
-        btnOverwriteExistingAccepted.setSelection(configurator.isOverwriteExistingAccepted());
-        btnOverwriteExistingSynonyms = new Button(control, SWT.CHECK);
-        GridData gd_btnOverwriteExistingSynonyms = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-        gd_btnOverwriteExistingSynonyms.horizontalIndent = 10;
-        btnOverwriteExistingSynonyms.setLayoutData(gd_btnOverwriteExistingSynonyms);
-        btnOverwriteExistingSynonyms.setText(Messages.SetSecundumConfiguration_OverwriteExistingSynonyms);
-        btnOverwriteExistingSynonyms.setSelection(configurator.isOverwriteExistingSynonyms());
+        Label space = new Label(control, SWT.NONE);
+        btnIncludeSharedTaxa = new Button(control, SWT.CHECK);
+        btnIncludeSharedTaxa.setText(Messages.SetSecundumConfiguration_IncludeSharedtaxa);
+        btnIncludeSharedTaxa.setSelection(configurator.isIncludeSharedTaxa());
+
+        btnOverwriteExisting = new Button(control, SWT.CHECK);
+
+        btnOverwriteExisting.setText(Messages.SetSecundumConfiguration_OverwriteExisting);
+        btnOverwriteExisting.setSelection(configurator.isOverwriteExisting());
+
+
+//        btnOverwriteExistingAccepted.setSelection(configurator.isOverwriteExistingAccepted());
+
         btnEmptySecundumDetail = new Button(control, SWT.CHECK);
         btnEmptySecundumDetail.setText(Messages.SetSecundumConfiguration_EmptySecundumDetail);
         btnEmptySecundumDetail.setSelection(configurator.isEmptySecundumDetail());
index 7a805d54b32aa70c5679b2d327ab149e2928d148..9e39afef646f6a92d9f1102315d1058672211bd0 100644 (file)
@@ -24,8 +24,8 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;\r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
@@ -210,20 +210,20 @@ public class NamedAreaSelectionDialog extends
     @Override\r
     protected void callService(String pattern) {\r
         String abbrevTypeString = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());\r
-        NamedAreaSearchField abbrevType;\r
+        TermSearchField abbrevType;\r
         try{\r
-            abbrevType = StringUtils.isNotBlank(abbrevTypeString)? NamedAreaSearchField.byKey(abbrevTypeString): null;\r
+            abbrevType = StringUtils.isNotBlank(abbrevTypeString)? TermSearchField.byKey(abbrevTypeString): null;\r
         }catch(IllegalArgumentException e){\r
             abbrevType = null;\r
         }\r
         if (selectedVocabularies == null || selectedVocabularies.size() == 0){\r
-            if (abbrevType != null && !abbrevType.equals(NamedAreaSearchField.NoAbbrev)){\r
+            if (abbrevType != null && !abbrevType.equals(TermSearchField.NoAbbrev)){\r
                 model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedAreaByAbbrev(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
             }else{\r
                 model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
             }\r
         }else{\r
-            if (abbrevType != null  && !abbrevType.equals(NamedAreaSearchField.NoAbbrev)){\r
+            if (abbrevType != null  && !abbrevType.equals(TermSearchField.NoAbbrev)){\r
                 model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedAreaByAbbrev(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
             }else{\r
                 model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
index ecdae462ccceeae50157d2835a43e5148eeed107..7a27e1d88f9d755bfe110121a2c0f8237fa22c71 100644 (file)
@@ -104,7 +104,6 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
 import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
@@ -276,10 +275,10 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationEventDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationHistoryDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.EmptySection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
@@ -2001,8 +2000,8 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    public FieldUnitDetailSection createFieldUnitDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        FieldUnitDetailSection section = new FieldUnitDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public FieldUnitFacadeDetailSection createFieldUnitFacadeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        FieldUnitFacadeDetailSection section = new FieldUnitFacadeDetailSection(this, conversation, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
@@ -2079,8 +2078,8 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    public FieldUnitGeneralDetailSection createFieldUnitGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        FieldUnitGeneralDetailSection section = new FieldUnitGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public FieldUnitFacadeGeneralDetailSection createFieldUnitFacadeGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        FieldUnitFacadeGeneralDetailSection section = new FieldUnitFacadeGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
@@ -2453,8 +2452,8 @@ public class CdmFormFactory extends FormToolkit {
     }
 
 
-    public FieldUnitGeneralDetailElement createFieldUnitGeneralDetailElement(ICdmFormElement parentElement){
-        FieldUnitGeneralDetailElement element = new FieldUnitGeneralDetailElement(this, parentElement);
+    public FieldUnitFacadeGeneralDetailElement createFieldUnitFacadeGeneralDetailElement(ICdmFormElement parentElement){
+        FieldUnitFacadeGeneralDetailElement element = new FieldUnitFacadeGeneralDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -2561,8 +2560,8 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public FieldUnitDetailElement createFieldUnitDetailElement(ICdmFormElement parentElement) {
-        FieldUnitDetailElement element = new FieldUnitDetailElement(this, parentElement);
+    public FieldUnitFacadeDetailElement createFieldUnitFacadeDetailElement(ICdmFormElement parentElement) {
+        FieldUnitFacadeDetailElement element = new FieldUnitFacadeDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -3072,7 +3071,6 @@ public class CdmFormFactory extends FormToolkit {
                         removeListener,
                         style);
             }
-
         } else if (entity instanceof NamedArea) {
             element = new CollectingAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
         } else if (entity instanceof DeterminationEvent) {
@@ -3095,7 +3093,7 @@ public class CdmFormFactory extends FormToolkit {
 //            }
         } else if (entity instanceof Identifier) {
             if(parentElement instanceof AbstractSampleDesignationDetailSection){
-                element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
+                element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier) entity, removeListener, backgroundColor, style);
             }
             else{
                 element = new IdentifierElement(this, parentElement, (Identifier) entity, removeListener, style);
index ca12af7193df99d24c321706d1f7ab5598b8ff54..1a8a5078f3d592c2da008df372216c729e4205a4 100644 (file)
@@ -16,8 +16,6 @@ import java.util.Observer;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 
@@ -68,13 +66,8 @@ public abstract class AbstractCdmDetailElement<T>
                formFactory.addPropertyChangeListener(this);
                CdmStore.getLoginManager().addObserver(this);
 
-               getLayoutComposite().getParent().addDisposeListener(new DisposeListener() {
-
-            @Override
-            public void widgetDisposed(DisposeEvent e) {
-                CdmStore.getLoginManager().deleteObserver(AbstractCdmDetailElement.this);
-            }
-        });
+               getLayoutComposite().getParent().addDisposeListener(
+                       e -> CdmStore.getLoginManager().deleteObserver(AbstractCdmDetailElement.this));
        }
 
        /**
index 528f53fba78f120022bb854ec7b196d8a19e469a..1db44967b60f269b77169ee8f6b593bcdd7e94ca 100644 (file)
@@ -186,7 +186,8 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT>
         * Override in subclasses if you want to have a different behaviour.
         */
        protected void setSectionTitle() {
-               Collection<ELEMENT> collection = getCollection(getEntity());
+           ENTITY entity = getEntity();
+               Collection<ELEMENT> collection = getCollection(entity);
                if(collection != null && collection.size() > 0){
                        this.setText(getTitleString() + " +");
                }else{
index f8bb8311614f32549530c59cbf1279adfb89e5de..43837963e4b6c1e038216b520512652a77bc4a3f 100644 (file)
@@ -8,6 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.description;
 
+import java.util.Collection;
 import java.util.stream.Collectors;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -16,7 +17,9 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 
 /**
@@ -34,12 +37,14 @@ public class DescriptionDetailElement
        public DescriptionDetailElement(CdmFormFactory cdmFormFactory,
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
+
        }
 
        @Override
        protected void createControls(ICdmFormElement formElement, DescriptionBase entity, int style) {
         toggleable_cache = formFactory.createToggleableTextField(this, "Label",
                 entity.getTitleCache(), entity.isProtectedTitleCache(), style);
+
                // TODO I initially thought that we can handle the entity's descriptive system with a feature tree
                // Since descriptiveSystem is a Set of Features that are present or allowed for the current description,
                // it is similar to a FeatureTree (you can get this information from a feature tree) but not the same.
@@ -51,15 +56,28 @@ public class DescriptionDetailElement
                        .collect(Collectors.joining(","));
         txtDescriptionTypes = formFactory.createTextWithLabelElement(formElement, "Types", typesString, style);
         txtDescriptionTypes.setEnabled(false);
+
        }
 
-    @Override
-    protected void updateContent() {
-        super.updateContent();
-        toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-        updateCacheRelevance();
+       @Override
+    public void setEnabled(boolean enabled, Collection<Object> except) {
+        this.enabled = enabled;
+        for (ICdmFormElement element : getElements()) {
+            if (element instanceof IEnableableFormElement) {
+                IEnableableFormElement enableableElement = (IEnableableFormElement) element;
+                enableableElement.setEnabled(enabled);
+                if (enableableElement instanceof ToggleableTextElement){
+                    ToggleableTextElement toggle = (ToggleableTextElement)enableableElement;
+                    toggle.getBtnToggleProtectTitleCache().setEnabled(enabled);
+                }
+
+            }
+        }
+        txtDescriptionTypes.setEnabled(false);
     }
 
+
+
     @Override
     protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
         if(!getEntity().isProtectedTitleCache()){
@@ -72,8 +90,13 @@ public class DescriptionDetailElement
        @Override
        public void handleEvent(Object eventSource) {
         if (eventSource == toggleable_cache) {
+            if (!this.enabled){
+                return;
+            }
             getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
             updateCacheRelevance();
         }
        }
+
+
 }
\ No newline at end of file
index 3ac82dc41aaa259c366f91d70d5d35d30bee73c9..fab31fc3246a937044af14469f9cf90b25b45129 100644 (file)
@@ -50,4 +50,14 @@ public class DescriptionDetailSection extends AbstractCdmDetailSection<Descripti
        protected AbstractCdmDetailElement<DescriptionBase<?>> createCdmDetailElement(AbstractCdmDetailSection<DescriptionBase<?>> parentElement, int style) {
            return formFactory.createDescriptionDetailElement(parentElement, style);
        }
+
+       @Override
+    public void setEntity(DescriptionBase<?> entity) {
+           super.setEntity(entity);
+
+           if (entity.isComputed()){
+               setEnabled(false);
+               this.getDetailElement().setEnabled(false);
+           }
+       }
 }
index cf6ec295ceb98993726c226418765e7c27938c66..117c7060527333b7ef2100cdbe8458ce11f57844 100644 (file)
@@ -1,17 +1,21 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
 package eu.etaxonomy.taxeditor.ui.section.description;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
@@ -35,16 +39,32 @@ public class DescriptionElementDetailElement extends
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement, DescriptionElementBase entity, int style) {
                formFactory.createDetailedDescriptionDetailElement(formElement, entity, style, isEnabled());
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               
+
        }
+
+       @Override
+    protected void updateControlStates(){
+        Collection<Object> except = new ArrayList<Object>();
+        for(ICdmFormElement formElement:getElements()){
+            if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
+                except.add(formElement);
+            }
+        }
+        if (getEntity().getInDescription().isComputed()){
+            enabled = false;
+         }else{
+            enabled = true;
+        }
+        setEnabled(enabled, except);
+    }
 }
index 83953e5f3739d6ec143a723e70c60cd921d92911..dfd903744621a84ccd1138a452ef1b37d2a383f9 100644 (file)
@@ -43,6 +43,9 @@ public class DescriptionElementMediaSection extends
                        this.setVisible(false);
                }
                super.setEntity(entity);
+               if (entity.getInDescription().isComputed()){
+                   this.setEnabled(false);
+               }
        }
 
        /** {@inheritDoc} */
index a505829838e59db83e2672ca129584d655cc4b10..cba0308e5cee2b43c8b217be747e9755a0eb3ce8 100644 (file)
@@ -58,6 +58,9 @@ public class DescriptionElementSourceSection extends
         Collection<OriginalSourceBase> sources = new HashSet<>();
         sources.addAll(entity.getSources());
         sources.addAll(entity.getInDescription().getSources());
+        if (entity.getInDescription().isComputed()){
+            this.setEnabled(false);
+        }
         return sources;
     }
 
index bb8579b15a0bc22eeb546040fe791534e2cc8f4b..4e12178bd424df879c520f02fa4a9ca6f6feedf9 100644 (file)
@@ -34,38 +34,23 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>DistributionDetailElement class.</p>
- *
  * @author n.hoffmann
  * @created Jun 10, 2010
- * @version 1.0
  */
 public class DistributionDetailElement extends
                AbstractDetailedDescriptionDetailElement<Distribution> {
 
        private EntitySelectionElement<NamedArea> selection_namedArea;
        private TermComboElement<DefinedTermBase> combo_presenceAbsence;
-       private boolean namedAreaEditable = true;
 
        private TextWithLabelElement taxonOfDistribtion;
 
-
-       /**
-        * <p>Constructor for DistributionDetailElement.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.description.Distribution} object.
-        * @param style a int.
-        */
        public DistributionDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement, Distribution entity, boolean enabled, int style) {
                super(formFactory, formElement, entity, style);
                setEnabled(enabled);
-
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        Distribution entity, int style) {
@@ -108,7 +93,7 @@ public class DistributionDetailElement extends
                }
         CdmPreference pref = CdmPreferenceCache.instance().get(key);
         // if there is no preference for the area, look for the general
-        if (pref == null || pref.isAllowOverride()){
+        if (pref == null ){
             pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey()));
         }
 
@@ -123,13 +108,10 @@ public class DistributionDetailElement extends
             }
         }
 
-
-
         List<DefinedTermBase> inputList = CdmStore.getTermManager().getTerms(uuidList, PresenceAbsenceTerm.class);
         return inputList;
     }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
            super.handleEvent(eventSource);
@@ -155,5 +137,4 @@ public class DistributionDetailElement extends
        public void setName(String nameCache){
            taxonOfDistribtion.setText(nameCache);
        }
-
-}
+}
\ No newline at end of file
index ea493c19fd9d6cbf7ee1f13515100fe245110777..3bceaa22e7f9f0829c51cfad1ef08bf9a5f13a41 100755 (executable)
@@ -11,8 +11,10 @@ package eu.etaxonomy.taxeditor.ui.section.feature;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.ColorResources;
 import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.termtree.e4.ICharacterEditor;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -39,6 +41,7 @@ public class TermTreeDetailElementForNode extends AbstractCdmDetailElement<TermT
 
        @Override
        protected void createControls(ICdmFormElement formElement, TermTree entity, int style) {
+
            Label lblTermType = new Label(formElement.getLayoutComposite(), style);
            lblTermType.setText("Term Type");
            Label lblStructureText = new Label(formElement.getLayoutComposite(), style);
@@ -48,9 +51,17 @@ public class TermTreeDetailElementForNode extends AbstractCdmDetailElement<TermT
            titleCacheText = formFactory.createTextWithLabelElement(
                 formElement, "Title Cache", entity.getTitleCache(), style);
 
+
            allowDuplicates = formFactory.createCheckbox(formElement, "Allow duplicates", entity.isAllowDuplicates(), style);
            orderRelevant = formFactory.createCheckbox(formElement, "Order relevant", entity.isOrderRelevant(), style);
            isFlat = formFactory.createCheckbox(formElement, "Is flat", entity.isFlat(), style);
+           if (AbstractUtility.getActivePart() instanceof ICharacterEditor){
+               titleCacheText.setEnabled(false);
+               allowDuplicates.setEnabled(false);
+               orderRelevant.setEnabled(false);
+               isFlat.setEnabled(false);
+           }
+
     }
 
        @Override
index 4687102726a3132fea4fe3050a40b035e34eab5f..fcb3570bd83c268141275c4fb7f9a7b236bc9f95 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.media;
 
 import org.apache.commons.io.FileUtils;
@@ -16,8 +15,9 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.common.media.CdmImageInfo;
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
 import eu.etaxonomy.cdm.common.URI;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
@@ -48,7 +48,7 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
         @Override
         protected IStatus run(IProgressMonitor monitor) {
             try{
-                CdmImageInfo imageInfo = CdmImageInfo.NewInstanceWithMetaData(uri, 10000);
+                CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo();
                 ImageFileElement.this.getLayoutComposite().getDisplay().asyncExec(()->{
                     element_keyValue.setInput(imageInfo.getMetaData());
                     try {
index 0772c921ce66f00ff2083492a34bc109bb0207f9..b43dd994ad024f1795156476066323b7baaad15a 100644 (file)
@@ -24,6 +24,7 @@ import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Label;
 
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
 import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.common.UriUtils;
 import eu.etaxonomy.cdm.common.media.CdmImageInfo;
@@ -74,7 +75,7 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
 
                 UriUtils.getInputStream(uri);// will fail with a FileNotFoundException if not
 
-                CdmImageInfo imageInfo = CdmImageInfo.NewInstance(uri, 10000);//will fail when it is no image file
+                CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo(); //will fail when it is no image file
                 MediaDetailElement.this.getLayoutComposite().getDisplay().asyncExec(()->{
                     singleMediaRepresentationPart.setSize((int) imageInfo.getLength());
                     if(singleMediaRepresentationPart.isInstanceOf(ImageFile.class)){
index ef762eee1a60e2c711e793b9c443f7013b20a38c..73668912755738917503bbd0d5d534732d1d8a91 100644 (file)
@@ -146,7 +146,7 @@ public class MediaMetaElement extends AbstractEntityCollectionElement<Media> imp
             getEntity().setArtist(selection_artist.getSelection());
         } else if (eventSource == text_description) {
             text_description.getMultilanguageText().values()
-            .forEach(languageString -> getEntity().addDescription(languageString));
+            .forEach(languageString -> getEntity().putDescription(languageString));
         } else if (eventSource == text_title) {
             text_title.getMultilanguageText().values()
             .forEach(languageString -> getEntity().putTitle(languageString));
index 187d1ff9d9cfc6e1294cea93bb97e979a62d98e2..e77f33a1bb020e52c977a1caf97b76e35d27185b 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
 import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.common.UriUtils;
 import eu.etaxonomy.cdm.common.media.CdmImageInfo;
@@ -97,7 +98,7 @@ public class MediaRepresentationElement extends AbstractEntityCollectionElement<
                         return Status.CANCEL_STATUS;
                     }
                     try {
-                       CdmImageInfo imageInfo = CdmImageInfo.NewInstance(uri, 10000);
+                       CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo();
                         String mimeType = imageInfo.getMimeType();
                         getEntity().setMimeType(mimeType);
                         getEntity().setSuffix(imageInfo.getSuffix());
index 187ec256a53a4fb1e857e1f00c2522c3f67d040f..28de2e0ee29b363e5803bc322e0e979805ded4e4 100644 (file)
@@ -190,7 +190,7 @@ public class NameDetailElement
                 //TODO implement
                 logger.warn("ICVCN not yet implemented");
                 break;
-            case ICNB:
+            case ICNP:
                createBacterialNameParts(formElement, nonViralName, style);
                 break;
             case ICNCP:
index 7ee3c5cdc6ab63f4a09aabe346df44a767415723..2ad6889b7658ee9085e71fbde5272c7a6647d304 100644 (file)
@@ -53,7 +53,7 @@ public class NonViralNameDetailElement
 
             combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
             combo_nomenclaturalCode.setSelection(entity.getNameType());
-            if (entity.getNameType().equals(NomenclaturalCode.ICNB)){
+            if (entity.getNameType().equals(NomenclaturalCode.ICNP)){
                text_nameApprobation = formFactory.createTextWithLabelElement(formElement, "Name Approbation", entity.getNameApprobation(),style);
             }
             textLsid = formFactory.createLsidWithExceptionLabelElement(formElement, "Lsid", entity.getLsid(), style);
@@ -65,7 +65,7 @@ public class NonViralNameDetailElement
                        combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
                        combo_nomenclaturalCode.setSelection(entity.getNameType());
                }
-               if (entity.getNameType().equals(NomenclaturalCode.ICNB)){
+               if (entity.getNameType().equals(NomenclaturalCode.ICNP)){
                        if (config.isNameApprobiationActivated()){
                                text_nameApprobation = formFactory.createTextWithLabelElement(formElement, "Name Approbation", entity.getNameApprobation(),style);
                        }
@@ -199,7 +199,7 @@ public class NonViralNameDetailElement
                                return true;
                        }
                }
-               if (actualCode.equals(NomenclaturalCode.ICNB)){
+               if (actualCode.equals(NomenclaturalCode.ICNP)){
                        if (getEntity().getNameApprobation() != null || getEntity().getSubGenusAuthorship() != null){
                                if (MessagingUtils.confirmDialog(Messages.NonViralNameDetails_confirmDeleteOfBacterialNameParts, Messages.NonViralNameDetails_desciptionDeleteOfBacterialNameParts)){
                                        getEntity().setNameApprobation(null);
index bcee75a263a1ff84a2b26186e093ff9a93c1fbc4..b82a805f0dc9cf5866f68bbec27c78d19b2b7891 100644 (file)
@@ -10,8 +10,8 @@
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -22,65 +22,40 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
  *
  * @author n.hoffmann
  * @created Oct 13, 2010
- * @version 1.0
  */
-public abstract class AbstractDeterminationEventDetailSection extends
-               AbstractEntityCollectionSection<DerivedUnitFacade, DeterminationEvent> {
+public abstract class AbstractDeterminationEventDetailSection
+        extends AbstractEntityCollectionSection<SpecimenOrObservationBase, DeterminationEvent> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param title
-        * @param style
-        */
        public AbstractDeterminationEventDetailSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement,
                        String title, int style) {
                super(formFactory, conversation, parentElement, title, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
        @Override
        public DeterminationEvent createNewElement() {
                DeterminationEvent instance = DeterminationEvent.NewInstance();
         if(PreferencesUtil.isDeterminationOnlyForFieldUnits()){
-            instance.setIdentifiedUnit(getEntity().innerFieldUnit());
+            instance.setIdentifiedUnit(getEntity());
         }
         else{
-            instance.setIdentifiedUnit(getEntity().innerDerivedUnit());
+            instance.setIdentifiedUnit(getEntity());
         }
                return instance;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void addElement(DeterminationEvent determination) {
                getEntity().addDetermination(determination);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeElement(DeterminationEvent determination) {
                getEntity().removeDetermination(determination);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No determinations yet.";
        }
-
-}
+}
\ No newline at end of file
index 78d0d6779d8765c2571011fbaa296c95217b0888..95c59c9da7fb7ca3ebff7320d806172dcf2598e1 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Arrays;
@@ -22,8 +21,8 @@ import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.widgets.Control;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -36,12 +35,6 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 public class CurrentDeterminationDetailSection extends
                AbstractDeterminationEventDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param style
-        */
        public CurrentDeterminationDetailSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement,
                        int style) {
@@ -88,7 +81,7 @@ public class CurrentDeterminationDetailSection extends
        }
 
        @Override
-       public Collection<DeterminationEvent> getCollection(DerivedUnitFacade entity) {
+       public Collection<DeterminationEvent> getCollection(SpecimenOrObservationBase entity) {
                DeterminationEvent preferredDetermination = entity.getPreferredDetermination();
                return preferredDetermination != null ? Arrays.asList(new DeterminationEvent[]{preferredDetermination}) : null;
        }
@@ -105,26 +98,18 @@ public class CurrentDeterminationDetailSection extends
                return newElement;
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create new current determination event";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DeterminationEvent addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index 048d8502d2b08fc13eeb0451a1d5daa3d2e27602..a42d807821f223c66ed0e9cd01d382516768f4c0 100644 (file)
@@ -6,10 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -19,48 +18,37 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
-public class DeterminationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DeterminationDetailElement extends AbstractCdmDetailElement<SpecimenOrObservationBase> {
 
        private CurrentDeterminationDetailSection section_currentDetermination;
 
        private DeterminationHistoryDetailSection section_determinationHistory;
 
-       /**
-        * @param formFactory
-        * @param formElement
-        */
        public DeterminationDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, java.lang.Object, int)
-        */
        @Override
        protected void createControls(ICdmFormElement formElement,
-                       DerivedUnitFacade entity, int style) {
+               SpecimenOrObservationBase entity, int style) {
 
-        section_currentDetermination = formFactory.createCurrentDeterminationDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CurrentDeterminationDetailSection.class, entity.getClass().getCanonicalName(), true));
+        section_currentDetermination = formFactory.createCurrentDeterminationDetailSection(
+                getConversationHolder(), formElement, StoreUtil.getSectionStyle(CurrentDeterminationDetailSection.class, entity.getClass().getCanonicalName(), true));
         section_currentDetermination.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         section_currentDetermination.setEntity(entity);
 
-        section_determinationHistory = formFactory.createDeterminationHistoryDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(DeterminationHistoryDetailSection.class, entity.getClass().getCanonicalName()));
+        section_determinationHistory = formFactory.createDeterminationHistoryDetailSection(
+                getConversationHolder(), formElement, StoreUtil.getSectionStyle(DeterminationHistoryDetailSection.class, entity.getClass().getCanonicalName()));
         section_determinationHistory.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         section_determinationHistory.setEntity(entity);
-
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
-        */
        @Override
        public void handleEvent(Object eventSource) {
                if(eventSource == section_currentDetermination){
                        section_determinationHistory.refresh();
                }
        }
-
-}
+}
\ No newline at end of file
index 35e59dab898008f315f4a1eca33f79fe8e180dd7..0db453316eae462ac520a99d7b3a2f863dae568b 100644 (file)
@@ -6,13 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -21,41 +20,28 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
-public class DeterminationDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection {
+public class DeterminationDetailSection
+            extends AbstractCdmDetailSection<SpecimenOrObservationBase>
+            implements IDerivedUnitFacadeDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param selectionProvider
-        * @param style
-        */
        public DeterminationDetailSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
                super(formFactory, conversation, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                String sectionTitle = "Determinations";
                if(getEntity()!=null && getEntity().getDeterminations().size()>0){
-                       return sectionTitle+" +"; 
+                       return sectionTitle+" +";
                }
                return sectionTitle;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
-       protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+       protected AbstractCdmDetailElement<SpecimenOrObservationBase> createCdmDetailElement(AbstractCdmDetailSection<SpecimenOrObservationBase> parentElement, int style) {
            return formFactory.createDeterminationDetailElement(parentElement);
        }
-
-}
+}
\ No newline at end of file
index c7ea73c8987605ee51c7bea9eee09ed890ecbf49..51c0c9135f8a3c26aecf06e0ef9c0893f1baeee2 100644 (file)
@@ -6,16 +6,15 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
-import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -29,8 +28,9 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @author n.hoffmann
  * @created Oct 13, 2010
  */
-public class DeterminationEventDetailElement extends
-               AbstractEventDetailElement<DeterminationEvent> implements ISelectableElement{
+public class DeterminationEventDetailElement
+            extends AbstractEventDetailElement<DeterminationEvent>
+            implements ISelectableElement{
 
     private SelectionArbitrator selectionArbitrator;
 
@@ -50,7 +50,6 @@ public class DeterminationEventDetailElement extends
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(DeterminationEvent entity) {
                this.entity = entity;
@@ -60,7 +59,6 @@ public class DeterminationEventDetailElement extends
                super.setEntity(entity);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
            selectionTaxonNameBase = formFactory
@@ -72,7 +70,6 @@ public class DeterminationEventDetailElement extends
                                                 element, "Taxon", null,
                                                EntitySelectionElement.ALL, style);
 
-
                // TODO set of references
 
                super.createControls(element, style);
@@ -85,7 +82,6 @@ public class DeterminationEventDetailElement extends
                                element, "Modifier", null, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == combo_determinationModifier) {
@@ -97,7 +93,7 @@ public class DeterminationEventDetailElement extends
             getEntity().setTaxonName(name);
                    //empty taxon field if name was deleted
             //or does not belong the taxon
-                   TaxonBase taxonBase = selection_taxonBase.getEntity();
+                   TaxonBase<?> taxonBase = selection_taxonBase.getEntity();
                        if(name==null ||
                                (taxonBase!=null && taxonBase.getName()!=null
                                        && !taxonBase.getName().equals(name))){
@@ -105,7 +101,7 @@ public class DeterminationEventDetailElement extends
                                getEntity().setTaxon(null);
                        }
                } else if (eventSource == selection_taxonBase) {
-                       TaxonBase taxon = selection_taxonBase.getSelection();
+                       TaxonBase<?> taxon = selection_taxonBase.getSelection();
             getEntity().setTaxon(taxon);
             if(taxon!=null){
                 getEntity().setTaxonName(taxon.getName());
@@ -128,5 +124,4 @@ public class DeterminationEventDetailElement extends
     public SelectionArbitrator getSelectionArbitrator() {
         return selectionArbitrator;
     }
-
-}
+}
\ No newline at end of file
index f6825e83b464555f5bf342ccea0089d2dd09d88f..0d0ca8ac74b675acf44b48b4920d02f6a4a123d3 100644 (file)
@@ -6,15 +6,14 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Collection;
 import java.util.Comparator;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
@@ -26,12 +25,6 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 public class DeterminationHistoryDetailSection extends
                AbstractDeterminationEventDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param style
-        */
        public DeterminationHistoryDetailSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement,
                        int style) {
@@ -39,7 +32,7 @@ public class DeterminationHistoryDetailSection extends
        }
 
        @Override
-       public Collection<DeterminationEvent> getCollection(DerivedUnitFacade entity) {
+       public Collection<DeterminationEvent> getCollection(SpecimenOrObservationBase entity) {
                return entity != null ? entity.getOtherDeterminations() : null;
        }
 
@@ -53,26 +46,18 @@ public class DeterminationHistoryDetailSection extends
                internalUpdateSection(false);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a determination event to the history";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DeterminationEvent addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
@@ -14,7 +14,6 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 
 /**
@@ -24,7 +23,7 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
  * @created Jun 17, 2010
  * @version 1.0
  */
-public class FieldUnitDetailElement extends AbstractSpecimenOrObservationDetailElement {
+public class FieldUnitFacadeDetailElement extends AbstractSpecimenOrObservationDetailElement {
 
        private TextWithLabelElement text_ecology;
 
@@ -50,7 +49,7 @@ public class FieldUnitDetailElement extends AbstractSpecimenOrObservationDetailE
         * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
         * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         */
-       public FieldUnitDetailElement(CdmFormFactory formFactory,
+       public FieldUnitFacadeDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
        }
@@ -24,7 +24,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @author n.hoffmann
  * @created Jun 17, 2010
  */
-public class FieldUnitDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+public class FieldUnitFacadeDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
 
        /**
         * <p>Constructor for FieldUnitDetailSection.</p>
@@ -35,7 +35,7 @@ public class FieldUnitDetailSection extends AbstractCdmDetailSection<DerivedUnit
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
-       public FieldUnitDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+       public FieldUnitFacadeDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
                        ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
                super(formFactory, conversation, parentElement, selectionProvider, style);
@@ -52,6 +52,6 @@ public class FieldUnitDetailSection extends AbstractCdmDetailSection<DerivedUnit
         */
        @Override
        protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
-           return formFactory.createFieldUnitDetailElement(parentElement);
+           return formFactory.createFieldUnitFacadeDetailElement(parentElement);
        }
 }
@@ -35,7 +35,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @author pplitzner
  * @date 05.11.2013
  */
-public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
 
     private ToggleableTextElement toggleableText_titleCache;
     private EnumComboElement<SpecimenOrObservationType> combo_specorobstype;
@@ -50,7 +50,7 @@ public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<Deri
     private GatheringEventUnitElement element_elevation;
     private CheckboxElement checkIsPublish;
 
-    public FieldUnitGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+    public FieldUnitFacadeGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
@@ -22,7 +22,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @date 05.11.2013
  *
  */
-public class FieldUnitGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+public class FieldUnitFacadeGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
 
     /**
      * @param formFactory
@@ -31,7 +31,7 @@ public class FieldUnitGeneralDetailSection extends AbstractCdmDetailSection<Deri
      * @param selectionProvider
      * @param style
      */
-    public FieldUnitGeneralDetailSection(CdmFormFactory formFactory,
+    public FieldUnitFacadeGeneralDetailSection(CdmFormFactory formFactory,
             ConversationHolder conversation, ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
         super(formFactory, conversation, parentElement, selectionProvider, style);
@@ -51,7 +51,7 @@ public class FieldUnitGeneralDetailSection extends AbstractCdmDetailSection<Deri
      */
     @Override
     protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
-        return formFactory.createFieldUnitGeneralDetailElement(parentElement);
+        return formFactory.createFieldUnitFacadeGeneralDetailElement(parentElement);
     }
 
 }
index 38c5033bdf79ef719fe0e637ecb792e1376b0b41..99af179fc1360bd36164698b713a75ed687996d1 100644 (file)
@@ -44,7 +44,7 @@ public class FieldUnitGeneralWizardPage extends AbstractCdmEntityWizardPage<Deri
      */
     @Override
     public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
-        FieldUnitGeneralDetailElement detailElement = formFactory.createFieldUnitGeneralDetailElement(rootElement);
+        FieldUnitFacadeGeneralDetailElement detailElement = formFactory.createFieldUnitFacadeGeneralDetailElement(rootElement);
         detailElement.setEntity(getEntity());
         checkComplete();
         return detailElement;
index 1dacaa7b0b43ddaf8659770a23397824c382b35a..f76adabb6819b189f75a5a00e63816a7790ac709 100644 (file)
@@ -37,7 +37,7 @@ public class FieldUnitWizardPage extends AbstractCdmEntityWizardPage<DerivedUnit
 
        @Override
        public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
-               FieldUnitDetailElement detailElement = formFactory.createFieldUnitDetailElement(rootElement);
+               FieldUnitFacadeDetailElement detailElement = formFactory.createFieldUnitFacadeDetailElement(rootElement);
                detailElement.setEntity(getEntity());
                return detailElement;
        }
index ed847e71b8612828a37de28d7a5161acd01a4b8d..c5b7e6b648b02bac1e3c08f281cf18e2f54ddce6 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import java.util.Collection;
@@ -22,10 +21,8 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 import eu.etaxonomy.taxeditor.view.search.derivative.DerivateLabelProvider;
 
 /**
- *
  * @author pplitzner
  * @date Oct 16, 2014
- *
  */
 public class CurrentSampleDesignationDetailSection extends AbstractSampleDesignationDetailSection {
 
@@ -56,13 +53,11 @@ public class CurrentSampleDesignationDetailSection extends AbstractSampleDesigna
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create new current sample designation";
        }
 
-    /** {@inheritDoc} */
     @Override
     public void addElement(Identifier sampleDesignation) {
         //The current sample designation is always the first one found.
@@ -71,20 +66,13 @@ public class CurrentSampleDesignationDetailSection extends AbstractSampleDesigna
         getEntity().addIdentifier(0, sampleDesignation);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Identifier addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index aa27888c525d650dfd69e509129a98bec99543e7..8b1fa716113faf9c8bb11d57ab57f1d9969805ad 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.joda.time.DateTime;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.molecular.DnaQuality;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.term.OrderedTerm;
@@ -27,7 +26,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @author pplitzner
  * @date 05.03.2014
  */
-public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DnaQualityDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
     private TextWithLabelElement textPurificationMethod;
     private NumberWithLabelElement numberRatioOfAbsorbance260_280;
@@ -41,8 +40,7 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUni
     }
 
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
-        DnaSample entity = (DnaSample)facade.innerDerivedUnit();
+    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
         DnaQuality dnaQuality = entity.getDnaQuality();
         if(dnaQuality==null){
             dnaQuality = DnaQuality.NewInstance();
@@ -65,8 +63,7 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUni
 
     @Override
     public void handleEvent(Object eventSource) {
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
-        DnaQuality dnaQuality = entity.getDnaQuality();
+        DnaQuality dnaQuality = getEntity().getDnaQuality();
         if(eventSource==textPurificationMethod){
             dnaQuality.setPurificationMethod(textPurificationMethod.getText());
         }
@@ -84,7 +81,6 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUni
         }
         else if(eventSource==dateQualityCheck.getController()){
             DateTime dateTime = dateQualityCheck.getController().getDateTime();
-
             dnaQuality.setQualityCheckDate(dateTime);
         }
     }
index f9c70ca60374148b91f4f92c2c767d0542d4890e..65c462afa73f90b0a308e53295c4d307885263ab 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -20,37 +20,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 05.03.2014
- *
  */
-public class DnaQualityDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaQualityDetailSection extends AbstractCdmDetailSection<DnaSample> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public DnaQualityDetailSection(CdmFormFactory formFactory,
             ConversationHolder conversation, ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
         super(formFactory, conversation, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "DNA Quality";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
         return formFactory.createDnaQualityDetailElement(parentElement);
     }
-}
+}
\ No newline at end of file
index e86489bbb847e26a413f7dc81ea7646d8e3cd647..9d32c928e6f2e4be1b35c67a67fe3d298ab1f8d9 100644 (file)
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,7 +21,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @author pplitzner
  * @date 16.12.2013
  */
-public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
     private EntitySelectionElement<Collection> selection_collection;
     private TextWithLabelElement textBarcode;
@@ -35,7 +34,7 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<Deri
     }
 
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
         selection_collection = formFactory
                 .createSelectionElement(Collection.class,//getConversationHolder(),
                         formElement, "Collection",
@@ -59,7 +58,7 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<Deri
             getEntity().setAccessionNumber(text_accessionNumber.getText());
         }
         else if(eventSource==checkIsPublish){
-            ((DnaSample)getEntity().innerDerivedUnit()).setPublish(checkIsPublish.getSelection());
+            getEntity().setPublish(checkIsPublish.getSelection());
         } else if (eventSource == selection_collection) {
             getEntity().setCollection(selection_collection.getSelection());
         }
index 54713dda5a77d0dd3ae888d4761060ccdae22cf3..ac1315bbc84b6f65a743f36ccf7c2fee212ad756 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -22,7 +22,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @date 12.12.2013
  *
  */
-public class DnaSampleGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaSampleGeneralDetailSection extends AbstractCdmDetailSection<DnaSample> {
 
     public DnaSampleGeneralDetailSection(CdmFormFactory formFactory,
             ConversationHolder conversation, ICdmFormElement parentElement,
@@ -37,7 +37,7 @@ public class DnaSampleGeneralDetailSection extends AbstractCdmDetailSection<Deri
     }
 
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
         return formFactory.createDnaSampleGeneralDetailElement(parentElement);
     }
 }
index 4bab5d13e8d93ed841d0e3e5d452b11746971116..f23219b81a99c8b55ac86c12a79c9d7f990ff374 100644 (file)
@@ -6,10 +6,8 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
@@ -26,9 +24,8 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 16.12.2013
- *
  */
-public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
     private EntitySelectionElement<Institution> selectionInstitution;
     private EntitySelectionElement<AgentBase> selectionStaff;
@@ -36,27 +33,16 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
     private NumberWithLabelElement numberPreservationTemperature;
     private TextWithLabelElement txtMaterialOrMethods;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public DnaSamplePreparationPreservationDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
+    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
         Institution institution = null;
         AgentBase<?> staff = null;
         TimePeriod preparationDate = null;
-        DnaSample entity = (DnaSample)facade.innerDerivedUnit();
+
         if(entity.getDerivedFrom()!=null){
             institution = entity.getDerivedFrom().getInstitution();
             staff = entity.getDerivedFrom().getActor();
@@ -81,16 +67,9 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
 
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+        DnaSample entity = getEntity();
         if(eventSource==datePreparationDate){
             if(entity.getDerivedFrom()!=null){
                 entity.getDerivedFrom().setTimeperiod(datePreparationDate.getTimePeriod());
@@ -115,7 +94,7 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
     }
 
     private PreservationMethod addPreservationMethod(){
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+        DnaSample entity = getEntity();
         PreservationMethod preservationMethod = entity.getPreservation();
         if(preservationMethod==null){
             preservationMethod = PreservationMethod.NewInstance();
index bfec88afd07c3e273492b90b76463179547b5ee2..cf46eb0ac008b4af71ad23f4af46d138d49a9b5a 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -20,9 +20,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 12.12.2013
- *
  */
-public class DnaSamplePreparationPreservationSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaSamplePreparationPreservationSection extends AbstractCdmDetailSection<DnaSample> {
 
     public DnaSamplePreparationPreservationSection(CdmFormFactory formFactory,
             ConversationHolder conversation, ICdmFormElement parentElement,
@@ -30,14 +29,13 @@ public class DnaSamplePreparationPreservationSection extends AbstractCdmDetailSe
         super(formFactory, conversation, parentElement, selectionProvider, style);
     }
 
-
     @Override
     public String getHeading() {
         return "Preparation/Preservation";
     }
 
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
         return formFactory.createDnaSamplePreparationPreservationDetailElement(parentElement);
     }
-}
+}
\ No newline at end of file
index 6aa2825465828e2ac7a6b98ed5a689f9dec23c05..2766774dd8fa8384366d46886ca7577ecc221a3b 100644 (file)
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -21,7 +20,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @date Oct 20, 2014
  */
 public class SampleDesignationDetailElement
-        extends AbstractCdmDetailElement<DerivedUnitFacade> {
+        extends AbstractCdmDetailElement<DerivedUnit> {
 
        private CurrentSampleDesignationDetailSection sectionCurrentSampleDesignation;
 
@@ -34,8 +33,8 @@ public class SampleDesignationDetailElement
 
        @Override
        protected void createControls(ICdmFormElement formElement,
-               DerivedUnitFacade facade, int style) {
-           DerivedUnit entity = getEntity().innerDerivedUnit();
+               DerivedUnit facade, int style) {
+           DerivedUnit entity = getEntity();
         sectionCurrentSampleDesignation = formFactory.createCurrentSampleDesignationDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CurrentSampleDesignationDetailSection.class, entity.getClass().getCanonicalName(), true));
         sectionCurrentSampleDesignation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionCurrentSampleDesignation.setEntity(entity);
index da688d76bf2f68f4845114f8c7e424e10a45f575..77dc9307fd79153e0dda95e0fd2ea4e9421477fc 100644 (file)
@@ -6,41 +6,28 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
-public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DerivedUnit> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param selectionProvider
-        * @param style
-        */
        public SampleDesignationDetailSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
                super(formFactory, conversation, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                return "Sample Designations";
@@ -52,12 +39,8 @@ public class SampleDesignationDetailSection extends AbstractCdmDetailSection<Der
            setTextClient(createToolbar());
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
-       protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+       protected SampleDesignationDetailElement createCdmDetailElement(AbstractCdmDetailSection<DerivedUnit> parentElement, int style) {
            return formFactory.createSampleDesignationDetailElement(parentElement);
        }
-
-}
+}
\ No newline at end of file
index 5cbdc1e375e7776c9b8c35041872daa9e498a170..8c035a6dc4f7215027dc8c661bb2153e1bbd359b 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import java.util.Collection;
@@ -24,25 +23,15 @@ import eu.etaxonomy.taxeditor.view.search.derivative.DerivateLabelProvider;
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
 public class SampleDesignationHistoryDetailSection extends AbstractSampleDesignationDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param style
-        */
        public SampleDesignationHistoryDetailSection(CdmFormFactory formFactory,
                        ConversationHolder conversation, ICdmFormElement parentElement,
                        int style) {
                super(formFactory, conversation, parentElement, "Sample Designation History", style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
        @Override
        public Collection<Identifier> getCollection(IdentifiableEntity<?> entity) {
            LinkedList<Identifier> sampleDesignations = new LinkedList<>();
@@ -67,20 +56,11 @@ public class SampleDesignationHistoryDetailSection extends AbstractSampleDesigna
                internalUpdateSection(false);
        }
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-        */
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a sample designation to the history";
        }
 
-       /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
     @Override
     public void addElement(Identifier sampleDesignation) {
         //The current sample designation is always the first one found.
@@ -91,20 +71,13 @@ public class SampleDesignationHistoryDetailSection extends AbstractSampleDesigna
         getEntity().addIdentifier(indexOfCurrentSampleDesignation+1, sampleDesignation);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Identifier addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index a547f24772e1d6da733646418d58dfa55dde5e46..333dd67b588eec99a0ea3dc192a7cd7a07678957 100644 (file)
@@ -74,13 +74,13 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
         if(entity.getPreservation()!=null){
             preservationMedium = entity.getPreservation().getMedium();
         }
-        selectionInstitution = formFactory.createSelectionElement(Institution.class, //getConversationHolder(),
+        selectionInstitution = formFactory.createSelectionElement(Institution.class,
                 formElement, "Institution", institution, EntitySelectionElement.ALL, style);
-        selectionStaff = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
+        selectionStaff = formFactory.createSelectionElement(AgentBase.class,
                 formElement, "Staff", staff, EntitySelectionElement.ALL,style);
         datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
         comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
-        selectionCollection = formFactory.createSelectionElement(Collection.class, //getConversationHolder(),
+        selectionCollection = formFactory.createSelectionElement(Collection.class,
                 formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
         textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
         textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
index 6293260aad41a1828e10921faabdc7649d36664b..536fe2a753e0bb0003d87afede0f5f2fe0e90921 100644 (file)
@@ -20,38 +20,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 12.12.2013
- *
  */
 public class TissueSampleGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public TissueSampleGeneralDetailSection(CdmFormFactory formFactory,
             ConversationHolder conversation, ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
         super(formFactory, conversation, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "General";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
         return formFactory.createTissueSampleGeneralDetailElement(parentElement);
     }
-
-}
+}
\ No newline at end of file
index 05c7925c7a2fa24e76330af1c2f7d90696c58d11..f9ed12406e5c2649e0a83997e48ddfe0756fbd1b 100644 (file)
@@ -8,7 +8,6 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.media;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
@@ -39,11 +38,12 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 16.12.2013
- *
  */
-public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> implements ITogglableMediaElement{
+public class MediaSpecimenGeneralDetailElement
+        extends AbstractCdmDetailElement<MediaSpecimen>
+        implements ITogglableMediaElement{
 
-    private final TermVocabulary mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
+    private final TermVocabulary<?> mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
 
     private TermComboElement<DefinedTerm> comboKindOfUnit;
     private LanguageStringWithLabelElement textTitleLanguageString;
@@ -57,35 +57,27 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
     private CheckboxElement checkIsPublish;
 
     private MediaDetailElement mediaDetailElement;
-    /**
-     * @param formFactory
-     * @param formElement
-     */
+
     public MediaSpecimenGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
-        MediaSpecimen specimen = null;
-        if (entity.innerDerivedUnit() instanceof MediaSpecimen){
-             specimen = (MediaSpecimen)entity.innerDerivedUnit();
-        }
-        Media media = null;
-        if (specimen != null){
-            media = specimen.getMediaSpecimen();
-        }
+    protected void createControls(ICdmFormElement formElement, MediaSpecimen entity, int style) {
+
+        Media media = entity == null ? null: entity.getMediaSpecimen();
+
         if(media==null){
             formFactory.createLabel(formElement, "No media attached to this MediaSpecimen!");
         }
         else{
-            comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", specimen.getKindOfUnit(), style);
+            comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", entity.getKindOfUnit(), style);
             textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Motif", media.getTitle(), style);
             LabelElement label1 = formFactory.createLabel(formElement, "");
 
             selectionArtist = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
                     formElement, "Prepared by", media.getArtist(), EntitySelectionElement.ALL, style);
-            TimePeriod mediaCreated = specimen.getMediaSpecimen().getMediaCreated();
+            TimePeriod mediaCreated = entity.getMediaSpecimen().getMediaCreated();
 
             date = formFactory.createTimePeriodElement(formElement, "Preparation Date", mediaCreated, style);
             textMethodLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Method", media.getDescription(Language.getDefaultLanguage()), style);
@@ -93,7 +85,7 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
 //            spacer.setBackground(getPersistentBackground());
             LabelElement label2 = formFactory.createLabel(formElement, "");
 
-            selection_collection = formFactory.createSelectionElement(Collection.class,// getConversationHolder(),
+            selection_collection = formFactory.createSelectionElement(Collection.class,
                     formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
             text_accessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
 
@@ -108,7 +100,7 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
                     break;
                 }
             }
-            selection_publishedIn = formFactory.createSelectionElement(Reference.class, //getConversationHolder(),
+            selection_publishedIn = formFactory.createSelectionElement(Reference.class,
                     formElement, "Published in", publishedIn, EntitySelectionElement.ALL, style);
             text_published_in_detail = formFactory.createTextWithLabelElement(formElement, "Published in Detail", publishedInDetail, style);
             LabelElement label4 = formFactory.createLabel(formElement, "");
@@ -122,26 +114,31 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
 
     @Override
     public void handleEvent(Object eventSource) {
-        Media media = ((MediaSpecimen)getEntity().innerDerivedUnit()).getMediaSpecimen();
+        Media media = getEntity().getMediaSpecimen();
         if(media==null){
             media = Media.NewInstance();
-            ((MediaSpecimen)getEntity().innerDerivedUnit()).setMediaSpecimen(media);
+            getEntity().setMediaSpecimen(media);
         }
         if(eventSource==comboKindOfUnit){
-            ((MediaSpecimen)getEntity().innerDerivedUnit()).setKindOfUnit(comboKindOfUnit.getSelection());
+            getEntity().setKindOfUnit(comboKindOfUnit.getSelection());
         }
         else if(eventSource==textTitleLanguageString){
             media.putTitle(textTitleLanguageString.getLanguageString());
+            getEntity().setMediaSpecimen(media);
         }
         else if(eventSource==date){
             TimePeriod dateTime = date.getTimePeriod();
             media.setMediaCreated(dateTime);
+            getEntity().setMediaSpecimen(media);
         }
         else if(eventSource==selectionArtist){
+            getEntity().setAccessionNumber(getEntity().getAccessionNumber());
             media.setArtist(selectionArtist.getSelection());
+            getEntity().setMediaSpecimen(media);
         }
         else if(eventSource==textMethodLanguageString){
-            media.addDescription(textMethodLanguageString.getLanguageString());
+            media.putDescription(textMethodLanguageString.getLanguageString());
+            getEntity().setMediaSpecimen(media);
         }
         else if (eventSource == selection_collection) {
             getEntity().setCollection(selection_collection.getSelection());
@@ -180,8 +177,9 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
             }
         }
         else if(eventSource==checkIsPublish){
-            ((MediaSpecimen)getEntity().innerDerivedUnit()).setPublish(checkIsPublish.getSelection());
+            getEntity().setPublish(checkIsPublish.getSelection());
         }
+
     }
 
     @Override
index 4aa00678fcd2293f216715b8cc57e3625c7d0a75..c9038d29ddeb8de9e74cc152a53163b439ca8500 100644 (file)
@@ -14,7 +14,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -25,9 +25,8 @@ import eu.etaxonomy.taxeditor.ui.section.media.MediaViewSwitch;
 /**
  * @author pplitzner
  * @date 12.12.2013
- *
  */
-public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<MediaSpecimen> {
 
     private ITogglableMediaElement togglableMediaElement;
 
@@ -48,7 +47,7 @@ public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<
     }
 
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<MediaSpecimen> createCdmDetailElement(AbstractCdmDetailSection<MediaSpecimen> parentElement, int style) {
         MediaSpecimenGeneralDetailElement mediaSpecimenGeneralDetailElement = formFactory.createMediaSpecimenGeneralDetailElement(parentElement);
         togglableMediaElement = mediaSpecimenGeneralDetailElement;
         return mediaSpecimenGeneralDetailElement;
@@ -60,6 +59,4 @@ public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<
         toolBarManager.add(MediaViewSwitch.createSwitch(togglableMediaElement));
         return toolBarManager.createControl(this);
     }
-
-
-}
+}
\ No newline at end of file
index 175b74dbca82503d089a135d26e991b024b66cf2..eb6407e0cedc5ee2626d6b740d99098706837e34 100644 (file)
@@ -29,12 +29,11 @@ public class TaxonBaseDetailSection extends AbstractCdmDetailSection<TaxonBase<?
 
        @Override
        public String getHeading() {
-               return getEntity() != null ? getEntity().getClass().getSimpleName() : "TaxonBase";
+               return getEntity() != null ? getEntity().getClass().getSimpleName() : "Taxon or Synonym";
        }
 
        @Override
        protected AbstractCdmDetailElement<TaxonBase<?>> createCdmDetailElement(AbstractCdmDetailSection<TaxonBase<?>> parentElement, int style) {
            return formFactory.createTaxonBaseDetailElement(parentElement, style);
        }
-
 }
index c2b062a21e3250a81f0bb935478461fc63dc2a2e..3ff8f82b1179ca8a1aa31b50ee0d07cabf52a7fb 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.taxon;
 
 import org.eclipse.swt.events.SelectionListener;
@@ -21,44 +20,22 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author n.hoffmann
  * @created Mar 29, 2011
- * @version 1.0
  */
 public class TaxonDetailElement extends AbstractEntityCollectionElement<Taxon> {
 
        private EntitySelectionElement<Taxon> selection_taxon;
 
-       /**
-        * @param formFactory
-        * @param section
-        * @param entity
-        * @param removeListener
-        * @param backgroundColor
-        * @param style
-        */
        public TaxonDetailElement(CdmFormFactory formFactory,
-                       AbstractFormSection section, Taxon entity,
+                       AbstractFormSection<?> section, Taxon entity,
                        SelectionListener removeListener, int style) {
                super(formFactory, section, entity, removeListener, null, style);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#setEntity
-        * (java.lang.Object)
-        */
        @Override
        public void setEntity(Taxon entity) {
                selection_taxon.setEntity(entity);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#
-        * createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, int)
-        */
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_taxon = formFactory
@@ -67,18 +44,10 @@ public class TaxonDetailElement extends AbstractEntityCollectionElement<Taxon> {
                                                EntitySelectionElement.SELECTABLE, style);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent
-        * (java.lang.Object)
-        */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == selection_taxon) {
                        setEntity(selection_taxon.getSelection());
                }
        }
-
-}
+}
\ No newline at end of file
index 437e4a738e987d9d73d7a3b48ac5d355329256c1..4d680baccddfc8e6d323a91c0fcb99fe8700851a 100644 (file)
@@ -29,9 +29,7 @@ import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
  *
  * @author cmathew
  * @date 23 Oct 2015
- *
  */
-
 public class ProgressMonitorClientManager {
     private static final Logger logger = Logger.getLogger(ProgressMonitorClientManager.class);
 
@@ -58,6 +56,7 @@ public class ProgressMonitorClientManager {
             SubMonitor monitor) throws InterruptedException {
         return pollMonitor(label, uuid, pollInterval, postOp, Arrays.asList(feedbackGenerator), monitor);
     }
+
     /**
      * Polls the progress monitor service for the progress status of a monitor
      * corresponding to the given uuid.
@@ -81,36 +80,29 @@ public class ProgressMonitorClientManager {
             final IPostMoniteredOperationEnabled postOp,
             List<IFeedbackGenerator> feedbackGenerators,
             SubMonitor monitor) throws InterruptedException {
+
         IProgressMonitorService progressMonitorService = CdmApplicationState.getCurrentAppConfig().getProgressMonitorService();
         IRemotingProgressMonitor remotingMonitor = progressMonitorService.getRemotingMonitor(uuid);
         try {
             final int START_DELAY=10;
             // wait about 10 seconds for the remoting monitor to be initialised
             // (i.e. for the begin task method to be called ON THE REMOTING MONITOR)
-            if ( remotingMonitor.isDone()){
+            if (remotingMonitor != null && remotingMonitor.isDone()){
                 return remotingMonitor;
             }
-            for(int i=0;i<START_DELAY;i++) {
-                Thread.sleep(10);
-                logger.info("Waiting for monitered work to start ..");
+            for(int i=0;remotingMonitor==null && i<START_DELAY;i++) {
+                Thread.sleep(500);
+                logger.info("Waiting for monitored work to start ..");
                 remotingMonitor = progressMonitorService.getRemotingMonitor(uuid);
-                if (remotingMonitor != null){
-                    if(remotingMonitor.getTotalWork() > 0) {
-                        break;
-                    }
-                    break;
-                }
             }
-
             if (remotingMonitor == null){
                 return null;
             }
+
             // if the total work is still not been set then we assume that the
             // operation has zero work units
-
             if(remotingMonitor.getTotalWork() == 0 && remotingMonitor.isDone()) {
                 return remotingMonitor;
-
             }else if (remotingMonitor.getTotalWork() == 0 ){
                 Object result = remotingMonitor.getResult();
                 InterruptedException exception = new InterruptedException("Monitor has zero work units");
@@ -119,10 +111,9 @@ public class ProgressMonitorClientManager {
                 }else if (result == null){
                     result = new UpdateResult();
                 }
-
             }
+
             // start the client monitor
-            monitor.beginTask(remotingMonitor.getTaskName(), remotingMonitor.getTotalWork());
             logger.info("Work to be done: " + remotingMonitor.getTotalWork());
             int editorTotalWorkDone = 0;
             int serverTotalWorkDone = 0;
@@ -146,8 +137,8 @@ public class ProgressMonitorClientManager {
                     }else{
                         throw e;
                     }
-
                 }
+
                 // check if remoting monitor is waiting for feedback
                 if(remotingMonitor.getIsWaitingForFeedback()) {
                     if(feedbackGenerators != null) {
@@ -166,38 +157,37 @@ public class ProgressMonitorClientManager {
                         feedbackCount++;
                     }
                 }
+
                 serverTotalWorkDone = (int) remotingMonitor.getWorkDone();
                 logger.info("Work done from start: " + serverTotalWorkDone);
-                String percentage = "100";
-                if (remotingMonitor.getTotalWork() != 0){
-                    percentage = new DecimalFormat("#.##").format(remotingMonitor.getPercentage());
-                }
 
-
-                // set dialog text
-                monitor.setTaskName(remotingMonitor.getTaskName());
-                monitor.subTask(" " + percentage + "% done ");
-
-                int worked = 0;
                 if (serverTotalWorkDone > editorTotalWorkDone){
-                    worked = serverTotalWorkDone - editorTotalWorkDone;
-                }
-                if(worked > 0) {
-                    logger.info("Work done since last check: " + worked);
-                    monitor.worked(worked);
+                    int worked = serverTotalWorkDone - editorTotalWorkDone;
+                    if(worked > 0) {
+                        logger.info("Work done since last check: " + worked);
+                        monitor.worked(worked);
+                    }
                 }
 
+                // set dialog text
+                String subTaskName = remotingMonitor.getSubTask();
+                String percentage = "100";
+                if (remotingMonitor.getTotalWork() != 0){
+                    percentage = new DecimalFormat("#.##").format(remotingMonitor.getPercentage());
+                }
+                subTaskName = subTaskName + " (" + percentage +"% done)";
+                //Note: do not update taskname as it resets percentage in status line
+                monitor.subTask(subTaskName );
 
                 editorTotalWorkDone = serverTotalWorkDone;
             }
             if(remotingMonitor.getResult() instanceof Exception) {
                 UpdateResult result = new UpdateResult();
                 result.addException((Exception) remotingMonitor.getResult());
-
             }
             return remotingMonitor;
         } finally {
-            if(postOp != null && remotingMonitor != null &&  remotingMonitor.isDone()) {
+            if(postOp != null && remotingMonitor != null && remotingMonitor.isDone()) {
                 postOp.postOperation(remotingMonitor);
             }
         }
index fa857b842532b564177db600400610381d371eb8..9623ee51405df141b1c345e29b4104209537dacf 100644 (file)
@@ -36,8 +36,10 @@ import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
@@ -70,6 +72,10 @@ public class CdmSectionPart<T> extends SectionPart
 
        @Override
        public boolean setFormInput(Object input) {
+        if (formSection.isDisposed()){
+            return false;
+        }
+
            this.rootInput = input;
            //FIXME (CM): Need to fix this part of the design.
            //The design seems to be locked to the idea that only one
@@ -79,6 +85,7 @@ public class CdmSectionPart<T> extends SectionPart
                if (input instanceof IElementHasDetails) {
                        input = ((IElementHasDetails) input).getData();
                }
+
                if ((input instanceof TaxonBase)
                                && (formSection instanceof ITaxonBaseDetailSection)) {
                        ((ITaxonBaseDetailSection) formSection)
@@ -147,6 +154,14 @@ public class CdmSectionPart<T> extends SectionPart
                        && (formSection instanceof RightsSection)){
                    ((RightsSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
                    return true;
+               }else if ((input instanceof DerivedUnitFacade)
+                && (formSection instanceof DeterminationDetailSection)){
+            ((DeterminationDetailSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
+            return true;
+               }else if ((input instanceof DerivedUnitFacade)
+                && (formSection instanceof SampleDesignationDetailSection)){
+            ((SampleDesignationDetailSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
+            return true;
                }
                //check whether this is needed
 //     }else if ((input instanceof TaxonBase)
@@ -157,6 +172,7 @@ public class CdmSectionPart<T> extends SectionPart
 
                formSection.setEntity((T) input);
 
+
                return true;
        }
 
index 2e1af647536d7157e195ce6e7f51990c7dce295f..4497c932afda13652799d3d90803ff67479ed0f8 100755 (executable)
@@ -6,7 +6,6 @@
  * 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.view.e4.details;
 
 import java.util.Collection;
@@ -66,6 +65,7 @@ import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.IBulkEditor;
 import eu.etaxonomy.taxeditor.editor.IDistributionEditorPart;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -115,8 +115,8 @@ import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
@@ -148,7 +148,6 @@ import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
 import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
 
 /**
- *
  * The DetailsViewer handles the content of the details view (
  * {@link DetailsPartE4}).<br>
  * Depending on the type of the selected element the section of the details view
@@ -156,7 +155,6 @@ import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
  *
  * @author pplitzner
  * @date 18.07.2017
- *
  */
 public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
@@ -191,13 +189,19 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         if(input instanceof GbifResponse){
             input = ((GbifResponse) input).getDerivedUnitFacade();
         }
-       if (input !=null && input instanceof DerivedUnit) {
+        if (input instanceof DerivedUnit) {
             DerivedUnit derivedUnit = (DerivedUnit)input;
-            try {
-                input = DerivedUnitFacade.NewInstance(derivedUnit,
-                        PreferencesUtil.getDerivedUnitConfigurator());
-            } catch (DerivedUnitFacadeNotSupportedException e) {
-                                MessagingUtils.error(getClass(), e); //nothing should happen, later on the Details View will show an according information that it is not possible to open this data
+            if ((derivedUnit instanceof MediaSpecimen
+                    ||  (derivedUnit instanceof DnaSample && derivedUnit.getRecordBasis() == SpecimenOrObservationType.DnaSample ))
+                && !(this.activePart instanceof IBulkEditor)){
+                    //do nothing
+            }else{
+                try {
+                    input = DerivedUnitFacade.NewInstance(derivedUnit,
+                            PreferencesUtil.getDerivedUnitConfigurator());
+                } catch (DerivedUnitFacadeNotSupportedException e) {
+                    MessagingUtils.error(getClass(), e); //nothing should happen, later on the Details View will show an according information that it is not possible to open this data
+                }
             }
         }
         else if(input instanceof FieldUnit){
@@ -240,16 +244,14 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         }
         destroySections();
         if (input instanceof TaxonBase) {
-            if(((TaxonBase) input).getName()==null){
+            if(((TaxonBase<?>) input).getName()==null){
                 createEmptySection(Messages.DetailsViewerE4_TAXON_HAS_NO_NAME, rootElement);
             }
             else{
                 createTaxonSections(rootElement);
             }
-
         } else if (input instanceof TaxonName) {
             createNameSections(rootElement);
-
         } else if (input instanceof Reference) {
             createReferenceSections(rootElement);
 
@@ -263,6 +265,9 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             createTeamOrPersonBaseDetailSection(rootElement);
 
         } else if (input instanceof DescriptionBase) {
+            if (((DescriptionBase)input).isComputed()){
+                this.setDetailsEnabled(false);
+            }
             if(input instanceof SpecimenDescription){
                 //TODO: add more sections to DetailsView for SpecimenDescription
                 createSpecimenDescriptionSection(rootElement);
@@ -282,10 +287,10 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
                 } else if (isUseDescription) {
                     createUseDescriptionSection(rootElement);
                 } else if (input instanceof TaxonDescription){
-                    createTaxonDescriptionSection(rootElement);
+                    createTaxonDescriptionSection(rootElement, !((DescriptionBase) input).isComputed());
 
                 } else{
-                    createDescriptionSection(rootElement, false);
+                    createDescriptionSection(rootElement, false, !((DescriptionBase) input).isComputed());
                 }
             }
         } else if (input instanceof DescriptionElementBase){
@@ -300,7 +305,9 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
                     isUseDescription = true;
                 }
             }
-
+            if (((DescriptionElementBase)input).getInDescription().isComputed()){
+                this.setDetailsEnabled(false);
+            }
             if (isUseDescription == true && input instanceof CategoricalData) {
                 createUseRecordSection(rootElement);
             } else {
@@ -309,11 +316,10 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         } else if (input instanceof Media) {
             createMediaElementSection(rootElement);
-
         }
         //FIXME hack to show more informative message to the user when
         //DerivedUnit has more than one FieldUnit #4363
-        else if (input instanceof DerivedUnit) {
+        else if (input instanceof DerivedUnit && !(input instanceof MediaSpecimen) && !(input instanceof DnaSample)) {
             DerivedUnit derivedUnit = (DerivedUnit)input;
             try {
                 input = DerivedUnitFacade.NewInstance(derivedUnit,
@@ -321,42 +327,42 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             } catch (DerivedUnitFacadeNotSupportedException e) {
                 createEmptySection(e.getMessage(), rootElement);
             }
-        }
-        else if (input instanceof DerivedUnitFacade) {
-            if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.FieldUnit){
-                if(((DerivedUnitFacade) input).innerFieldUnit()==null){
+        } else if (input instanceof DerivedUnitFacade) {
+            DerivedUnitFacade facade = (DerivedUnitFacade) input;
+            if(facade.getType() == SpecimenOrObservationType.FieldUnit){
+                if(facade.innerFieldUnit() == null){
                     MessagingUtils.error(DetailsViewerE4.class, "FieldUnit of facade is null", null); //$NON-NLS-1$
                 }
                 else{
-                    createFieldUnitSection(rootElement);
+                    createFieldUnitFacadeSection(rootElement);
                 }
             }
-            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.PreservedSpecimen){
-                if(((DerivedUnitFacade) input).innerDerivedUnit()==null){
+            else if(facade.getType() == SpecimenOrObservationType.PreservedSpecimen){
+                if(facade.innerDerivedUnit() == null){
                     MessagingUtils.error(DetailsViewerE4.class, "DerivedUnit of facade is null", null); //$NON-NLS-1$
                 }
                 else{
                     createDerivedUnitBaseElementSection(rootElement);
                 }
             }
-            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){
+            else if(facade.getType() == SpecimenOrObservationType.TissueSample){
                 //TissueSample should only be created by using it's own class
                 //in future using only one class with different SpecimenOrObservationTypes is desired
                 createTissueSampleSection(rootElement);
-            }
-            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.DnaSample){
-
-                if(((DerivedUnitFacade) input).innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.TissueSample){
+            }else if (facade.innerDerivedUnit() instanceof DnaSample){
+                createEmptySection("DNA sample not supported by specimen list editor", rootElement);
+            }else if (facade.innerDerivedUnit() instanceof MediaSpecimen){
+                createEmptySection("Image specimen not supported by specimen list editor", rootElement);
+            }else if(facade.getType()==SpecimenOrObservationType.DnaSample){
+
+                if(facade.innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.TissueSample){
+                    //this case seems to be very unlikely as innerDerivedUnit in real cases should more or less always have the same type
                     createTissueSampleSection(rootElement);
                 }
-                else if(((DerivedUnitFacade) input).innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.DnaSample){
+                else if(facade.innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.DnaSample){
                     createDnaSampleSection(rootElement);
                 }
-            }else if (((DerivedUnitFacade) input).innerDerivedUnit() instanceof MediaSpecimen){
-                createMediaSpecimenSection(rootElement);
-            }
-
-            else{
+            }else{
                 createDerivedUnitBaseElementSection(rootElement);
             }
         } else if (input instanceof DnaSample){
@@ -380,7 +386,7 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             createFeatureDistributionSection(rootElement);
 
         } else if (input instanceof TermNode) {
-            TermType type= ((TermNode) input).getTermType();
+            TermType type= ((TermNode<?>) input).getTermType();
             if(type.equals(TermType.Character) ){
                 createCharacterNodeSection(rootElement);
             }
@@ -390,7 +396,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         } else if (input instanceof TermTree) {
             createFeatureTreeSection(rootElement);
-
         }  else if (input instanceof TermNodeDto) {
             TermType type= ((TermNodeDto) input).getTerm().getTermType();
             if(type.equals(TermType.Character) && activePart instanceof ICharacterEditor){
@@ -434,13 +439,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             createEmptySection(null, rootElement);
         }
         layout();
-
-    }
-
-
-    private void createFeatureTreeSectionForTree(RootElement rootElement) {
-        // TODO Auto-generated method stub
-
     }
 
     private void createGroupSection(RootElement parent) {
@@ -453,23 +451,19 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         addPart(grantedAuthorityDetailSection);
     }
 
-    /** {@inheritDoc} */
     @Override
     public ISelection getSelection() {
         return selection;
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setSelection(ISelection selection, boolean reveal) {
 
         this.selection = selection;
-
         if(this.selection!=null){
             SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent(this, selection);
             fireSelectionChanged(selectionChangedEvent);
         }
-
     }
 
     private void createTaxonSections(RootElement parent) {
@@ -572,11 +566,8 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             addPart(nameRelationshipSection);
         }
 
-
         addPart(parsingMessagesSection);
-
         addPart(nonViralNameSection);
-
     }
 
     private void createNameSections(RootElement parent) {
@@ -608,7 +599,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 //        addPart(protologSection);
         addPart(typeDesignationSection);
         addPart(nameRelationshipSection);
-
     }
 
     private void createReferenceSections(RootElement parent) {
@@ -666,8 +656,9 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         addPart(descriptionElementMediaSection);
     }
 
-    private void createDescriptionSection(RootElement parent, boolean isTaxonDescription) {
+    private void createDescriptionSection(RootElement parent, boolean isTaxonDescription, boolean isEnabled) {
         DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DescriptionDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        descriptionDetailSection.setEnabled(isEnabled);
         addPart(descriptionDetailSection);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
@@ -676,26 +667,29 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             NaturalLanguageSection naturalLanguageSection = formFactory.createNaturalLanguageSection(
                     getConversationHolder(), parent, this, StoreUtil.getSectionStyle(NaturalLanguageSection.class, getInput().getClass().getCanonicalName(), true));
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+            naturalLanguageSection.setEnabled(isEnabled);
             addPart(naturalLanguageSection);
         }
         DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(
                 getConversationHolder(), parent, StoreUtil.getSectionStyle(DescriptionSourceSection.class, getInput().getClass().getCanonicalName(), true));
+        descriptionSourceSection.setEnabled(isEnabled);
         addPart(descriptionSourceSection);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         if(isTaxonDescription) {
             ScopeSection scopeSection = formFactory.createScopeSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(ScopeSection.class, getInput().getClass().getCanonicalName()));
+            scopeSection.setEnabled(isEnabled);
             addPart(scopeSection);
         }
     }
 
-    private void createTaxonDescriptionSection(RootElement parent) {
-        createDescriptionSection(parent, true);
+    private void createTaxonDescriptionSection(RootElement parent, boolean isEnabled) {
+        createDescriptionSection(parent, true, isEnabled);
     }
 
     private void createSpecimenDescriptionSection(RootElement parent) {
-        createDescriptionSection(parent, false);
+        createDescriptionSection(parent, false, true);
     }
 
     private void createUseDescriptionSection(RootElement parent) {
@@ -709,7 +703,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         addPart(descriptionDetailSection);
         addPart(descriptionSourceSection);
-
     }
 
     private void createImageGallerySection(RootElement parent) {
@@ -744,7 +737,7 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             addPart(gatheringEventDetailSection);
 
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-            FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitDetailSection.class, getInput().getClass().getCanonicalName()));
+            FieldUnitFacadeDetailSection fieldUnitDetailSection = formFactory.createFieldUnitFacadeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeDetailSection.class, getInput().getClass().getCanonicalName()));
             addPart(fieldUnitDetailSection);
         }
         else{
@@ -767,11 +760,10 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         DerivedUnitTypeDesignationSection derivedUnitTypeDesignationSection = formFactory.createDerivedUnitTypeDesignationSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DerivedUnitTypeDesignationSection.class, getInput().getClass().getCanonicalName()));
         addPart(derivedUnitTypeDesignationSection);
-
     }
 
-    private void createFieldUnitSection(RootElement parent) {
-        FieldUnitGeneralDetailSection fielUnitGeneralDetailSection = formFactory.createFieldUnitGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+    private void createFieldUnitFacadeSection(RootElement parent) {
+        FieldUnitFacadeGeneralDetailSection fielUnitGeneralDetailSection = formFactory.createFieldUnitFacadeGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
@@ -779,7 +771,7 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitDetailSection.class, getInput().getClass().getCanonicalName()));
+        FieldUnitFacadeDetailSection fieldUnitDetailSection = formFactory.createFieldUnitFacadeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeDetailSection.class, getInput().getClass().getCanonicalName()));
 
         addPart(fielUnitGeneralDetailSection);
         addPart(gatheringEventDetailSection);
@@ -788,7 +780,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DeterminationDetailSection.class, getInput().getClass().getCanonicalName()));
         addPart(determinationDetailSection);
-
     }
 
     private void createTissueSampleSection(RootElement parent) {
@@ -842,7 +833,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         SequenceContigFileCollectionDetailSection contigFileSection = formFactory.createSequenceContigFileCollectionDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(SequenceContigFileCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
-
         addPart(section);
         addPart(referenceSection);
         addPart(contigFileSection);
@@ -856,7 +846,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(SingleReadPherogramCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(pherogramSection);
-
     }
 
     private void createMediaSpecimenSection(RootElement parent) {
@@ -868,7 +857,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(RightsSection.class, getInput().getClass().getCanonicalName()));
 //        rightsSection.setEntity(generalSection.getEntity().innerDerivedUnit());
         addPart(rightsSection);
-
     }
 
     private void createFeatureTreeSectionForDto(RootElement parent) {
@@ -878,19 +866,16 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
     }
     private void createFeatureTreeSection(RootElement parent) {
         TermTreeDetailSectionForNode section = formFactory.createFeatureTreeDetailSectionForTree(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TermTreeDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
         addPart(section);
     }
 
     private void createFeatureNodeSection(RootElement parent) {
         TermNodeDetailSection featureDistributionSection = formFactory.createFeatureNodeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TermNodeDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
         addPart(featureDistributionSection);
     }
 
     private void createFeatureDistributionSection(RootElement parent) {
         FeatureDistributionDetailSection featureDistributionSection = formFactory.createFeatureDistributionDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FeatureDistributionDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
         addPart(featureDistributionSection);
     }
 
@@ -923,12 +908,8 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
     private void createUseRecordSection(RootElement parent) {
         UseRecordDetailSection descriptionUseRecordSection = formFactory.createUseRecordDetailSection(getConversationHolder(), parent, this,StoreUtil.getSectionStyle(UseRecordDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
         addPart(descriptionUseRecordSection);
-
-
     }
 
     private void createUserSection(RootElement parent) {
@@ -947,7 +928,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-
         NonViralNameDetailSection nonViralNameSection = formFactory
                 .createNonViralNameDetailSection(getConversationHolder(), parent, this, true,
                         StoreUtil.getSectionStyle(NonViralNameDetailSection.class, getInput().getClass().getCanonicalName(), true));
@@ -960,7 +940,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         addPart(referenceDetailSection);
 
-
         NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
                        StoreUtil.getSectionStyle(NomenclaturalStatusSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
@@ -977,7 +956,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
                NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(NameRelationshipDetailSection.class, getInput().getClass().getCanonicalName()));
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                addPart(nameRelationshipSection);
-
     }
 
     private void createTaxonRelationshipSection(RootElement parent) {
@@ -993,7 +971,7 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
     }
 
     private void createDefinedTermSection(RootElement parent) {
-        DefinedTermDetailSection definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        DefinedTermDetailSection<?> definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(definedTermDetailSection);
         TermMediaSection termMediaSection = formFactory.createTermMediaSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(termMediaSection);
@@ -1028,6 +1006,4 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
            }
         }
     }
-
-
-}
+}
\ No newline at end of file
index 3a0dbec50b0541b8137f7dac0f6c33556678ea63..973b580d345e1847cc4a3283b281ebab359a532f 100644 (file)
@@ -27,6 +27,7 @@ import org.eclipse.swt.widgets.Composite;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -110,7 +111,16 @@ public class SupplementalDataPartE4 extends AbstractCdmEditorPartE4 {
                    structuredSelection = new StructuredSelection(((GbifResponse)structuredSelection.getFirstElement()).getDerivedUnitFacade().innerDerivedUnit());
                }
                else if(structuredSelection.getFirstElement() instanceof DescriptionElementBase ){
-                structuredSelection = new StructuredSelection((structuredSelection.getFirstElement()));
+                   structuredSelection = new StructuredSelection((structuredSelection.getFirstElement()));
+                if (((DescriptionElementBase)structuredSelection.getFirstElement()).getInDescription().isComputed()){
+                    setEnabled(false);
+                }
+            }
+               else if(structuredSelection.getFirstElement() instanceof DescriptionBase ){
+
+                if (((DescriptionBase)structuredSelection.getFirstElement()).isComputed()){
+                    setEnabled(false);
+                }
             }
                else if(structuredSelection.getFirstElement() instanceof TermDto
                        || structuredSelection.getFirstElement() instanceof TermVocabularyDto){
index 0504cbaad7e152fdd8bba0b53b8bf19c88ffd684..eb99ec733e7e671bdc9ff85b49efcdf131e2bacd 100755 (executable)
@@ -1,3 +1,11 @@
+/**
+* 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.view.search.derivative;
 
 import java.util.ArrayList;
@@ -27,15 +35,14 @@ public class DerivateContentProvider implements ITreeContentProvider {
        @Override
        public void dispose() {
                // TODO Auto-generated method stub
-
        }
 
        public List<SpecimenOrObservationBase> getRootElements() {
-           List<SpecimenOrObservationBase> elements = new ArrayList<SpecimenOrObservationBase>();
+           List<SpecimenOrObservationBase> elements = new ArrayList<>();
 
            if(rootNodes != null) {
                for(TreeNode node : rootNodes) {
-                   elements.add((SpecimenOrObservationBase)node.getValue());
+                   elements.add((SpecimenOrObservationBase<?>)node.getValue());
                }
            }
            return elements;
@@ -49,12 +56,10 @@ public class DerivateContentProvider implements ITreeContentProvider {
        public Object[] getElements(Object inputElement) {
            rootNodes = new ArrayList<>();
            if(inputElement instanceof Collection){
-               for (Object o: (Collection)inputElement) {
+               for (Object o: (Collection<?>)inputElement) {
                    if(o instanceof SpecimenOrObservationBase){
                        SpecimenOrObservationBase<?> rootElement = (SpecimenOrObservationBase<?>)o;
-                       if(rootElement!=null){
-                           rootNodes.add(new TreeNode(rootElement));
-                       }
+                       rootNodes.add(new TreeNode(rootElement));
                    }
             }
            }
index cf4cd7ac3415f2b6f1bd5d15afe5d213a2b6c393..3f1f1aa2d545c1a656b017944ebd677772fb642c 100644 (file)
@@ -18,6 +18,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.UUID;
 
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.swt.graphics.Image;
@@ -45,6 +46,7 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.strategy.cache.common.IdentifiableEntityDefaultCacheStrategy;
+import eu.etaxonomy.cdm.strategy.cache.occurrence.DnaSampleDefaultCacheStrategy;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -130,8 +132,6 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         return sampleDesignationTerm;
     }
 
-
-    /** {@inheritDoc} */
     @Override
     public String getText(Object element) {
         if(element instanceof TreeNode){
@@ -139,14 +139,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         }
         String text = null;
         if(element instanceof IdentifiableEntity
-                && ((IdentifiableEntity) element).isProtectedTitleCache()){
-            return ((IdentifiableEntity) element).getTitleCache();
+                && ((IdentifiableEntity<?>) element).isProtectedTitleCache()){
+            return ((IdentifiableEntity<?>) element).getTitleCache();
         }
 
-
         //check if collection code does not exist -> use collection name then
         FormatKey collectionKey = FormatKey.COLLECTION_CODE;
-        text = CdmFormatterFactory.format(element,new FormatKey[]{FormatKey.COLLECTION_CODE});
+        text = CdmFormatterFactory.format(element, new FormatKey[]{FormatKey.COLLECTION_CODE});
         if(CdmUtils.isBlank(text)){
             collectionKey = FormatKey.COLLECTION_NAME;
         }
@@ -156,22 +155,16 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             text = ((FieldUnit) element).getTitleCache();
         }
         else if(element instanceof MediaSpecimen){
-            text = CdmFormatterFactory.format(element,
-                    new FormatKey[]{
-//                            FormatKey.MEDIA_TITLE_CACHE, FormatKey.SPACE,
-                            collectionKey, FormatKey.SPACE,
-                            FormatKey.MOST_SIGNIFICANT_IDENTIFIER, FormatKey.SPACE,
-                            FormatKey.MEDIA_TITLE, FormatKey.SPACE,
-                            FormatKey.MEDIA_ARTIST, FormatKey.SPACE,
-                            });
+            MediaSpecimen mediaSpecimen = (MediaSpecimen)element;
+            text = mediaSpecimen.getTitleCache();
         }
         else if (element instanceof DnaSample) {
-            text = CdmFormatterFactory.format(element,
-                    new FormatKey[] {
-                            collectionKey, FormatKey.SPACE,
-                            FormatKey.MOST_SIGNIFICANT_IDENTIFIER, FormatKey.SPACE,
-                            FormatKey.SAMPLE_DESIGNATION, FormatKey.SPACE
-                            });
+            DnaSample dnaSample = (DnaSample)element;
+            if (!(dnaSample.getCacheStrategy() instanceof DnaSampleDefaultCacheStrategy)){
+                dnaSample.setCacheStrategy(new DnaSampleDefaultCacheStrategy());
+            }
+            dnaSample.setTitleCache(null);
+            text = dnaSample.getTitleCache();
         }
         else if (element instanceof DerivedUnit) {
             text = CdmFormatterFactory.format(element,
@@ -195,7 +188,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         }
         else if(element instanceof IdentifiableEntity){
 
-               IdentifiableEntity identifiableEntity = (IdentifiableEntity) element;
+               IdentifiableEntity<?> identifiableEntity = (IdentifiableEntity<?>) element;
                if(identifiableEntity.isProtectedTitleCache()){
                        text = identifiableEntity.getTitleCache();
                }
@@ -215,15 +208,11 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                return text;
     }
 
-    /** {@inheritDoc} */
     @Override
     public String getToolTipText(Object element) {
         return getDerivateText(element);
     }
 
-    /**
-     * @param conversation the conversation to set
-     */
     public void setConversation(ConversationHolder conversation) {
         this.conversation = conversation;
     }
@@ -232,6 +221,8 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         return getDerivateText(element, conversation);
     }
 
+    //Note AM: not sure what this method is really used for, why do we need an explicit
+    //         formatting for those few use-cases where this is used?
     public static String getDerivateText(Object element, ConversationHolder conversation){
         //TODO: use list of strings to assemble labels to avoid adding the separator every time and to allow null values
         TreeNode parentNode = null;
@@ -248,7 +239,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             conversation.bind();
         }
 
-        final String emptyString = "";
+        final String emptyString = StringUtils.EMPTY;
         final String separator = " ";
 
         String label = emptyString;
@@ -267,25 +258,15 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         }
         //MediaSpecimen
         else if(derivate instanceof MediaSpecimen){
-            MediaSpecimen mediaSpecimen = (MediaSpecimen)derivate;
-            if(mediaSpecimen.getMediaSpecimen()!=null){
-                label += mediaSpecimen.getMediaSpecimen().getTitle()!=null?mediaSpecimen.getMediaSpecimen().getTitle().getText()+separator:"[no motif]";
-                label += mediaSpecimen.getMediaSpecimen().getArtist()!=null?mediaSpecimen.getMediaSpecimen().getArtist()+separator:emptyString;
-            }
-            eu.etaxonomy.cdm.model.occurrence.Collection collection = mediaSpecimen.getCollection();
-            if(collection!=null){
-                label += collection.getName()!=null?collection.getName()+" ":emptyString;
-                label += collection.getCode()!=null?"("+collection.getCode()+")"+separator:emptyString;
-            }
-            label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+separator:emptyString;
-            label += mediaSpecimen.getBarcode()!=null?mediaSpecimen.getBarcode()+separator:emptyString;
+            label = ((MediaSpecimen)derivate).generateTitle();
         }
         //TissueSample + DnaSample
         else if(derivate instanceof DnaSample
                 && ((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
             DnaSample dnaSample = (DnaSample)derivate;
-            if(((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
-                Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
+            //AM: maybe we can use cache strategy here, unclear why only sample designation is needed; unfortunately method documentation is missing
+            if(dnaSample.getRecordBasis()==SpecimenOrObservationType.DnaSample){
+                Identifier currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
                 if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
                     label += currentSampleDesignation.getIdentifier()+separator;
                 }
@@ -330,7 +311,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 if(derivedUnit.getKindOfUnit()!=null){
                     label += derivedUnit.getKindOfUnit()+separator;
                 }
-                Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(derivedUnit);
+                Identifier currentSampleDesignation = getCurrentSampleDesignation(derivedUnit);
                 if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
                     label += currentSampleDesignation.getIdentifier() + separator;
                 }
@@ -342,7 +323,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         //Sequence
         else if(derivate instanceof Sequence){
             Sequence sequence = (Sequence)derivate;
-            Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(sequence);
+            Identifier currentSampleDesignation = getCurrentSampleDesignation(sequence);
             if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
                 label += currentSampleDesignation.getIdentifier()+separator;
             }
@@ -356,7 +337,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             SingleRead singleRead = (SingleRead)derivate;
             if(parentNode!=null && parentNode.getValue() instanceof Sequence){
                 Sequence sequence = (Sequence) parentNode.getValue();
-                Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(sequence);
+                Identifier currentSampleDesignation = getCurrentSampleDesignation(sequence);
                 if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
                     label = currentSampleDesignation.getIdentifier()+separator;
                 }
@@ -457,15 +438,10 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         return ImageResources.getImage(ImageResources.DEFAULT_DERIVATIVE);
     }
 
-    public static Identifier<DnaSample> getCurrentSampleDesignation(CdmBase entity) {
+    public static Identifier getCurrentSampleDesignation(CdmBase entity) {
         if(entity.isInstanceOf(DnaSample.class)){
             DnaSample dnaSample = HibernateProxyHelper.deproxy(entity, DnaSample.class);
-            for (Identifier<DnaSample> identifier : dnaSample.getIdentifiers()) {
-                if(identifier.getType()!=null && identifier.getType().equals(DerivateLabelProvider.getSampleDesignationTerm())){
-                    //first sample designation is the current
-                    return identifier;
-                }
-            }
+            dnaSample.getIdentifier(DefinedTerm.uuidSampleDesignation);
         }
         else if(entity.isInstanceOf(Sequence.class)){
             Sequence sequence = HibernateProxyHelper.deproxy(entity, Sequence.class);
@@ -498,8 +474,8 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             }
         }
         if(rootElements!=null){
-            Collection<DerivedUnit> derivedUnits = new ArrayList<DerivedUnit>();
-            for (SpecimenOrObservationBase specimenOrObservationBase : rootElements) {
+            Collection<DerivedUnit> derivedUnits = new ArrayList<>();
+            for (SpecimenOrObservationBase<?> specimenOrObservationBase : rootElements) {
                 List<DerivedUnit> childUnits = CdmStore.getService(IOccurrenceService.class).getAllChildDerivatives(specimenOrObservationBase.getUuid());
                 if (childUnits != null){
                     derivedUnits.addAll(childUnits);
index c67129ebeaaa6bb1a5160c20d02362a83404f98a..11543bf2b004b449d54e3987ac1610cbfde4b3fc 100644 (file)
@@ -18,7 +18,6 @@ import org.eclipse.swt.widgets.Shell;
 /**
  * @author pplitzner
  * @since Nov 2, 2017
- *
  */
 public class InspectSessionHandler {
 
index 5954fb46c377901737a5adab194c449b994343a1..3a227aef961e1d4813f69ee0d364048f0f78a2d3 100644 (file)
@@ -61,7 +61,7 @@ public class InspectSessionsDialog extends Dialog {
 
     private TreeViewer treeViewer;
     private Button btnClose;
-    EntityCacherDebugResult ecdr;
+    private EntityCacherDebugResult entityCacherDebugResult;
     private SashForm sashForm;
     private Composite compositeDebug;
 
@@ -77,13 +77,12 @@ public class InspectSessionsDialog extends Dialog {
         activeSession = CdmStore.getCurrentSessionManager().getActiveSession();
         if (activeSession != null){
             //TODO
-            ecdr = activeSession.debug(false);
+            entityCacherDebugResult = activeSession.debug(false);
         }
     }
 
     /**
      * Open the dialog.
-     * @return the result
      */
     public Object open() {
 
@@ -146,15 +145,14 @@ public class InspectSessionsDialog extends Dialog {
         gd_btnClose.widthHint = 70;
         btnClose.setLayoutData(gd_btnClose);
         btnClose.setText("Close");
-
     }
 
     private void setDebugInfoText() {
-        txtDebugInfo.setText(ecdr.toString());
+        txtDebugInfo.setText(entityCacherDebugResult == null? "No session" : entityCacherDebugResult.toString());
     }
     private CdmEntityInfo[] getRootElements() {
 
-        List<CdmEntityInfo> rootElemnts = ecdr.getRootElements();
+        List<CdmEntityInfo> rootElemnts = entityCacherDebugResult.getRootElements();
         return rootElemnts.toArray(new CdmEntityInfo[rootElemnts.size()]);
     }
 
index 6b40a6a1c1655146c2d3487d8ad789977e3d7b00..8a6b271a4727e2a93f03224a1ae71129a8a25666 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: eu.etaxonomy.taxeditor.test
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.test;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: EDIT
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
index 0be03ef9bfee68a3cc9d3ef60f7b86e8c174b9c5..82682c89b4e79a6d7cadd69eb83e587e9178134f 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
   <artifactId>eu.etaxonomy.taxeditor.test</artifactId>
   <!-- for packaging=eclipse-test-plugin 
index 0cd3a06e2a4b9dca7a9bd131fcecc951a8e21989..4e5c41b435aece42995420edfe19a1c8d698aa31 100644 (file)
@@ -185,7 +185,7 @@ public class TaxonNameEditorTest extends BaseOperationTest {
         Synonym synonym = (Synonym)taxonService.load(synonymUuid);
         TaxonName synonymName = synonym.getName();
 
-        UpdateResult result = taxonService.swapSynonymAndAcceptedTaxon(synonym.getUuid(), taxon.getUuid(), false);
+        UpdateResult result = taxonService.swapSynonymAndAcceptedTaxon(synonym.getUuid(), taxon.getUuid(), false, false);
         taxon = (Taxon)result.getCdmEntity();
         Set<TaxonName> synNames = taxon.getSynonymNames();
         Iterator<TaxonName> iterator = synNames.iterator();
index b238b88cbd4100a77006dc1af0c81eee1d4670fc..a125b3369b148e87c357e4f50e853886d007f618 100644 (file)
@@ -59,7 +59,7 @@ public class IOServiceImportTest extends BaseRemotingTest {
         String importFilePath = "src/test/resources/imports/NormalExplicitImport.xls";
         NormalExplicitImportConfigurator config =
                 NormalExplicitImportConfigurator.NewInstance(null, null, null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
         Assert.assertTrue(result.isSuccess());
@@ -73,7 +73,7 @@ public class IOServiceImportTest extends BaseRemotingTest {
         String importFilePath = "src/test/resources/imports/ABCDImport.xml";
         Abcd206ImportConfigurator config =
                 Abcd206ImportConfigurator.NewInstance(null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.INPUTSTREAM);
         Assert.assertTrue(result.isSuccess());
@@ -88,7 +88,7 @@ public class IOServiceImportTest extends BaseRemotingTest {
         String importFilePath = "src/test/resources/imports/SDD.xml";
         SDDImportConfigurator config =
                 SDDImportConfigurator.NewInstance(null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
         Assert.assertTrue(result.isSuccess());
@@ -100,7 +100,7 @@ public class IOServiceImportTest extends BaseRemotingTest {
     public void importSpecimenExcel() throws IOException {
         String importFilePath = "src/test/resources/imports/SpecimenExcelImport.xls";
         SpecimenCdmExcelImportConfigurator config = SpecimenCdmExcelImportConfigurator.NewInstance(null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
         Assert.assertTrue(result.isSuccess());
@@ -112,7 +112,7 @@ public class IOServiceImportTest extends BaseRemotingTest {
     public void importTCS() throws IOException {
         String importFilePath = "src/test/resources/imports/TcsImport.xml";
         TcsXmlImportConfigurator config = TcsXmlImportConfigurator.NewInstance(null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
         Assert.assertTrue(result.isSuccess());
index 33ee0ca432183169c4c49a7220330434ba1aaf83..ac8107498e54b848bc84546874874d6932f1374c 100644 (file)
@@ -25,7 +25,7 @@
   <TAXONNAME NAMETYPE="ICNAFP" id="388" uuid="747021f1-cf5f-4249-a825-228da3368399" protectedtitlecache="true" titleCache="Asplenium cyprium Viane &amp; Van den heede" fullTitleCache="Asplenium cyprium Viane &amp; Van den heede" parsingproblem="16" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" hybridformula="false" monomhybrid="false" namecache="Asplenium cyprium Viane &amp; Van den heede" protectedauthorshipcache="false" protectednamecache="true" trinomhybrid="false" anamorphic="false" />
   <TAXONNAME NAMETYPE="ICNAFP" id="394" uuid="08f8f376-c9a4-4ea9-950d-3ac30b7fa689" protectedtitlecache="false" titleCache="Asplenium viride Huds." fullTitleCache="Asplenium viride Huds." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Huds." binomhybrid="false" genusoruninomial="Asplenium" hybridformula="false" monomhybrid="false" namecache="Asplenium viride" protectedauthorshipcache="false" protectednamecache="false" specificepithet="viride" trinomhybrid="false" anamorphic="false"  homotypicalgroup_id="375" rank_id="778" />
 
-  <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus"  name_id="10" reference_id="10" />
+  <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus"  name_id="10" source_id="4"/>
  
   <TaxonBase DTYPE="Taxon"   id="387" uuid="9763e5f0-6cd4-4d96-b8a4-4420854f7727" protectedtitlecache="false" titleCache="Asplenium ceterach L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="387" publish="true"/>
   <TaxonBase DTYPE="Synonym" id="388" uuid="1eb173bd-b174-4162-8ff5-5136d8f1e746" protectedtitlecache="false" titleCache="Asplenium cyprium Viane &amp; Van den heede sec. Cyprus" doubtful="false" usenamecache="false"  name_id="388" publish="true" acceptedtaxon_id="387"/>
@@ -33,6 +33,7 @@
   <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="1" SOURCEDTAXON_ID="387" UUID="5ff76440-c9ab-4f13-8f1a-c39d57d3c714" SOURCETYPE="PTS" CITATION_ID="10" />
   <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="2" SOURCEDTAXON_ID="388" UUID="3914b660-3cb3-4a5b-8fc7-264c7ac17a19" SOURCETYPE="PTS" CITATION_ID="10" />
   <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="3" SOURCEDTAXON_ID="394" UUID="7cbe8fd0-1329-4421-8bb5-05b57f2048d1" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="NamedSource"    ID="4"                       UUID="53dfd49b-f15b-4ce9-a52a-615d41634a4a" SOURCETYPE="PTS" CITATION_ID="10" />
 
   <LanguageString id="10"/>
   <DescriptionBase/>
index 5d91a83efb1756ab2a5a1076ea13894cdbe0d75e..7ec48cc93a7a80e5d640dfde9c290cc3f644ba0c 100644 (file)
Binary files a/eu.etaxonomy.taxeditor.test/src/test/resources/h2/cdmTest.h2.db and b/eu.etaxonomy.taxeditor.test/src/test/resources/h2/cdmTest.h2.db differ
index 8d4d03448069ec9ed2091eca67d0a6fd5729f1b9..3ac4e204dd8adc1c666b76544755150dfd1e40ca 100644 (file)
@@ -5,7 +5,7 @@ Export-Package: eu.etaxonomy.taxeditor.bulkeditor,
  eu.etaxonomy.taxeditor.workbench.datasource,
  eu.etaxonomy.taxeditor.workbench.part
 Bundle-Name: Workbench Bundle
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.e4.ui.workbench,
index 84dba6508d750941c044cebbea3533fb91de420a..f4021a80db01381342a2614150c40955ba42d695 100644 (file)
@@ -51,7 +51,7 @@
         </children>
       </children>
       <children xsi:type="menu:Menu" xmi:id="_FaGnuiQNEeen_7LZsZSNoA" elementId="eu.etaxonomy.taxeditor.workbench.menu.admin" label="%menu.label.4" mnemonics="A">
-        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_OzuHcMTmEems-YpsQcOSgA" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
+        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_OzuHcMTmEems-YpsQcOSgA" coreExpressionId="hasROLE_USER_MANAGER_OR_hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_b4RFsCQsEeeq76l4saMAFQ" elementId="eu.etaxonomy.taxeditor.workbench.menu.admin.dbpreferences" label="%command.label.23" command="_VawPsCQsEeeq76l4saMAFQ">
           <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_b4RFsSQsEeeq76l4saMAFQ" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
         </children>
index c69bd7dc5ae5f0f68a7aedff4a614f09063a820a..fd3af71c555b0659d23341362a18e30705af571b 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 13df8595e764a0c1fce2fda86aa4b91a9dc3d446..bd7241950609a7f6ce443fbec9cb35939eb96d89 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="5.22.1">
+<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="5.23.0">
   <aboutInfo>
     <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
     <text>
index 0ba8ed6cb5904b155b0819bf2e0b50f639e9151a..62cc2c962a39f2c4d08dca597f96f2c427b02349 100644 (file)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.22.1</version>
+    <version>5.23.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/pom.xml b/pom.xml
index 340b5e7107b1ea6c96a6e1894ad657d68fec3e83..387663bd45bf619a554231f55c56e30a0bbe087a 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
   </prerequisites>
   <groupId>eu.etaxonomy</groupId>
   <artifactId>taxeditor-parent</artifactId>
-  <version>5.22.1</version>
+  <version>5.23.0</version>
   <name>EDIT Taxonomic Editor</name>
   <description>The Taxonomic Editor for EDIT's platform for
     cybertaxonomy
   <properties>
     <java.codelevel>1.8</java.codelevel>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <cdmlib.version>5.22.0</cdmlib.version>
+    <cdmlib.version>5.23.0</cdmlib.version>
     <!-- TODO can we use project.version ????? -->
     <!-- Increasing tycho above 0.22.0 will fail for the macosx build because 
       for higher version numbers tycho needs to be build against Eclipse Mars or 
       higher -->
     <tycho.version>1.0.0</tycho.version>
-    <taxeditor.version>5.22.0</taxeditor.version>
+    <taxeditor.version>5.23.0</taxeditor.version>
     <update.dir>snapshot</update.dir>
     <log4j.version>1.2.17</log4j.version>
     <httpcomponents.version>4.5.12</httpcomponents.version>
diff --git a/project-setup-wire-locally.sh b/project-setup-wire-locally.sh
new file mode 100755 (executable)
index 0000000..11fd1a8
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+CDMLIB_ROOT=~/workspaces/cdm/cdmlib
+
+CDM_PROJETCS=("cdmlib-cache" "cdmlib-commons" "cdmlib-model" "cdmlib-ext" "cdmlib-io" "cdmlib-persistence" "cdmlib-services")
+
+rm -fr eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/*
+for prj in "${CDM_PROJETCS[@]}"; do
+       ln -sf $CDMLIB_ROOT/$prj/target/classes eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/$prj-classes
+done