Merge branch 'release/5.29.0' 5.29.0
authorjenkins <jenkins-int@bgbm.org>
Tue, 15 Feb 2022 12:37:28 +0000 (13:37 +0100)
committerjenkins <jenkins-int@bgbm.org>
Tue, 15 Feb 2022 12:37:28 +0000 (13:37 +0100)
161 files changed:
.gitattributes
.gitignore
eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.application/pom.xml
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/TaxonomicEditorPlugin.java
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/BulkEditor.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorComposite.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorTooltip.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/referencingobjects/e4/ReferencingObjectsViewE4.java
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/build.properties
eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/README.md [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/cdmlib-services-classes [deleted symlink]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections-3.2.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.0.6.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.5.2.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.5.2.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.5.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/json-20090211.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.4-jdk15.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.2.17.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-3.6.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-common-5.4.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/lucene-core-5.4.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/lucene-queryparser-5.4.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/lucene-sandbox-5.4.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/lucene-suggest-5.4.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xalan-2.7.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/pom.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/ConversationalTransientEntityCacher.java
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.xml
eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.editor/fragment.e4xmi
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/character/CharacterEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrix.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixConfigLabelAccumulator.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixLabelStyleConfiguration.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/MatrixUtility.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/categorical/CategoricalDataCellEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/categorical/CategoricalDataDisplayConverter.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/handler/AggregationHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/handler/CreateDefaultTaxonDescriptionHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/handler/CreateTaxonDescriptionHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/handler/GeneratePolytomousKeyHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/quantitative/QuantitativeDataDialogComposite.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/quantitative/QuantitativeDataDialogEditor.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/view/descriptive/DescriptionElementTransfer.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/FactualDataPartE4.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/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/operation/DeleteDescriptionElementOperation.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/build.properties
eu.etaxonomy.taxeditor.local/pom.xml
eu.etaxonomy.taxeditor.molecular.lib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.molecular.lib/build.properties
eu.etaxonomy.taxeditor.molecular.lib/configAlternatives/dependenciesFromClassFolder/build.properties
eu.etaxonomy.taxeditor.molecular.lib/pom.xml
eu.etaxonomy.taxeditor.molecular/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.molecular/pom.xml
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/NavigationUtil.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/NewTaxonNodeHandlerE4.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/plugin.xml
eu.etaxonomy.taxeditor.store/pom.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/IBulkEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermDtoLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/event/WorkbenchEventConstants.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/update/UpdateHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewReferenceWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTeamWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonSearchPreferences.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/CharacterTransfer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermNodeTransfer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/operation/RemoveFeatureOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AgentSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectorSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorTeamSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TeamOrPersonBaseSelectionDialog.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/agent/NomenclaturalTeamMemberElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/AbstractApplicableElementForDto.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterNodeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterNodeDtoDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureStateWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureStateWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/InapplicableIfCollectionElementForDto.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/InapplicableIfEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/InapplicableIfEntityCollectionSectionForNode.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/OnlyApplicableIfCollectionElementForDto.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/OnlyApplicableIfEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityLabelTextProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalSourceDetailElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalReferenceDetailElement.java with 93% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalSourceDetailSection.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalReferenceDetailSection.java with 91% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/CollectorSelectionElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/NomenclaturalAuthorTeamSelectionElement.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtil.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.test/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.test/build.properties
eu.etaxonomy.taxeditor.test/pom.xml
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonWizardTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/RemotingCdmUpdateOperationTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/AbstractSelectionElementTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/ClassificationSelectionElementTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/NameSelectionElementTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonNodeSelectionElementTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonSelectionElementTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/util/H2DbSupport.java
eu.etaxonomy.taxeditor.test/src/test/resources/h2/cdmTest.h2.db
eu.etaxonomy.taxeditor.workbench/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.workbench/pom.xml
eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product
eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product.with.jre
eu.etaxonomy.taxeditor/pom.xml
eu.etaxonomy.taxeditor/rcp.target
pom.xml
project-setup-wire-locally.sh
src/site/fml/troubleshooting.fml

index 7ce478b4b813d8935dbe7e6c2371d1657693c385..6f4bbe8acf84b39e2079e37aab383012350d7efa 100644 (file)
@@ -148,7 +148,6 @@ eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.4.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.1.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/concurrent-1.3.4.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/dom4j-1.6.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/dozer-5.3.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/easymock-3.1.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/easymockclassextension-2.3.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.0.6.jar -text
@@ -158,9 +157,6 @@ eu.etaxonomy.taxeditor.cdmlib/lib/h2mig_pagestore_addon.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-c3p0-4.1.10.Final.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-jpa-2.0-api-1.0.1.Final.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/icu4j-2.6.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.4.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jakarta-regexp-1.4.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.2.7.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-xjc-2.2-EA.jar -text
@@ -172,10 +168,8 @@ eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.0.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.4-jdk15.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jsr250-api-1.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jtds-1.3.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/junit-4.11.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.2.17.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/mchange-commons-java-0.2.3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-1.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-0.8.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-java-0.8.7.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar -text
@@ -203,10 +197,8 @@ eu.etaxonomy.taxeditor.cdmlib/lib/xml-resolver-1.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/xmlParserAPIs-2.6.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/xmlgraphics-commons-1.5.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/xmlpull-1.1.3.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/xom-1.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/xpp3-1.1.4c.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/xpp3_min-1.1.4c.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/xstream-1.4.4.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/yjp-controller-api-redist-9.0.8.jar -text
 eu.etaxonomy.taxeditor.cdmlib/pom.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java -text
index 5430705dc1d2baf506cc33100a5a3ea83cd47109..4001170dd55b9bbf29cd5dad4ab6e96ea64f594d 100644 (file)
@@ -37,9 +37,6 @@ eu.etaxonomy.taxeditor.webapp/lib/cdmlib-remote-webapp.war
 /runtime-taxeditor.product
 /workspace
 /*.patch
-/eu.etaxonomy.taxeditor.webapp/.settings/org.eclipse.core.resources.prefs
-/eu.etaxonomy.taxeditor.webapp/.settings/org.eclipse.m2e.core.prefs
-/eu.etaxonomy.taxeditor.webapp/lib/
 
 /.ssh
 eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.xsd
@@ -83,14 +80,7 @@ eu.etaxonomy.taxeditor.cdmlib/lib/mysql-connector-java-8.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-42.2.15.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-1.4.01.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/lsid-client-1.1.2.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-core-3*.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-database-3*.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-dbmaintainer-3*.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-dbunit-3*.jar
-eu.etaxonomy.taxeditor.test/lib/unitils-spring-3*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang-2.*.jar
-eu.etaxonomy.taxeditor.test/lib/c3p0-0.*.jar
-eu.etaxonomy.taxeditor.test/lib/dbunit-2.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/c3p0-0.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/jdom-1.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/jdom2-2.*.jar
@@ -98,6 +88,7 @@ eu.etaxonomy.taxeditor.cdmlib/lib/xmlbeans-3.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/poi-4.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-4.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-schemas-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections-3.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections4-4.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-math3-3.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.*.jar
@@ -113,26 +104,44 @@ eu.etaxonomy.taxeditor.cdmlib/lib/apache-log4j-extras-1.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/antlr-2.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/cglib-nodep-3.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/ehcache-2.*.jar
-eu.etaxonomy.taxeditor.printpublisher/lib/cdmlib-*.jar
-eu.etaxonomy.taxeditor.test/lib/commons-dbcp-1.*.jar
-eu.etaxonomy.taxeditor.test/lib/commons-pool-1.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/junit-4.*.jar
-eu.etaxonomy.taxeditor.test/lib/hamcrest-core-1.*.jar
-eu.etaxonomy.taxeditor.test/lib/junit-4.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/hamcrest-core-1.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-pool-1.*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-dbcp-1.*.jar
-eu.etaxonomy.taxeditor.printpublisher/lib/fop-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-42.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/mchange-commons-java-*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.2_spec-1.*.Final.jar
-eu.etaxonomy.taxeditor.local/lib/postgresql-42.2.15.jar
-eu.etaxonomy.taxeditor.local/lib/mysql-connector-java-8.0.21.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/json-2*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/lucene-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/xalan-2.*.jar
+
+eu.etaxonomy.taxeditor.test/lib/unitils-core-3*.jar
+eu.etaxonomy.taxeditor.test/lib/unitils-database-3*.jar
+eu.etaxonomy.taxeditor.test/lib/unitils-dbmaintainer-3*.jar
+eu.etaxonomy.taxeditor.test/lib/unitils-dbunit-3*.jar
+eu.etaxonomy.taxeditor.test/lib/unitils-spring-3*.jar
+eu.etaxonomy.taxeditor.test/lib/c3p0-0.*.jar
+eu.etaxonomy.taxeditor.test/lib/dbunit-2.*.jar
+eu.etaxonomy.taxeditor.test/lib/commons-dbcp-1.*.jar
+eu.etaxonomy.taxeditor.test/lib/commons-pool-1.*.jar
+eu.etaxonomy.taxeditor.test/lib/hamcrest-core-1.*.jar
+eu.etaxonomy.taxeditor.test/lib/junit-4.*.jar
+eu.etaxonomy.taxeditor.local/lib/postgresql-*.jar
+eu.etaxonomy.taxeditor.local/lib/mysql-connector-java-*.jar
 eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war
 eu.etaxonomy.taxeditor.local/lib/jtds-1.3.1.jar
-eu.etaxonomy.taxeditor.local/lib/mssql-jdbc-8.4.1.jre8.jar
+eu.etaxonomy.taxeditor.local/lib/mssql-jdbc-*.jar
 eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war
-eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-42.*.jar
-eu.etaxonomy.taxeditor.cdmlib/lib/mchange-commons-java-*.jar
 eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war
-eu.etaxonomy.taxeditor.local/lib/postgresql-42.*.jar
 eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp-*.war
-eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-*.jar
+eu.etaxonomy.taxeditor.printpublisher/lib/cdmlib-*.jar
+eu.etaxonomy.taxeditor.printpublisher/lib/fop-2.*.jar
index d34b20459488851e21deef3cbdb3075ff78c13e2..47cf188d790decf4c9aea98a37cf882cd2dfb0bb 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.28.1
+Bundle-Version: 5.29.0
 Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/plugin
index b736e31051d0be0bb2d4936daa1bd03828631ae5..a6ebf51c8431dcb5b9c2f1259c5e465efbf0469e 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 8d1bd009edc6b0bb19935866bfa991f2cafcaa3d..0701064dec783fe89939f8eb7fb87a50792880ca 100644 (file)
@@ -107,10 +107,13 @@ public class TaxonomicEditorPlugin extends AbstractUIPlugin {
            if (ui == null) {
                ServiceReference<?> reference = bundleContext.getServiceReference(IProvisioningAgent.SERVICE_NAME);
                IProvisioningAgent agent = (IProvisioningAgent) bundleContext.getService(reference);
+              
                session = new ProvisioningSession(agent);
+               
                Policy policy = null;// = (Policy) ServiceHelper.getService(ProvUIActivator.getContext(), Policy.class.getName());
                if (policy == null) {
                    policy = new Policy();
+                   
                }
                ui = new ProvisioningUI(session, IProfileRegistry.SELF, policy);
            }
index b8f1406efbf947f116b5f4159061480d2f10aef1..4c7fb4c99c2d3cd9e740a6909451d71ac00e0472 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.28.1
+Bundle-Version: 5.29.0
 Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
@@ -41,6 +41,7 @@ Import-Package: eu.etaxonomy.taxeditor.editor,
  org.eclipse.jface.text.reconciler,
  org.eclipse.jface.text.rules,
  org.eclipse.jface.text.source,
+ org.eclipse.ui.ide.undo,
  org.eclipse.ui.views.properties,
  org.osgi.framework
 Bundle-ActivationPolicy: lazy
index 9480039b90b21dceb5e6ef4e7ae119a684477e48..fce927f625b7e60c5160e080ba4f6c8a4203dd43 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.28.1</version>
+               <version>5.29.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 8350b8ac2690e01a580254eedbf5c08c8f7e8c23..082aa3f69d7503f89625c447c929a68c4b4d6d8b 100644 (file)
@@ -10,13 +10,21 @@ package eu.etaxonomy.taxeditor.bulkeditor.e4;
 
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IOperationHistory;
+import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.core.di.annotations.Optional;
@@ -30,6 +38,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
@@ -59,14 +68,17 @@ 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.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
 /**
@@ -96,6 +108,8 @@ public class BulkEditor implements IPartContentHasDetails, IConversationEnabled,
     private BulkEditorQuery lastQuery = null;
 
     private BulkEditorComposite bulkEditorComposite;
+    
+    private Set<AbstractPostOperation> operations = new HashSet<>();
 
     @Inject
     public BulkEditor() {
@@ -122,6 +136,29 @@ public class BulkEditor implements IPartContentHasDetails, IConversationEnabled,
        }
 
     public void save(IProgressMonitor monitor, boolean resetMerge) {
+       for(AbstractPostOperation<?> entry:operations){
+            IStatus status = Status.CANCEL_STATUS;
+            final IAdaptable uiInfoAdapter = WorkspaceUndoUtil
+                    .getUIInfoAdapter(AbstractUtility.getShell());
+            String operationlabel = entry.getLabel();
+            try {
+                entry.addContext(IOperationHistory.GLOBAL_UNDO_CONTEXT);
+                
+                status = entry.execute(new NullProgressMonitor(), uiInfoAdapter);
+            } catch (ExecutionException e) {
+                MessagingUtils.operationDialog(AbstractUtility.class, e, TaxeditorStorePlugin.PLUGIN_ID, operationlabel, null);
+            }
+
+            IPostOperationEnabled postOperationEnabled = entry
+                    .getPostOperationEnabled();
+            if (postOperationEnabled != null) {
+                postOperationEnabled.onComplete();
+            }
+
+            //AbstractUtility.executeOperation(entry,sync);
+        }
+
+        operations.clear();
         if (!input.getCdmEntitySession().isActive()){
             input.getCdmEntitySession().bind();
         }
@@ -370,7 +407,7 @@ public class BulkEditor implements IPartContentHasDetails, IConversationEnabled,
 
     @Override
     public void addOperation(AbstractPostOperation operation) {
-        // operations not yet used for bulk editor
+        operations.add(operation);
     }
 
     @Inject
index 861a636a6ba5bc05304a811b0402f44086187f99..16ae6a34e2e48d84a0ee0031a9a7008c5479ae3a 100644 (file)
@@ -376,7 +376,9 @@ public class BulkEditorComposite extends Composite {
     }
 
     public void refresh(){
+       IStructuredSelection sel = getSelection();
         natTable.doCommand(new VisualRefreshCommand());
+        this.setSelection(sel);
     }
 
     public List<String> getColumnList() {
@@ -421,7 +423,7 @@ public class BulkEditorComposite extends Composite {
 
             if(object instanceof CdmBase &&  bulkEditor.getEditorInput().getModel().contains(object)){
                 object = bulkEditor.getEditorInput().getModel().get(bulkEditor.getEditorInput().getModel().indexOf(object));
-                bodyLayer.getSelectionLayer().selectRow(0, bodyDataProvider.indexOfRowObject((CdmBase) object), false, false);
+                bodyLayer.getSelectionLayer().selectRow(0, bodyDataProvider.indexOfRowObject((CdmBase) object), false, true);
             }
         }
     }
index 67451205ccd802ff131e9c53ca615288cc3d983b..8a01f594997a77135c0b213253d202faef823556 100644 (file)
@@ -57,10 +57,17 @@ public class BulkEditorTooltip extends DefaultToolTip {
         }
         int colIndex = this.natTable.getColumnIndexByPosition(col);
         int rowIndex = this.natTable.getRowIndexByPosition(row);
-        if(rowIndex==0){
+        if(row==0){
             return colHeaderDataProvider.getDataValue(colIndex, rowIndex).toString();
         }
-        return ""; //$NON-NLS-1$
+        Object dataValue = null;
+        if (natTable != null && natTable.getCellByPosition(col, row) != null){
+               dataValue = natTable.getCellByPosition(col, row).getDataValue();
+        }
+        if (dataValue == null){
+               return null;
+        }
+        return natTable.getCellByPosition(col, row).getDataValue().toString();
     }
 
     @Override
@@ -81,10 +88,10 @@ public class BulkEditorTooltip extends DefaultToolTip {
         }
 
         int rowIndex = this.natTable.getRowIndexByPosition(row);
-        if(rowIndex==0 && col>0){
-            return true;
+        if(row ==0 || col == 0){
+            return false;
         }
-        return false;
+        return true;
     }
 
 }
index 743a92e196688972ff538e6d8d1bb24fd4a1a4e2..e7c1e9750ead374aaec0544f263a7fe67f87ff70 100644 (file)
@@ -61,6 +61,6 @@ final class CellSelectionListener extends E4SelectionListener<CdmBase> {
                 return;
             }
         }
-        bulkEditor.getSelService().setSelection(new StructuredSelection());
+//        bulkEditor.getSelService().setSelection(new StructuredSelection());
     }
 }
index fd641d14b2df17d1333a5c38911fd3aa0cde7695..e4e4b6837cec32449cd1d3aa141688944615715d 100644 (file)
@@ -49,6 +49,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Table;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.IEventBaseService;
 import eu.etaxonomy.cdm.api.service.IGroupService;
@@ -373,7 +374,7 @@ public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements
                } else if (DescriptionBase.class.isAssignableFrom(objectClass)){
                    referencedObject = CdmStore.getService(IDescriptionService.class).load(entity);
                } else if (DescriptionElementBase.class.isAssignableFrom(objectClass)){
-                referencedObject = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(entity, null);
+                referencedObject = CdmStore.getService(IDescriptionElementService.class).load(entity, null);
             } else if (objectClass.equals(Sequence.class)){
                 referencedObject = CdmStore.getService(ISequenceService.class).load(entity, null);
             } else if (PolytomousKey.class.isAssignableFrom(objectClass)){
index abf7aca7fb9945c9fc34ce7117f664e6b377c865..6679ee5e77f02c82bd7fc9e65177e5bdc7851753 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.28.1
+Bundle-Version: 5.29.0
 Eclipse-BundleShape: dir
 Export-Package: com.sun.istack.internal.tools,
  com.sun.istack.internal.ws,
@@ -86,7 +86,6 @@ Export-Package: com.sun.istack.internal.tools,
  eu.etaxonomy.cdm.io.jaxb,
  eu.etaxonomy.cdm.io.markup,
  eu.etaxonomy.cdm.io.markup.handler,
- eu.etaxonomy.cdm.io.operation.config,
  eu.etaxonomy.cdm.io.pilotOutputHtml,
  eu.etaxonomy.cdm.io.reference.endnote.in,
  eu.etaxonomy.cdm.io.reference.ris.in,
@@ -270,7 +269,6 @@ Export-Package: com.sun.istack.internal.tools,
  org.apache.lucene.analysis.charfilter,
  org.apache.lucene.analysis.cjk,
  org.apache.lucene.analysis.ckb,
- org.apache.lucene.analysis.cn,
  org.apache.lucene.analysis.commongrams,
  org.apache.lucene.analysis.compound,
  org.apache.lucene.analysis.compound.hyphenation,
@@ -304,7 +302,6 @@ Export-Package: com.sun.istack.internal.tools,
  org.apache.lucene.analysis.path,
  org.apache.lucene.analysis.pattern,
  org.apache.lucene.analysis.payloads,
- org.apache.lucene.analysis.position,
  org.apache.lucene.analysis.pt,
  org.apache.lucene.analysis.query,
  org.apache.lucene.analysis.reverse,
@@ -562,21 +559,22 @@ Require-Bundle: org.eclipse.osgi,
  org.eclipse.swt
 Bundle-ClassPath: .,
  lib/apache-log4j-extras-1.2.17.jar,
- lib/aspectjrt-1.9.6.jar,
- lib/cdmlib-commons-5.28.0.jar,
- lib/cdmlib-ext-5.28.0.jar,
- lib/cdmlib-io-5.28.0.jar,
- lib/cdmlib-model-5.28.0.jar,
- lib/cdmlib-persistence-5.28.0.jar,
- lib/cdmlib-cache-5.28.0.jar,
- lib/cdmlib-services-5.28.0.jar,
+ lib/aspectjrt-1.9.7.jar,
+ lib/cdmlib-commons-5.29.0.jar,
+ lib/cdmlib-ext-5.29.0.jar,
+ lib/cdmlib-io-5.29.0.jar,
+ lib/cdmlib-model-5.29.0.jar,
+ lib/cdmlib-api-5.29.0.jar,
+ lib/cdmlib-persistence-5.29.0.jar,
+ lib/cdmlib-cache-5.29.0.jar,
+ lib/cdmlib-services-5.29.0.jar,
  lib/commons-beanutils-1.9.4.jar,
  lib/commons-codec-1.15.jar,
  lib/commons-collections-3.2.2.jar,
  lib/commons-dbcp-1.4.jar,
  lib/commons-imaging-1.0-alpha2.jar,
- lib/commons-io-2.4.jar,
- lib/commons-lang3-3.11.jar,
+ lib/commons-io-2.11.0.jar,
+ lib/commons-lang3-3.12.0.jar,
  lib/commons-lang-2.6.jar,
  lib/commons-logging-1.2.jar,
  lib/commons-pool-1.6.jar,
@@ -592,45 +590,44 @@ Bundle-ClassPath: .,
  lib/hibernate-search-engine-5.5.2.Final.jar,
  lib/hibernate-search-orm-5.5.2.Final.jar,
  lib/hibernate-validator-6.1.5.Final.jar,
- lib/identificationKeyAPI-1.0.jar,
- lib/itextpdf-5.5.8.jar,
- lib/jackson-annotations-2.11.2.jar,
- lib/jackson-core-2.11.2.jar,
- lib/jackson-databind-2.11.2.jar,
+ lib/itextpdf-5.5.13.2.jar,
+ lib/jackson-annotations-2.13.1.jar,
+ lib/jackson-core-2.13.1.jar,
+ lib/jackson-databind-2.13.1.jar,
  lib/jboss-logging-3.4.1.Final.jar,
  lib/jdom-1.1.3.jar,
  lib/jdom2-2.0.6.jar,
- lib/joda-time-2.10.6.jar,
+ lib/joda-time-2.10.13.jar,
  lib/log4j-1.2.17.jar,
  lib/lsid-client-1.1.2.jar,
- lib/spring-aop-4.3.28.RELEASE.jar,
- lib/spring-aspects-4.3.28.RELEASE.jar,
- lib/spring-beans-4.3.28.RELEASE.jar,
- lib/spring-context-4.3.28.RELEASE.jar,
- lib/spring-context-support-4.3.28.RELEASE.jar,
- lib/spring-core-4.3.28.RELEASE.jar,
- lib/spring-expression-4.3.28.RELEASE.jar,
- lib/spring-jdbc-4.3.28.RELEASE.jar,
- lib/spring-orm-4.3.28.RELEASE.jar,
- lib/spring-oxm-4.3.28.RELEASE.jar,
- lib/spring-security-config-4.2.18.RELEASE.jar,
- lib/spring-security-core-4.2.18.RELEASE.jar,
- lib/spring-test-4.3.28.RELEASE.jar,
- lib/spring-tx-4.3.28.RELEASE.jar,
- lib/spring-web-4.3.28.RELEASE.jar,
+ lib/spring-aop-4.3.30.RELEASE.jar,
+ lib/spring-aspects-4.3.30.RELEASE.jar,
+ lib/spring-beans-4.3.30.RELEASE.jar,
+ lib/spring-context-4.3.30.RELEASE.jar,
+ lib/spring-context-support-4.3.30.RELEASE.jar,
+ lib/spring-core-4.3.30.RELEASE.jar,
+ lib/spring-expression-4.3.30.RELEASE.jar,
+ lib/spring-jdbc-4.3.30.RELEASE.jar,
+ lib/spring-orm-4.3.30.RELEASE.jar,
+ lib/spring-oxm-4.3.30.RELEASE.jar,
+ lib/spring-security-config-4.2.20.RELEASE.jar,
+ lib/spring-security-core-4.2.20.RELEASE.jar,
+ lib/spring-test-4.3.30.RELEASE.jar,
+ lib/spring-tx-4.3.30.RELEASE.jar,
+ lib/spring-web-4.3.30.RELEASE.jar,
  lib/tools.jar,
  lib/usertype.jodatime-2.0.1.jar,
  lib/usertype.spi-2.0.1.jar,
  lib/validation-api-2.0.1.Final.jar,
- lib/xalan-2.7.0.jar,
- lib/xercesImpl-2.12.0.jar,
+ lib/xalan-2.7.2.jar,
+ lib/xercesImpl-2.12.1.jar,
  lib/xml-apis-1.4.01.jar,
  lib/xmlbeans-3.1.0.jar,
  lib/opencsv-2.3.jar,
- lib/junit-4.13.1.jar,
- lib/javassist-3.27.0-GA.jar,
+ lib/junit-4.13.2.jar,
+ lib/javassist-3.28.0-GA.jar,
  lib/javax.el-api-3.0.0.jar,
- lib/json-20090211.jar,
+ lib/json-20211205.jar,
  lib/json-lib-2.4-jdk15.jar,
  lib/slf4j-api-1.7.30.jar,
  lib/slf4j-log4j12-1.7.30.jar,
@@ -641,25 +638,24 @@ Bundle-ClassPath: .,
  lib/poi-4.1.2.jar,
  lib/poi-ooxml-4.1.2.jar,
  lib/poi-ooxml-schemas-4.1.2.jar,
- lib/postgresql-42.2.18.jar,
+ lib/postgresql-42.3.1.jar,
  lib/lucene-core-5.4.1.jar,
  lib/lucene-queryparser-5.4.1.jar,
- lib/lucene-analyzers-3.6.2.jar,
  lib/lucene-analyzers-common-5.4.1.jar,
  lib/lucene-sandbox-5.4.1.jar,
  lib/lucene-suggest-5.4.1.jar,
  lib/org.swtchart_0.10.0.v20160212.jar,
  lib/commons-collections4-4.4.jar,
  lib/commons-math3-3.6.1.jar,
- lib/httpclient-4.5.12.jar,
- lib/httpclient-cache-4.2.6.jar,
- lib/httpcore-4.4.13.jar,
+ lib/httpclient-4.5.13.jar,
+ lib/httpclient-cache-4.5.13.jar,
+ lib/httpcore-4.4.15.jar,
  lib/JavaAPIforKml-2.2.1.jar,
  lib/c3p0-0.9.5.2.jar,
  lib/mchange-commons-java-0.2.11.jar,
- lib/iiif-apis-0.3.7.jar,
+ lib/iiif-apis-0.3.9.jar,
  lib/jboss-transaction-api_1.2_spec-1.1.1.Final.jar,
- lib/mysql-connector-java-8.0.21.jar
+ lib/mysql-connector-java-8.0.27.jar
 Comment: currently excluded - 
  lib/activation-1.1.1.jar,
  lib/avro-1.6.3.jar,
index e33f73799eb754926e83f70192bd6dc9859e1908..31dccc9417e195cabaf081f04ecbb0bde2ae3c42 100644 (file)
@@ -1,22 +1,23 @@
 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.28.0.jar,\
-               lib/cdmlib-ext-5.28.0.jar,\
-               lib/cdmlib-io-5.28.0.jar,\
-               lib/cdmlib-model-5.28.0.jar,\
-               lib/cdmlib-persistence-5.28.0.jar,\
-               lib/cdmlib-services-5.28.0.jar,\
+               lib/aspectjrt-1.9.7.jar,\
+               lib/aspectjweaver-1.9.7.jar,\
+               lib/cdmlib-commons-5.29.0.jar,\
+               lib/cdmlib-ext-5.29.0.jar,\
+               lib/cdmlib-io-5.29.0.jar,\
+               lib/cdmlib-model-5.29.0.jar,\
+               lib/cdmlib-api-5.29.0.jar,\
+               lib/cdmlib-persistence-5.29.0.jar,\
+               lib/cdmlib-services-5.29.0.jar,\
                lib/commons-beanutils-1.9.4.jar,\
                lib/commons-codec-1.15.jar,\
                lib/commons-collections-3.2.2.jar,\
                lib/commons-dbcp-1.4.jar,\
                lib/commons-imaging-1.0-alpha2.jar,\
-               lib/commons-io-2.4.jar,\
+               lib/commons-io-2.11.0.jar,\
                lib/commons-lang-2.6.jar,\
-               lib/commons-lang3-3.11.jar,\
+               lib/commons-lang3-3.12.0.jar,\
                lib/commons-logging-1.2.jar,\
                lib/commons-pool-1.6.jar,\
                lib/ehcache-2.10.6.jar,\
@@ -30,48 +31,47 @@ bin.includes = META-INF/,\
                lib/hibernate-search-engine-5.5.2.Final.jar,\
                lib/hibernate-search-orm-5.5.2.Final.jar,\
                lib/hibernate-validator-6.1.5.Final.jar,\
-               lib/httpclient-4.5.12.jar,\
-               lib/httpclient-cache-4.2.6.jar,\
-               lib/httpcore-4.4.13.jar,\
-               lib/identificationKeyAPI-1.0.jar,\
-               lib/itextpdf-5.5.8.jar,\
-               lib/jackson-annotations-2.11.2.jar,\
-               lib/jackson-core-2.11.2.jar,\
-               lib/jackson-databind-2.11.2.jar,\
+               lib/httpclient-4.5.13.jar,\
+               lib/httpclient-cache-4.5.13.jar,\
+               lib/httpcore-4.4.15.jar,\
+               lib/itextpdf-5.5.13.2.jar,\
+               lib/jackson-annotations-2.13.1.jar,\
+               lib/jackson-core-2.13.1.jar,\
+               lib/jackson-databind-2.13.1.jar,\
                lib/jboss-logging-3.4.1.Final.jar,\
                lib/jdom-1.1.3.jar,\
                lib/jdom2-2.0.6.jar,\
-               lib/joda-time-2.10.6.jar,\
+               lib/joda-time-2.10.13.jar,\
                lib/log4j-1.2.17.jar,\
                lib/lsid-client-1.1.2.jar,\
-               lib/spring-aop-4.3.28.RELEASE.jar,\
-               lib/spring-aspects-4.3.28.RELEASE.jar,\
-               lib/spring-beans-4.3.28.RELEASE.jar,\
-               lib/spring-context-4.3.28.RELEASE.jar,\
-               lib/spring-context-support-4.3.28.RELEASE.jar,\
-               lib/spring-core-4.3.28.RELEASE.jar,\
-               lib/spring-expression-4.3.28.RELEASE.jar,\
-               lib/spring-jdbc-4.3.28.RELEASE.jar,\
-               lib/spring-orm-4.3.28.RELEASE.jar,\
-               lib/spring-oxm-4.3.28.RELEASE.jar,\
-               lib/spring-security-config-4.2.18.RELEASE.jar,\
-               lib/spring-security-core-4.2.18.RELEASE.jar,\
-               lib/spring-test-4.3.28.RELEASE.jar,\
-               lib/spring-tx-4.3.28.RELEASE.jar,\
-               lib/spring-web-4.3.28.RELEASE.jar,\
+               lib/spring-aop-4.3.30.RELEASE.jar,\
+               lib/spring-aspects-4.3.30.RELEASE.jar,\
+               lib/spring-beans-4.3.30.RELEASE.jar,\
+               lib/spring-context-4.3.30.RELEASE.jar,\
+               lib/spring-context-support-4.3.30.RELEASE.jar,\
+               lib/spring-core-4.3.30.RELEASE.jar,\
+               lib/spring-expression-4.3.30.RELEASE.jar,\
+               lib/spring-jdbc-4.3.30.RELEASE.jar,\
+               lib/spring-orm-4.3.30.RELEASE.jar,\
+               lib/spring-oxm-4.3.30.RELEASE.jar,\
+               lib/spring-security-config-4.2.20.RELEASE.jar,\
+               lib/spring-security-core-4.2.20.RELEASE.jar,\
+               lib/spring-test-4.3.30.RELEASE.jar,\
+               lib/spring-tx-4.3.30.RELEASE.jar,\
+               lib/spring-web-4.3.30.RELEASE.jar,\
                lib/tools.jar,\
                lib/usertype.jodatime-2.0.1.jar,\
                lib/usertype.spi-2.0.1.jar,\
                lib/validation-api-2.0.1.Final.jar,\
-               lib/xalan-2.7.0.jar,\
-               lib/xercesImpl-2.12.0.jar,\
+               lib/xalan-2.7.2.jar,\
+               lib/xercesImpl-2.12.1.jar,\
                lib/xml-apis-1.4.01.jar,\
                lib/xmlbeans-3.1.0.jar,\
                lib/opencsv-2.3.jar,\
-               lib/junit-4.13.1.jar,\
-               lib/javassist-3.27.0-GA.jar,\
+               lib/junit-4.13.2.jar,\
+               lib/javassist-3.28.0-GA.jar,\
                lib/javax.el-api-3.0.0.jar,\
-               lib/json-20090211.jar,\
+               lib/json-20211205.jar,\
                lib/json-lib-2.4-jdk15.jar,\
                lib/slf4j-api-1.7.30.jar,\
                lib/slf4j-log4j12-1.7.30.jar,\
@@ -82,20 +82,19 @@ bin.includes = META-INF/,\
                lib/poi-4.1.2.jar,\
                lib/poi-ooxml-4.1.2.jar,\
                lib/poi-ooxml-schemas-4.1.2.jar,\
-               lib/postgresql-42.2.18.jar,\
+               lib/postgresql-42.3.1.jar,\
                lib/lucene-core-5.4.1.jar,\
                lib/lucene-queryparser-5.4.1.jar,\
-               lib/lucene-analyzers-3.6.2.jar,\
                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.28.0.jar,\
+               lib/cdmlib-cache-5.29.0.jar,\
                lib/org.swtchart_0.10.0.v20160212.jar,\
                lib/commons-collections4-4.4.jar,\
                lib/commons-math3-3.6.1.jar,\
-               lib/mysql-connector-java-8.0.21.jar,\
+               lib/mysql-connector-java-8.0.27.jar,\
                lib/JavaAPIforKml-2.2.1.jar,\
-               lib/iiif-apis-0.3.7.jar,\
+               lib/iiif-apis-0.3.9.jar,\
                lib/c3p0-0.9.5.2.jar,\
                lib/mchange-commons-java-0.2.11.jar,\
                lib/jboss-transaction-api_1.2_spec-1.1.1.Final.jar
diff --git a/eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/README.md b/eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/README.md
new file mode 100644 (file)
index 0000000..26aa2a5
--- /dev/null
@@ -0,0 +1,4 @@
+This folder is needed for the `../../project-setup-wire-locally.sh` script which simplifies setting up
+a workspace, in which the `eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib-*.jar` dependencies are replaced 
+by the class folders of the corresponding cdmlib sub projects.
+  
diff --git a/eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/cdmlib-services-classes b/eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/cdmlib-services-classes
deleted file mode 120000 (symlink)
index e265357..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/home/andreas/workspaces/cdm/cdmlib/cdmlib-services/target/classes
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections-3.2.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections-3.2.2.jar
deleted file mode 100644 (file)
index fa5df82..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections-3.2.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.4.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.4.jar
deleted file mode 100644 (file)
index 90035a4..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.4.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.2.jar
deleted file mode 100644 (file)
index 93a3b9f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.0.6.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.0.6.jar
deleted file mode 100644 (file)
index 30fad12..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.0.6.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.5.2.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.5.2.Final.jar
deleted file mode 100644 (file)
index 13da63d..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.5.2.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.5.2.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.5.2.Final.jar
deleted file mode 100644 (file)
index 8ebf70b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.5.2.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0.jar
deleted file mode 100644 (file)
index ec25356..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.5.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.5.8.jar
deleted file mode 100644 (file)
index 3f6ea6c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.5.8.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/json-20090211.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/json-20090211.jar
deleted file mode 100644 (file)
index ef29094..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/json-20090211.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.4-jdk15.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.4-jdk15.jar
deleted file mode 100644 (file)
index 68d4f3b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.4-jdk15.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.2.17.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.2.17.jar
deleted file mode 100644 (file)
index 1d425cf..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.2.17.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-3.6.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-3.6.2.jar
deleted file mode 100644 (file)
index 752c714..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-3.6.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-common-5.4.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-common-5.4.1.jar
deleted file mode 100644 (file)
index bcbeedb..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-common-5.4.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-core-5.4.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-core-5.4.1.jar
deleted file mode 100644 (file)
index 769566b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-core-5.4.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-queryparser-5.4.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-queryparser-5.4.1.jar
deleted file mode 100644 (file)
index f7c2e47..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-queryparser-5.4.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-sandbox-5.4.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-sandbox-5.4.1.jar
deleted file mode 100644 (file)
index 530aa27..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-sandbox-5.4.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-suggest-5.4.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-suggest-5.4.1.jar
deleted file mode 100644 (file)
index 348a755..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/lucene-suggest-5.4.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xalan-2.7.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xalan-2.7.0.jar
deleted file mode 100644 (file)
index 007be39..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xalan-2.7.0.jar and /dev/null differ
index 9e35591847234dc86c6cd399d2f041934db1a318..a6c13f2fd9c91c9f96d1b4f32761ba4cb9ec101e 100644 (file)
@@ -4,15 +4,19 @@
   <parent>\r
     <groupId>eu.etaxonomy</groupId>\r
     <artifactId>taxeditor-parent</artifactId>\r
-    <version>5.28.1</version>\r
+    <version>5.29.0</version>\r
   </parent>\r
   <modelVersion>4.0.0</modelVersion>\r
   <artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
   <packaging>eclipse-plugin</packaging>\r
   <properties>\r
-      <jackson.version>2.11.2</jackson.version>\r
+      <jackson.version>2.13.1</jackson.version>\r
       <poi.version>4.1.2</poi.version>\r
       <hibernate.version>5.1.17.Final</hibernate.version>\r
+      <lucene.version>5.4.1</lucene.version>\r
+      <spring.version>4.3.30.RELEASE</spring.version>                                 <!-- checked 2021-12, further upgrade possible -->\r
+      <spring-security.version>4.2.20.RELEASE</spring-security.version>               <!-- checked 2021-12, further upgrade possible -->\r
+      <aspectj.version>1.9.7</aspectj.version>\r
   </properties>\r
   <name>CDM Library Dependencies Plugin</name>\r
   <description>CDM Library and dependencies as a plugin</description>\r
@@ -22,7 +26,7 @@
         <plugin>\r
           <groupId>org.apache.maven.plugins</groupId>\r
           <artifactId>maven-surefire-plugin</artifactId>\r
-          <version>2.22.2</version>\r
+          <version>3.0.0-M5</version>\r
         </plugin>\r
       </plugins>\r
     </pluginManagement>\r
@@ -30,7 +34,7 @@
       <plugin>\r
         <groupId>org.apache.maven.plugins</groupId>\r
         <artifactId>maven-dependency-plugin</artifactId>\r
-        <version>2.4</version>\r
+        <version>3.2.0</version>\r
         <executions>\r
           <execution>\r
             <id>copy-dependencies</id>\r
@@ -43,7 +47,7 @@
                 cdmlib-remote-webapp\r
               </excludeArtifactIds>\r
               <includeArtifactIds>\r
-                cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io\r
+                cdmlib-commons,cdmlib-model,cdmlib-api,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io\r
               </includeArtifactIds>\r
               <outputDirectory>${basedir}/lib</outputDirectory>\r
               <overWriteReleases>true</overWriteReleases>\r
             <configuration>\r
               <includeArtifactIds>\r
                 httpclient,JavaAPIforKml,iiif-apis,commons-beanutils,commons-lang3,commons-lang,commons-codec,\r
+                commons-collections,commons-io,commons-logging,ezmorph,\r
+                hibernate-search-engine,hibernate-search-orm,itextpdf,\r
+                json,json-lib,log4j,lucene-analyzers-common,lucene-core,lucene-queryparser,lucene-suggest,lucene-sandbox,\r
+                xalan,\r
                 commons-imaging,jackson-databind,jackson-annotations,jackson-core,jboss-logging,\r
                 validation-api,classmate,javax.el-api,slf4j-api,slf4j-log4j12,\r
                 ehcache,\r
           <plugin>\r
             <groupId>org.apache.maven.plugins</groupId>\r
             <artifactId>maven-dependency-plugin</artifactId>\r
-            <version>2.4</version>\r
+            <version>3.2.0</version>\r
             <executions>\r
               <execution>\r
                 <id>copy-all-dependencies</id>\r
       <artifactId>cdmlib-model</artifactId>\r
       <version>${cdmlib.version}</version>\r
     </dependency>\r
+    <dependency>\r
+      <groupId>eu.etaxonomy</groupId>\r
+      <artifactId>cdmlib-api</artifactId>\r
+      <version>${cdmlib.version}</version>\r
+    </dependency>\r
     <dependency>\r
       <groupId>eu.etaxonomy</groupId>\r
       <artifactId>cdmlib-persistence</artifactId>\r
     <dependency>\r
            <groupId>joda-time</groupId>\r
            <artifactId>joda-time</artifactId>\r
-           <version>2.10.6</version>\r
+           <version>2.10.13</version>\r
        </dependency>\r
        <dependency>\r
            <groupId>org.jadira.usertype</groupId>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-context</artifactId>\r
-      <version>4.3.28.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-context-support</artifactId>\r
-      <version>4.3.28.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-aspects</artifactId>\r
-      <version>4.3.28.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-test</artifactId>\r
-      <version>4.3.28.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-beans</artifactId>\r
-      <version>4.3.28.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-tx</artifactId>\r
-      <version>4.3.28.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
                <groupId>org.springframework</groupId>\r
                <artifactId>spring-web</artifactId>\r
-               <version>4.3.28.RELEASE</version>\r
+               <version>${spring.version}</version>\r
        </dependency>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-core</artifactId>\r
-      <version>4.3.28.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-aop</artifactId>\r
-      <version>4.3.28.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
                <groupId>org.springframework</groupId>\r
                <artifactId>spring-expression</artifactId>\r
-               <version>4.3.28.RELEASE</version>\r
+               <version>${spring.version}</version>\r
        </dependency>\r
     <dependency>\r
                <groupId>org.springframework</groupId>\r
                <artifactId>spring-orm</artifactId>\r
-               <version>4.3.28.RELEASE</version>\r
+               <version>${spring.version}</version>\r
        </dependency>\r
        <dependency>\r
                <groupId>org.springframework</groupId>\r
                <artifactId>spring-oxm</artifactId>\r
-               <version>4.3.28.RELEASE</version>\r
+               <version>${spring.version}</version>\r
        </dependency>\r
     <dependency>\r
                <groupId>org.springframework</groupId>\r
                <artifactId>spring-jdbc</artifactId>\r
-               <version>4.3.28.RELEASE</version>\r
+               <version>${spring.version}</version>\r
        </dependency>\r
     <dependency>\r
       <groupId>org.springframework.security</groupId>\r
       <artifactId>spring-security-core</artifactId>\r
-      <version>4.2.18.RELEASE</version>\r
+      <version>${spring-security.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework.security</groupId>\r
       <artifactId>spring-security-config</artifactId>\r
-      <version>4.2.18.RELEASE</version>\r
+      <version>${spring-security.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework.security</groupId>\r
       <artifactId>spring-security-remoting</artifactId>\r
-      <version>4.2.18.RELEASE</version>\r
+      <version>${spring-security.version}</version>\r
     </dependency>\r
     <dependency>\r
        <!-- dependency of spring security core, can be removed after\r
     <dependency>\r
       <groupId>org.apache.httpcomponents</groupId>\r
       <artifactId>httpclient</artifactId>\r
+      <!-- version defined in parent pom -->\r
+    </dependency>\r
+    <dependency>\r
+      <groupId>org.apache.httpcomponents</groupId>\r
+      <artifactId>httpclient-cache</artifactId>\r
+      <!-- version defined in parent pom -->\r
+    </dependency>\r
+    <dependency>\r
+      <groupId>org.apache.httpcomponents</groupId>\r
+      <artifactId>httpcore</artifactId>\r
+      <version>4.4.15</version>\r
     </dependency>\r
 \r
     <dependency>\r
         <groupId>org.apache.commons</groupId>\r
         <artifactId>commons-lang3</artifactId>\r
-        <version>3.11</version>\r
+        <version>3.12.0</version>\r
     </dependency>\r
     <dependency>\r
         <!-- needed at least in taxeditor.test by BundleLoader; try to move there but test carefully -->\r
         <!-- needed? -->\r
         <groupId>xerces</groupId>\r
         <artifactId>xercesImpl</artifactId>\r
-        <version>2.12.0</version>\r
+        <version>2.12.1</version>\r
     </dependency>\r
     \r
     <dependency>\r
        <groupId>org.aspectj</groupId>\r
        <artifactId>aspectjweaver</artifactId>\r
-       <version>1.9.6</version>\r
+       <version>${aspectj.version}</version>\r
     </dependency>\r
     <dependency>\r
        <groupId>org.aspectj</groupId>\r
        <artifactId>aspectjrt</artifactId>\r
-       <version>1.9.6</version>\r
+       <version>${aspectj.version}</version>\r
     </dependency>\r
     <dependency>\r
        <groupId>org.hibernate.javax.persistence</groupId>\r
     <dependency>\r
         <groupId>org.javassist</groupId>\r
         <artifactId>javassist</artifactId>\r
-        <version>3.27.0-GA</version>\r
+        <version>3.28.0-GA</version>\r
     </dependency>\r
     <dependency>\r
         <groupId>org.hibernate.common</groupId>\r
        poi:   com.zaxxer:SparseBitSet\r
        poi-ooxml   commons-compress,curvesapi\r
      -->\r
+     \r
+    <!-- the following were all taken without check if needed -->\r
+    <dependency>\r
+        <groupId>commons-collections</groupId>\r
+        <artifactId>commons-collections</artifactId>\r
+        <version>3.2.2</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>commons-io</groupId>\r
+        <artifactId>commons-io</artifactId>\r
+        <version>2.11.0</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>commons-logging</groupId>\r
+        <artifactId>commons-logging</artifactId>\r
+        <version>1.2</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>net.sf.ezmorph</groupId>\r
+        <artifactId>ezmorph</artifactId>\r
+        <version>1.0.6</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.hibernate</groupId>\r
+        <artifactId>hibernate-search-engine</artifactId>\r
+        <version>5.5.2.Final</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.hibernate</groupId>\r
+        <artifactId>hibernate-search-orm</artifactId>\r
+        <version>5.5.2.Final</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>com.itextpdf</groupId>\r
+        <artifactId>itextpdf</artifactId>  \r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.json</groupId>\r
+        <artifactId>json</artifactId>\r
+        <version>20211205</version>\r
+    </dependency>    \r
+    <dependency>\r
+        <groupId>net.sf.json-lib</groupId>\r
+        <artifactId>json-lib</artifactId>\r
+        <version>2.4</version>\r
+        <!-- classifier required as json-lib exists on maven central as json-lib-2.4-jdk15.jar and xxx-jdk13.jar, see #9887 -->\r
+        <classifier>jdk15</classifier>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.apache.lucene</groupId>\r
+        <artifactId>lucene-core</artifactId>\r
+        <version>${lucene.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.apache.lucene</groupId>\r
+        <artifactId>lucene-analyzers-common</artifactId>\r
+        <version>${lucene.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.apache.lucene</groupId>\r
+        <artifactId>lucene-queryparser</artifactId>\r
+        <version>${lucene.version}</version>\r
+    </dependency>    \r
+    <dependency>\r
+        <groupId>org.apache.lucene</groupId>\r
+        <artifactId>lucene-suggest</artifactId>\r
+        <version>${lucene.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.apache.lucene</groupId>\r
+        <artifactId>lucene-sandbox</artifactId>\r
+        <version>${lucene.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>xalan</groupId>\r
+        <artifactId>xalan</artifactId>\r
+        <version>2.7.2</version>\r
+    </dependency>\r
+    \r
+    <!-- end without check if needed --> \r
+     \r
+     \r
        <!-- logging -->\r
     <dependency>\r
         <!-- needed? -->\r
        <dependency>\r
         <groupId>junit</groupId>\r
         <artifactId>junit</artifactId>\r
-        <version>4.13.1</version>\r
+        <version>4.13.2</version>\r
         <scope>test</scope>\r
     </dependency>\r
     <dependency>\r
     <dependency>\r
         <groupId>de.digitalcollections.iiif</groupId>\r
         <artifactId>iiif-apis</artifactId>\r
-        <version>0.3.7</version>\r
+        <version>0.3.9</version>\r
     </dependency>\r
     \r
     <!-- database related, should be moved to local/test when possible -->\r
     <dependency>\r
       <groupId>mysql</groupId>\r
       <artifactId>mysql-connector-java</artifactId>\r
-      <version>8.0.21</version>\r
+      <version>8.0.27</version>\r
     </dependency>\r
        <dependency>\r
            <groupId>com.h2database</groupId>\r
     <dependency>\r
         <groupId>org.postgresql</groupId>\r
         <artifactId>postgresql</artifactId>\r
-        <version>42.2.18</version>\r
+        <version>42.3.1</version>\r
     </dependency>\r
     \r
     <!-- mchange dependencies, needed in datasource view dialog for finish button (ClassName is needed for datasource.xml -->\r
index f9023e327965cb1d039fa737782d9e2e3d27ff51..a441bf8022777a88271a9785a56c3dc15c95293e 100644 (file)
@@ -43,13 +43,12 @@ import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.ICollectionService;\r
 import eu.etaxonomy.cdm.api.service.ICommonService;\r
 import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;\r
 import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;\r
 import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;\r
 import eu.etaxonomy.cdm.api.service.IEntityValidationService;\r
 import eu.etaxonomy.cdm.api.service.IEventBaseService;\r
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;\r
-import eu.etaxonomy.cdm.api.service.IFeatureTreeService;\r
 import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;\r
 import eu.etaxonomy.cdm.api.service.IGroupService;\r
 import eu.etaxonomy.cdm.api.service.IIdentificationKeyService;\r
@@ -78,6 +77,8 @@ import eu.etaxonomy.cdm.api.service.media.MediaInfoFactory;
 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
+import eu.etaxonomy.cdm.api.service.security.IAccountRegistrationService;\r
+import eu.etaxonomy.cdm.api.service.security.IPasswordResetService;\r
 import eu.etaxonomy.cdm.ext.geo.IEditGeoService;\r
 import eu.etaxonomy.cdm.io.service.IIOService;\r
 import eu.etaxonomy.cdm.persistence.permission.CdmPermissionEvaluator;\r
@@ -239,6 +240,11 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         throw new UnsupportedOperationException("getBean is not implemented for CdmApplicationRemoteConfiguration");\r
     }\r
 \r
+    @Override\r
+    public IAccountRegistrationService getAccountRegistrationService() {\r
+        return (IAccountRegistrationService) getService(IAccountRegistrationService.class, "/remoting/accountregistrationservice.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+    }\r
+\r
     @Override\r
     public IAgentService getAgentService(){\r
         return (IAgentService) getService(IAgentService.class, "/remoting/agent.service", new AuthenticatingHttpInvokerRequestExecutor());\r
@@ -284,6 +290,11 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return (IDescriptionService) getService(IDescriptionService.class, "/remoting/description.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
+    @Override\r
+    public IDescriptionElementService getDescriptionElementService(){\r
+        return (IDescriptionElementService) getService(IDescriptionElementService.class, "/remoting/descriptionelement.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+    }\r
+\r
     @Override\r
     public IOccurrenceService getOccurrenceService(){\r
         return (IOccurrenceService) getService(IOccurrenceService.class, "/remoting/occurrence.service", new AuthenticatingHttpInvokerRequestExecutor());\r
@@ -389,20 +400,11 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return (ICollectionService) getService(ICollectionService.class, "/remoting/collection.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
-    @Override\r
-    public IFeatureTreeService getFeatureTreeService(){\r
-        return (IFeatureTreeService) getService(IFeatureTreeService.class, "/remoting/featuretree.service", new AuthenticatingHttpInvokerRequestExecutor());\r
-    }\r
     @Override\r
     public ITermTreeService getTermTreeService() {\r
        return (ITermTreeService) getService(ITermTreeService.class, "/remoting/termtree.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
-    @Override\r
-    public IFeatureNodeService getFeatureNodeService(){\r
-        return (IFeatureNodeService) getService(IFeatureNodeService.class, "/remoting/featurenode.service", new AuthenticatingHttpInvokerRequestExecutor());\r
-    }\r
-\r
        @Override\r
        public ITermNodeService getTermNodeService() {\r
         return (ITermNodeService) getService(ITermNodeService.class, "/remoting/termnode.service", new AuthenticatingHttpInvokerRequestExecutor());\r
@@ -453,6 +455,11 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return (IPreferenceService) getService(IPreferenceService.class, "/remoting/preference.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
+    @Override\r
+    public IPasswordResetService getPasswordResetService(){\r
+        return (IPasswordResetService) getService(IPasswordResetService.class, "/remoting/passwordreset.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+    }\r
+\r
     @Override\r
     public IEntityValidationService getEntityValidationService(){\r
         return (IEntityValidationService) getService(IEntityValidationService.class, "/remoting/entityvalidation.service", new AuthenticatingHttpInvokerRequestExecutor());\r
index cf492760b02bb33692de6251f88d15c12e55db92..8bd77a66c45c418c1438b9521a4d45fa17d8da76 100755 (executable)
@@ -56,7 +56,7 @@ public class ConversationalTransientEntityCacher extends CdmTransientEntityCache
         for(CdmBase updatedObject : updatedObjects) {
             if(updatedObject != null) {
                 if (exists(new CdmEntityCacheKey<>(updatedObject))){
-                    CdmEntityIdentifier cdmEntityIdentifier = new CdmEntityIdentifier(updatedObject.getId(), updatedObject.getClass());
+                    CdmEntityIdentifier cdmEntityIdentifier = CdmEntityIdentifier.NewInstance(updatedObject);
                     if(!updatedCdmIdsIsEmpty && updatedCdmIds.contains(cdmEntityIdentifier)) {
                         updatedCdmIds.remove(cdmEntityIdentifier);
                     }
index 14b670b470338cb0cd25f31dfeb55ce1bfbf4d0a..f1c55a3cef4a115875462ca8256b09cae87dc1fc 100644 (file)
       <param name="acceptOnMatch" value="false" />
     </filter>
   </appender>
+  <appender name="A1" class="org.apache.log4j.FileAppender">
+    <param name="File"   value="A1.log" />
+    <param name="Append" value="true" />
+    <layout class="org.apache.log4j.xml.XMLLayout" />
+  </appender>
   <root>
     <priority value="WARN" />
-    <appender-ref ref="CONSOLE" />
+    <appender-ref ref="A1" />
   </root>
-<!--   <logger name="org.hibernate.proxy.AbstractLazyInitializer"> -->
-<!--     <level value="info" /> -->
-<!--   </logger> -->
-<!--   <logger -->
+<!--  <logger name="org.hibernate.proxy.AbstractLazyInitializer"> -->
+<!--    <level value="info" /> -->
+<!--  </logger> -->
+<!--  <logger -->
 <!--     name="org.hibernate.collection.internal.AbstractPersistentCollection"> -->
 <!--     <level value="info" /> -->
 <!--   </logger> -->
 <!--     name="eu.etaxonomy.taxeditor.session.DefaultNewEntityListener"> -->
 <!--     <level value="info" /> -->
 <!--   </logger> -->
-<!--     <logger -->
-<!--     name="eu.etaxonomy.taxeditor.util.ProgressMonitorClientManager"> -->
-<!--     <level value="info" /> -->
-<!--   </logger> -->
+   <logger name="eu.etaxonomy.taxeditor.handler.update.UpdateHandler"> 
+     <level value="info" />  
+   </logger>  
+   <logger name="org.eclipse.equinox.p2.operations.ProvisioningSession"> 
+     <level value="info" />  
+   </logger>
+   <logger name="org.eclipse.equinox.internal.p2.engine.ProvisioningPlan">
+       <level value="info" />  
+   </logger>
 </log4j:configuration>
\ No newline at end of file
index 580d535b24ebb7e813f40d2afa265b6f634cde01..a4cdff88ea222a3461c9256f5489f663383dfade 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.28.1
+Bundle-Version: 5.29.0
 Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: OSGI-INF/l10n/plugin
index cb4198ff82fa262321dd8d69b07311e2b5fee915..8b2fae3f8b764cb8b115fcd75a94e1057321276d 100644 (file)
       </menus>
       <menus xsi:type="menu:PopupMenu" xmi:id="__10yYLKREeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.charactermatrix">
         <children xsi:type="menu:HandledMenuItem" xmi:id="_AyHbgLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createdefaultdescription" label="%handledmenuitem.label.19" command="_ZHC3oLKVEeikjKoOnLFm2w"/>
+        <children xsi:type="menu:DynamicMenuContribution" xmi:id="_zHbhUEB_EeySSdtyqU8-Hw" elementId="eu.etaxonomy.taxeditor.editor.dynamicmenucontribution.openInCdmViewer" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_MhHQYLIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.29"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_DYlHcLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createliteraturedescription" label="%handledmenuitem.label.20" command="_fkPkkLKVEeikjKoOnLFm2w"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_ARo78KSvEeq8Gc-K2nsNRg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.adddescription" label="%command.commandname.25" command="_zCGQ8JN1EeqyUKRuXQ8miw"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_MhHQYLIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.29"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_Pu6CELIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.30"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_vBrWQKY-Eeq8Gc-K2nsNRg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.aggregate" label="%command.commandname.26" command="_K2C_oKZAEeq8Gc-K2nsNRg"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_wkVAMKotEeqBXdGXVmg_xA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.create_key" label="%command.commandname.27" command="_vWxB4KoiEeqBXdGXVmg_xA"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_Pu6CELIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.30"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="__Ff10EB_EeySSdtyqU8-Hw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.2"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="__SlnwI97EeqyUKRuXQ8miw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.deletedescription" label="%handledmenuitem.label.27" command="_MYd44I98EeqyUKRuXQ8miw"/>
       </menus>
     </elements>
index 2667f49c810e2ddc678b579dcb6613c291631c90..793dc381673745ccc4759af872aa03ff5874c0f9 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
   
   <modelVersion>4.0.0</modelVersion>
index 73fd81152fa9f9c1a6bb1bf7547d0775b00f6ede..95dced8e0daed6e0e23a269848d20ae8bc372145 100644 (file)
@@ -238,6 +238,7 @@ public class EditorUtil extends AbstractUtility {
                    if (!inputNode.equals(editorNode)){
                        alreadyOpenInOtherClassification = part;
                    }else{
+                       ((TaxonNameEditorE4) part.getObject()).init(input);
                        partService.activate(part, true);
                        return;
                    }
index 8447bfa3430cfaef0df854bd8897c2e82d34213b..1502580c1e79b853d6560fa8af2fba874bef09fc 100644 (file)
@@ -273,7 +273,7 @@ public class CharacterEditor implements ICharacterEditor, IConversationEnabled,
                     CharacterNodeDto nodeDto = new CharacterNodeDto(CharacterDto.fromCharacter(character), parentNode, 0, parent.getTree(), null, null, null);
                     nodesToSave.put(character, nodeDto);
                     setDirty();
-                    //                    result = CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid());
+                    //   result = CdmStore.getService(ITermNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid());
 
                 }
 
index cb07457d846ebf2b1824d4e63df59e38bac34ec8..6ff11c02e5c80c30069fc9fbd55940044711add2 100644 (file)
@@ -173,6 +173,7 @@ public class CharacterMatrix extends Composite {
     private HashMap<UUID, RowWrapperDTO<?>> rowsToMerge = new HashMap<>();
 
     private Map<Integer, FeatureDto> indexToFeatureMap = new HashMap<>();
+    private Map<UUID, Integer> featureToIndexMap = new HashMap<>();
 
     private Map<UUID, List<TermDto>> categoricalFeatureToStateMap = new HashMap<>();
 
@@ -310,6 +311,9 @@ public class CharacterMatrix extends Composite {
                        }
                                
                        return "Multiple data exist. Editing only possible in factual data view of " + object;
+               }
+               if (cell.getConfigLabels().getLabels().contains(CharacterMatrixConfigLabelAccumulator.NOT_APPLICABLE)){
+                       return "This character is not applicable because of the state of a parent feature." ;
                }
                        return null;
                }
@@ -680,7 +684,7 @@ public class CharacterMatrix extends Composite {
 
     private void initLabels(int index, FeatureDto feature) {
         indexToFeatureMap.put(index+LEADING_COLUMN_COUNT, feature);
-
+        featureToIndexMap.put(feature.getUuid(), index+LEADING_COLUMN_COUNT);
         String label = feature.getTitleCache();
         String property = feature.getUuid().toString();
         //show unit for quantitative data
@@ -794,7 +798,15 @@ public class CharacterMatrix extends Composite {
         return indexToFeatureMap;
     }
 
-    public LinkedMap<String, String> getPropertyToLabelMap() {
+    public Map<UUID, Integer> getFeatureToIndexMap() {
+               return featureToIndexMap;
+       }
+
+       public void setFeatureToIndexMap(Map<UUID, Integer> featureToIndexMap) {
+               this.featureToIndexMap = featureToIndexMap;
+       }
+
+       public LinkedMap<String, String> getPropertyToLabelMap() {
         return propertyToLabelMap;
     }
 
@@ -937,6 +949,15 @@ public class CharacterMatrix extends Composite {
 
         }
     }
+    
+    @Inject
+    @Optional
+    private void updateMatrix(@UIEventTopic(WorkbenchEventConstants.REFRESH_MATRIX)UUID uuid){
+        if(uuid!= null && uuid.equals(part.getDescriptiveDataSet().getUuid())){
+           this.specimenCache = null;
+
+        }
+    }
 
     public void addRowsToMatrix(Collection<SpecimenNodeWrapper> wrappers){
 
@@ -972,7 +993,7 @@ public class CharacterMatrix extends Composite {
         if (specimenToAdd == null || specimenToAdd.isEmpty()){
             return new HashMap<>();
         }
-        UpdateResult result = CdmStore.getService(IDescriptiveDataSetService.class).addRowWrapperToDataset(specimenToAdd, getDescriptiveDataSet().getUuid());
+        UpdateResult result = CdmStore.getService(IDescriptiveDataSetService.class).addRowWrapperToDataset(specimenToAdd, getDescriptiveDataSet().getUuid(), true);
         if(!result.getExceptions().isEmpty()){
             MessagingUtils.warningDialog(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE, this,
                     String.format(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE, result.getExceptions()
@@ -1025,13 +1046,6 @@ public class CharacterMatrix extends Composite {
 
     }
 
-
-    @Inject
-    @Optional
-    private void updateView(@UIEventTopic(WorkbenchEventConstants.ADD_TO_MERGE_ROWS) UUID uuid) {
-
-    }
-
     @Override
     public void dispose () {
         super.dispose();
index 557ff5db811ff36e514f9c69b8177efb15eb09a9..5c12399e57fecac772dae073b29d695844b603dc 100644 (file)
@@ -8,6 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
 
+import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.Set;
 
@@ -20,9 +21,13 @@ import eu.etaxonomy.cdm.api.service.dto.DescriptionElementDto;
 import eu.etaxonomy.cdm.api.service.dto.QuantitativeDataDto;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
+import eu.etaxonomy.cdm.api.service.dto.StateDataDto;
 import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
 import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 
 /**
  * @author pplitzner
@@ -38,6 +43,7 @@ public class CharacterMatrixConfigLabelAccumulator implements IConfigLabelAccumu
     public static final String CATEGORICAL_EDITABLE = CATEGORICAL+"_EDITABLE";
     public static final String QUANTITATIVE_EDITABLE = QUANTITATIVE+"_EDITABLE";
     public static final String NOT_EDITABLE = "NOT_EDITABLE";
+    public static final String NOT_APPLICABLE = "NOT APPLICABLE";
 
     private CharacterMatrix matrix;
 
@@ -49,6 +55,7 @@ public class CharacterMatrixConfigLabelAccumulator implements IConfigLabelAccumu
     @Override
     public void accumulateConfigLabels(LabelStack configLabels, int columnPosition, int rowPosition) {
         boolean isEditable = true;
+        boolean isApplicable = true;
 
         Object rowObject = matrix.getBodyDataProvider().getRowObject(rowPosition);
         if(rowObject instanceof TaxonNodeDto){
@@ -124,24 +131,33 @@ public class CharacterMatrixConfigLabelAccumulator implements IConfigLabelAccumu
                    if (hasMoreThanOneValue(feature, (RowWrapperDTO)rowObject)){
                        isEditable = false;
                    }
+                   if (!isApplicableCheck(feature, (RowWrapperDTO)rowObject)){
+                       isApplicable = false;
+                   }
             }
 
             if(feature.isSupportsCategoricalData()){
+               
                 configLabels.addLabel(CATEGORICAL);
-                if(isEditable){
+                if(isEditable && isApplicable){
                     configLabels.addLabel(CATEGORICAL_EDITABLE);
-                }else{
+                }else if (!isEditable && isApplicable){
                        configLabels.addLabel(NOT_EDITABLE);
                 }
+                
             }
             else if(feature.isSupportsQuantitativeData()){
                 configLabels.addLabel(QUANTITATIVE);
-                if(isEditable){
+                if(isEditable && isApplicable){
                     configLabels.addLabel(QUANTITATIVE_EDITABLE);
-                }else{
+                }else if (!isEditable && isApplicable){
                        configLabels.addLabel(NOT_EDITABLE);
                 }
             }
+            if (!isApplicable){
+               configLabels.addLabel(NOT_APPLICABLE);
+               
+            }
         }
     }
 
@@ -187,6 +203,49 @@ public class CharacterMatrixConfigLabelAccumulator implements IConfigLabelAccumu
         
        
     }
+    
+    private boolean isApplicableCheck(FeatureDto feature, RowWrapperDTO<?> rowWrapperDTO) {
+        TermTreeDto tree = matrix.getDescriptiveDataSet().getDescriptiveSystem();
+        boolean isApplicableCheck = true;
+        if (tree.getOnlyApplicable().containsKey(feature.getUuid())){
+               
+               for (FeatureStateDto featureStateDto:tree.getOnlyApplicable().get(feature.getUuid())){
+                       isApplicableCheck = false;
+                       FeatureDto dto = featureStateDto.getFeature();
+                       TermDto stateDto = featureStateDto.getState();
+                       Set<DescriptionElementDto> descEls = rowWrapperDTO.getDataValueForFeature(dto.getUuid());
+                       if (descEls != null){
+                               for (DescriptionElementDto el:descEls){
+                                       if (el instanceof CategoricalDataDto){
+                                               for (StateDataDto stateData:((CategoricalDataDto) el).getStates()){
+                                                       isApplicableCheck |= stateData.getState().getUuid().equals(stateDto.getUuid());
+                                               }
+                                       }
+                               }
+                       }
+               }               
+        }
+        if (tree.getInapplicableMap().containsKey(feature.getUuid())){
+               for (FeatureStateDto featureStateDto:tree.getInapplicableMap().get(feature.getUuid())){
+                       FeatureDto dto = featureStateDto.getFeature();
+                       TermDto stateDto = featureStateDto.getState();
+                       Set<DescriptionElementDto> descEls = rowWrapperDTO.getDataValueForFeature(dto.getUuid());
+                       if (descEls != null){
+                               for (DescriptionElementDto el:descEls){
+                                       if (el instanceof CategoricalDataDto){
+                                               for (StateDataDto stateData:((CategoricalDataDto) el).getStates()){
+                                                       isApplicableCheck &= !stateData.getState().getUuid().equals(stateDto.getUuid());
+                                               }
+                                       }
+                               }
+                       }
+               }               
+        }
+        if (!isApplicableCheck){
+               
+        }
+        return isApplicableCheck;   
+    }
 
 
     private boolean hasDefaultValue(FeatureDto feature, DescriptionBaseDto defaultDescription) {
index eaf4f6d6733023fe9924dd07f75051f0b95b626f..36425100620bd24de09412f4e41c26e06ab06f65 100644 (file)
@@ -18,6 +18,7 @@ import org.eclipse.nebula.widgets.nattable.style.CellStyleAttributes;
 import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
 import org.eclipse.nebula.widgets.nattable.style.HorizontalAlignmentEnum;
 import org.eclipse.nebula.widgets.nattable.style.Style;
+import org.eclipse.nebula.widgets.nattable.style.TextDecorationEnum;
 import org.eclipse.nebula.widgets.nattable.ui.util.CellEdgeEnum;
 import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
 
@@ -79,6 +80,22 @@ public final class CharacterMatrixLabelStyleConfiguration extends AbstractRegist
                 notEditableValueStyle,
                 DisplayMode.NORMAL,
                 CharacterMatrixConfigLabelAccumulator.NOT_EDITABLE);
+        
+        Style notApplicableValueStyle = new Style();
+        notApplicableValueStyle.setAttributeValue(
+                CellStyleAttributes.BACKGROUND_COLOR,
+                GUIHelper.COLOR_GRAY);
+        notApplicableValueStyle.setAttributeValue(
+                CellStyleAttributes.FOREGROUND_COLOR,
+                GUIHelper.COLOR_GRAY);
+        notApplicableValueStyle.setAttributeValue(
+                CellStyleAttributes.TEXT_DECORATION,
+                TextDecorationEnum.STRIKETHROUGH);
+        configRegistry.registerConfigAttribute(
+                CellConfigAttributes.CELL_STYLE,
+                notApplicableValueStyle,
+                DisplayMode.NORMAL,
+                CharacterMatrixConfigLabelAccumulator.NOT_APPLICABLE);
 
         Style defaultOverriddenStyle = new Style();
         defaultOverriddenStyle.setAttributeValue(
index 44f33003d2a5b75447da57227558c5499994653d..a1b9e8d7d275df39e55103cd24cf51725a50bb23 100644 (file)
@@ -12,6 +12,10 @@ import java.util.Set;
 
 import org.eclipse.swt.graphics.Image;
 
+import eu.etaxonomy.cdm.api.service.dto.CategoricalDataDto;
+import eu.etaxonomy.cdm.api.service.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
+import eu.etaxonomy.cdm.api.service.dto.StateDataDto;
 import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
@@ -19,6 +23,9 @@ import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 
 /**
@@ -86,6 +93,49 @@ public class MatrixUtility {
     public static Image getDefaultDescriptionIcon() {
         return ImageResources.getImage(ImageResources.VALIDATE_ICON);
     }
+    
+    private static boolean isApplicableCheck(FeatureDto feature, RowWrapperDTO<?> rowWrapperDTO, TermTreeDto tree) {
+//        TermTreeDto tree = matrix.getDescriptiveDataSet().getDescriptiveSystem();
+        boolean isApplicableCheck = true;
+        if (tree.getOnlyApplicable().containsKey(feature.getUuid())){
+               
+               for (FeatureStateDto featureStateDto:tree.getOnlyApplicable().get(feature.getUuid())){
+                       isApplicableCheck = false;
+                       FeatureDto dto = featureStateDto.getFeature();
+                       TermDto stateDto = featureStateDto.getState();
+                       Set<DescriptionElementDto> descEls = rowWrapperDTO.getDataValueForFeature(dto.getUuid());
+                       if (descEls != null){
+                               for (DescriptionElementDto el:descEls){
+                                       if (el instanceof CategoricalDataDto){
+                                               for (StateDataDto stateData:((CategoricalDataDto) el).getStates()){
+                                                       isApplicableCheck |= stateData.getState().getUuid().equals(stateDto.getUuid());
+                                               }
+                                       }
+                               }
+                       }
+               }               
+        }
+        if (tree.getInapplicableMap().containsKey(feature.getUuid())){
+               for (FeatureStateDto featureStateDto:tree.getInapplicableMap().get(feature.getUuid())){
+                       FeatureDto dto = featureStateDto.getFeature();
+                       TermDto stateDto = featureStateDto.getState();
+                       Set<DescriptionElementDto> descEls = rowWrapperDTO.getDataValueForFeature(dto.getUuid());
+                       if (descEls != null){
+                               for (DescriptionElementDto el:descEls){
+                                       if (el instanceof CategoricalDataDto){
+                                               for (StateDataDto stateData:((CategoricalDataDto) el).getStates()){
+                                                       isApplicableCheck &= !stateData.getState().getUuid().equals(stateDto.getUuid());
+                                               }
+                                       }
+                               }
+                       }
+               }               
+        }
+        if (!isApplicableCheck){
+               
+        }
+        return isApplicableCheck;   
+    }
 
 //    private static boolean hasType(TaxonRowWrapperDTO taxonRowWrapperDTO, DescriptionType descriptionType){
 //        return taxonRowWrapperDTO.getDescription().getTypes().stream()
index 4347fd04ef25a79c6350d50b87e5fafb93f64e7a..9a422356e4a780ba426dc4ef0be157a0e6d9dd2c 100644 (file)
@@ -25,6 +25,8 @@ import eu.etaxonomy.cdm.api.service.dto.DescriptionElementDto;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 
 /**
  * Cell editor for CategoricalData
@@ -46,15 +48,6 @@ public class CategoricalDataCellEditor extends ComboBoxCellEditor{
 
     @Override
     public void setCanonicalValue(Object canonicalValue) {
-        if(canonicalValue==null){
-            Object rowWrapper = matrix.getBodyDataProvider().getRowObject(this.getRowIndex());
-            if(rowWrapper instanceof RowWrapperDTO){
-                FeatureDto feature = matrix.getIndexToFeatureMap().get(getColumnIndex());
-                // FIXME avoid creating empty CategoricalData
-//                ((RowWrapperDTO) rowWrapper).addCategoricalData(feature);
-            }
-            
-        }
         List canonicalValueList = new ArrayList<>();
         
         if (canonicalValue instanceof String[]){
@@ -74,6 +67,7 @@ public class CategoricalDataCellEditor extends ComboBoxCellEditor{
 
     @Override
     protected Control activateCell(Composite parent, Object originalCanonicalValue) {
+       
         if(matrix.getBodyDataProvider().getRowObject(this.getRowIndex()) instanceof RowWrapperDTO){
             NatCombo natCombo = (NatCombo) super.activateCell(parent, originalCanonicalValue);
             natCombo.addSelectionListener(new SelectionListener() {
index 74c1d052dd654b3f511e9ec1a0116e3650037612..34f5487211e55c0c1188882063d8b17c0050d1b3 100644 (file)
@@ -9,6 +9,7 @@
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical;
 
 import java.util.Collection;
+import java.util.Iterator;
 
 import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
 
@@ -36,6 +37,7 @@ public class CategoricalDataDisplayConverter extends DisplayConverter {
             // the values in the Collection
             // So by removing the leading and ending
             // character, we remove the brackets
+               
             String result = canonicalValue.toString();
             result = result.substring(1, result.length() - 1);
             return result;
index 6e19ccaa7ebe49fd8328555fc5379b519fdddc58..3a1713e8620ec9b9d68800cee0143a13cbd3f54e 100755 (executable)
@@ -8,7 +8,9 @@
 */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler;
 
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
@@ -27,22 +29,30 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.nebula.widgets.nattable.data.IRowDataProvider;
+import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.description.AggregationMode;
 import eu.etaxonomy.cdm.api.service.description.StructuredDescriptionAggregationConfiguration;
+import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
 import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
@@ -55,6 +65,7 @@ import eu.etaxonomy.taxeditor.ui.dialog.configurator.StructuredAggregationConfig
  * @since Jun 4, 2020
  */
 public class AggregationHandler {
+       UpdateResult result = null;
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart, UISynchronize sync) {
 
@@ -115,7 +126,7 @@ public class AggregationHandler {
         if (open != Window.OK){
             return;
         }
-
+        
         //job
         String jobLabel = "Aggregate Descriptive Dataset";
         UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().invoke(config);
@@ -136,27 +147,32 @@ public class AggregationHandler {
                     MessagingUtils.errorDialog("Aggregation failed", this, "Aggregation was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, (Exception)resultObject, true, true);
                 }
                 else if(resultObject instanceof UpdateResult){
-                    UpdateResult result = ((UpdateResult) resultObject);
+                    result = ((UpdateResult) resultObject);
                     if (result.isError()){
                         Exception e = result.getExceptions().isEmpty()? null : result.getExceptions().iterator().next();
                         MessagingUtils.errorDialog("Aggregation failed", this, "Aggregation was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, e, true, true);
                     }
-
-                    DescriptiveDataSet dataSet = (DescriptiveDataSet) result.getCdmEntity();
+                    Set<UUID> updatedObjects = result.getInsertedOrUpdatedUuids(TaxonDescription.class);
+                       Set<TaxonRowWrapperDTO> dtos = new HashSet<>();
+                       DescriptiveDataSet dataSet = (DescriptiveDataSet) result.getCdmEntity();
+                       for (UUID updatedObj: updatedObjects){
+                                       TaxonRowWrapperDTO rowWrapper = CdmStore.getService(IDescriptiveDataSetService.class).createTaxonRowWrapper(updatedObj, matrix.getDescriptiveDataSet().getUuid());
+                                       boolean isRemoved = matrixPart.getMatrix().getDescriptions().remove(rowWrapper);
+                                       matrixPart.getMatrix().getDescriptions().add(rowWrapper);
+
+                       }
+                      
                     
-                    // update local dataset
-                    
-                    matrix.loadDescriptions(true, true);
-                   
-//                    matrix.setSelectedObject(sel);
                 }
             } catch (InterruptedException e) {
                 return;
             }
+            
             monitor.done();
         });
 
         job.schedule();
+        
     }
 
     @CanExecute
index 1fa8a3b68abab116bc98a072b6c8d0e58ada25e2..12891d7d86eaf53baced3db0a0ad8893f2b46754 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
+import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
@@ -45,8 +46,8 @@ public class CreateDefaultTaxonDescriptionHandler extends CreateTaxonDescription
             IStructuredSelection selection = ((CharacterMatrixPart)activePart.getObject()).getSelection();
             TaxonNodeDto taxonNodeDto = (TaxonNodeDto) selection.getFirstElement();
 
-            TaxonDescription defaultTaxonDescription = CdmStore.getService(IDescriptiveDataSetService.class)
-                    .findTaxonDescriptionByDescriptionType(descriptiveDataSet.getUuid(), taxonNodeDto.getUuid(), getDescriptionType());
+            DescriptionBaseDto defaultTaxonDescription = CdmStore.getService(IDescriptiveDataSetService.class)
+                    .getTaxonDescriptionForDescriptiveDataSetAndType(descriptiveDataSet, taxonNodeDto.getUuid(), getDescriptionType());
             canExecute = defaultTaxonDescription==null;
             menuItem.setVisible(canExecute);
         }
index 9df73b44a55970864bdd49c03f13a906242e25d5..d7d2b95ed7c5d139c07e2d82225142871855078a 100644 (file)
@@ -44,7 +44,7 @@ public abstract class CreateTaxonDescriptionHandler {
         TaxonNodeDto node = (TaxonNodeDto) matrixPart.getSelection().getFirstElement();
         TaxonRowWrapperDTO taxonRowWrapperDTO = CdmStore.getService(IDescriptiveDataSetService.class)
                 .createTaxonDescription(descriptiveDataSet.getUuid(), node.getUuid(), getDescriptionType());
-        matrixPart.getMatrix().getCdmEntitySession().load(taxonRowWrapperDTO.getDescription(), true);
+//        matrixPart.getMatrix().getCdmEntitySession().load(taxonRowWrapperDTO.getDescription(), true);
         matrixPart.getMatrix().getDescriptions().add(taxonRowWrapperDTO);
         matrixPart.getMatrix().layout();
     }
index cf244fcf9b05d284a00513e303f287cc93e2b1ab..de325d868d36c652ac6616fb61c18da7144e7065 100755 (executable)
@@ -16,6 +16,7 @@ import javax.inject.Named;
 
 import org.eclipse.core.runtime.ICoreRunnable;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.core.di.annotations.CanExecute;
@@ -54,13 +55,20 @@ public class GeneratePolytomousKeyHandler {
             return;
         }
         Set<TaxonNodeDto> nodeDtos = matrix.getDescriptiveDataSet().getSubTreeFilter();
+        
         TaxonNodeDto parentDto = CdmStore.getService(ITaxonNodeService.class).findCommonParentDto(nodeDtos);
         UUID taxonUuid = parentDto.getTaxonUuid();
-        int response = MessagingUtils.confirmDialog(
+        int response = 0;
+        String titleCache = parentDto.getTaxonTitleCache();
+        if (parentDto.getTaxonTitleCache() == null){
+               titleCache = parentDto.getTitleCache();
+        }
+        response = MessagingUtils.confirmDialog(
                 "Choose taxonomic scope",
                 String.format("The common parent taxon of this dataset is :\n%s\n\n"
                         + "Do you want to use this as the taxonomic scope for the polytomous key?"
-                        , parentDto.getTaxonTitleCache()), "Yes", "Choose different taxon", "Cancel");
+                        , titleCache), "Yes", "Choose different taxon", "Cancel");
+        
         if(response==2){
             return;
         }
@@ -92,6 +100,8 @@ public class GeneratePolytomousKeyHandler {
                 Object resultObject = remotingMonitor.getResult();
                 if(resultObject instanceof Exception){
                     MessagingUtils.errorDialog("Key generation failed", this, "Generating the polytomous key was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, (Exception)resultObject, true, true);
+                }else{
+                       MessagingUtils.informationDialog("Key generation successfull", "Generating the polytomous key was successfull");
                 }
             } catch (InterruptedException e) {
                 return;
index a4fc126c13e5b5082b5c8faa8247c7adde2e50d7..c7a4e98f116342828226fbc22cedceea74fd73b4 100644 (file)
@@ -11,6 +11,8 @@ package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.quantitative;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -30,6 +32,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.service.dto.QuantitativeDataDto;
+import eu.etaxonomy.cdm.api.service.dto.StatisticalMeasurementValueDto;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
@@ -139,23 +142,65 @@ public class QuantitativeDataDialogComposite extends Composite {
         .filter(measure->measure.getType().getUuid().equals(StatisticalMeasure.EXACT_VALUE().getUuid()))
         .forEach(exact->addText(valuesComposite, exact.getType(), exact.getValue().toString()));
 
+//        
 
 
         //add aggregation values
-        editorValue.getFeatureDto().getRecommendedStatisticalMeasures()
-        .stream()
-        .filter(sm->!sm.equals(exactValueDto))
-        .forEach(measure->{
-            BigDecimal specificStatisticalValue = editorValue.getSpecificStatisticalValue(measure.getUuid());
-            addText(valuesComposite, measure, specificStatisticalValue!=null?specificStatisticalValue.toString():null);
-        });
+        if (editorValue.getFeatureDto().getRecommendedStatisticalMeasures() != null){
+               List<TermDto> orderedStatisticalMeasures = new ArrayList<>();
+               orderedStatisticalMeasures.addAll(editorValue.getFeatureDto().getRecommendedStatisticalMeasures());
+               Collections.sort(orderedStatisticalMeasures, new Comparator<TermDto>() {     
+                   @Override
+                   public int compare(TermDto o1, TermDto o2) {
+                       if (o1.getUuid().equals(o2.getUuid())){
+                           return 0;
+                       }
+                       if (o1.getUuid().equals(StatisticalMeasure.MIN().getUuid())){
+                           return -1;
+                       }
+                       if (o2.getUuid().equals(StatisticalMeasure.MIN().getUuid())){
+                           return 1;
+                       }
+                       if (o1.getUuid().equals(StatisticalMeasure.MAX().getUuid())){
+                           return 1;
+                       }
+                       if (o2.getUuid().equals(StatisticalMeasure.MAX().getUuid())){
+                           return -1;
+                       }
+                       if (o1.getUuid().equals(StatisticalMeasure.TYPICAL_LOWER_BOUNDARY().getUuid()) && o2.getUuid().equals(StatisticalMeasure.TYPICAL_UPPER_BOUNDARY().getUuid())){
+                           return -1;
+                       }
+                       if (o2.getUuid().equals(StatisticalMeasure.TYPICAL_LOWER_BOUNDARY().getUuid()) && o1.getUuid().equals(StatisticalMeasure.TYPICAL_UPPER_BOUNDARY().getUuid())){
+                           return -1;
+                       }
+                       return o1.compareTo(o2);
+                   }
+               });
+               
+               orderedStatisticalMeasures
+               .stream()
+               .filter(sm->!sm.equals(exactValueDto))
+               .forEach(measure->{
+                   BigDecimal specificStatisticalValue = editorValue.getSpecificStatisticalValue(measure.getUuid());
+                   addText(valuesComposite, measure, specificStatisticalValue!=null?specificStatisticalValue.toString():null);
+               });
+        }
 
         scrolledComposite_1.setContent(valuesComposite);
         scrolledComposite_1.setMinSize(valuesComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 
-        if(initialInput!=null){
-            enableAggregationFields(false);
-        }
+//        if(initialInput!=null){
+               boolean hasExactValues = textFieldMap.entrySet().stream()
+                    .filter(entry->entry.getKey().equals(exactValueDto))
+            .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+            );
+            
+            boolean hasAggregatedValues = textFieldMap.entrySet().stream()
+                    .filter(entry->!entry.getKey().equals(exactValueDto))
+            .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+            );
+            enableAggregationFields(hasExactValues, hasAggregatedValues);
+//        }
     }
 
     private Text addText(Composite valuesComposite, TermDto type, String value){
@@ -187,13 +232,24 @@ public class QuantitativeDataDialogComposite extends Composite {
         textFieldMap.put(type, list);
         list.add(text);
 
-        Button btnNewButton_2 = new Button(composite_2, SWT.NONE);
-        btnNewButton_2.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
+        Button btnRemove = new Button(composite_2, SWT.NONE);
+        btnRemove.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
         new Label(composite_2, SWT.NONE);
-        btnNewButton_2.addSelectionListener(new SelectionAdapter() {
+        btnRemove.addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent e) {
                 text.setText("");
+                boolean hasExactValues = textFieldMap.entrySet().stream()
+                        .filter(entry->entry.getKey().equals(exactValueDto))
+                .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+                );
+                
+                boolean hasAggregatedValues = textFieldMap.entrySet().stream()
+                        .filter(entry->!entry.getKey().equals(exactValueDto))
+                .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+                );
+
+                enableAggregationFields(hasExactValues, hasAggregatedValues);
             }
         });
         text.addModifyListener(e->{
@@ -201,8 +257,13 @@ public class QuantitativeDataDialogComposite extends Composite {
                     .filter(entry->entry.getKey().equals(exactValueDto))
             .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
             );
+            
+            boolean hasAggregatedValues = textFieldMap.entrySet().stream()
+                    .filter(entry->!entry.getKey().equals(exactValueDto))
+            .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
+            );
 
-            enableAggregationFields(!hasExactValues);
+            enableAggregationFields(hasExactValues, hasAggregatedValues);
 //            if(hasExactValues){
 //                enableAggregationFields(false);
 //            }
@@ -213,14 +274,15 @@ public class QuantitativeDataDialogComposite extends Composite {
         return text;
     }
 
-    private void enableAggregationFields(boolean enabled){
+    private void enableAggregationFields(boolean hasExactValues, boolean hasAggregatedValues){
+       boolean enableAggregatedValues = hasAggregatedValues ==( hasAggregatedValues != hasExactValues);
         textFieldMap.entrySet().stream()
         .filter(entry->!entry.getKey().equals(exactValueDto))
-        .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(enabled)));
-
+        .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(enableAggregatedValues)));
+        boolean enableExactValues = hasExactValues ==( hasAggregatedValues != hasExactValues);
         textFieldMap.entrySet().stream()
         .filter(entry->entry.getKey().equals(exactValueDto))
-        .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(!enabled)));
+        .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(enableExactValues)));
     }
 
     public Map<TermDto, List<Text>> getTextFields() {
index 615978f59b6f3f2441e732b915a437a9ab66637c..045a28722b601e742975dc1c804565f70cf7aec1 100644 (file)
@@ -112,6 +112,7 @@ public class QuantitativeDataDialogEditor extends AbstractDialogCellEditor {
             }
             if(dto instanceof QuantitativeDataDto){
                        quantitativeData = (QuantitativeDataDto) dto;
+                       quantitativeData.setFeatureDto(feature);
                }
             //create new Quantitative Data
             if (quantitativeData == null) {
index 30eff79eba48d4263fdb3198edbbc2f8169e4c67..7dc51e4a36e88863f549d5c50c067365fbdae415 100644 (file)
@@ -86,10 +86,14 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
 
 
                newParentNode = TaxonNodeSelectionDialog.select(shell, Messages.MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON, excludeTaxa,  input.getTaxonNode(), input.getTaxonNode().getClassification().getUuid());
+               if (newParentNode == null){
+                       return;
+               }
                SecReferenceHandlingEnum secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
         UUID newSecUuid = null;
 
         Reference synSecRef = synonym.getSec();
+       
         Reference parentSecRef = newParentNode.getTaxon() != null? newParentNode.getTaxon().getSec():null;
         if ((synSecRef != parentSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) )|| secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)){
 
index 7513d3e815198fb0b8ebce06739e0be10d87a5d7..2789603f685ff0fc6a9966cd12754a240921c971 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -10,7 +10,7 @@ package eu.etaxonomy.taxeditor.editor.view.descriptive;
 
 import java.util.UUID;
 
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.taxeditor.model.CdmObjectTransfer;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -24,13 +24,13 @@ public class DescriptionElementTransfer extends CdmObjectTransfer<DescriptionEle
        private static DescriptionElementTransfer instance = new DescriptionElementTransfer();
        private static final String TYPE_NAME = "descriptionElement-transfer-format"; //$NON-NLS-1$
        private static final int TYPEID = registerType(TYPE_NAME);
-       
+
        public static synchronized DescriptionElementTransfer getInstance(){
                return instance;
        }
-       
+
        private DescriptionElementTransfer(){}
-       
+
        @Override
        protected int[] getTypeIds() {
                return new int[] { TYPEID };
@@ -43,6 +43,6 @@ public class DescriptionElementTransfer extends CdmObjectTransfer<DescriptionEle
 
        @Override
        public DescriptionElementBase loadElement(UUID uuid) {
-               return CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
+               return CdmStore.getService(IDescriptionElementService.class).load(uuid, null);
        }
 }
\ No newline at end of file
index 225ded5ff46f3c4a49a6901813319c5273bf0e1e..ca56b8cd9d5a90de9f4076141bc983a6264133fd 100644 (file)
@@ -202,15 +202,20 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
             DescriptionElementBase descriptionElement = (DescriptionElementBase) object;
             DescriptionBase<?> description = descriptionElement.getInDescription();
             FeatureNodeContainerTree containerTree = featureNodeContainerCache.get(description);
-            FeatureNodeContainer featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
-            if (featureNodeContainer == null){
-                containerTree = new FeatureNodeContainerTree(description, provider.getFeatureTree(description));
-                featureNodeContainerCache.put(description, containerTree);
-                featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
+            if (containerTree != null){
+               FeatureNodeContainer featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
+               if (featureNodeContainer == null){
+                    containerTree = new FeatureNodeContainerTree(description, provider.getFeatureTree(description));
+                    featureNodeContainerCache.put(description, containerTree);
+                    featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
+                }
+                ((AbstractTreeViewer) viewer).expandToLevel(featureNodeContainer, 2);
+            }
+            if (object != null){
+               StructuredSelection selection = new StructuredSelection(object);
+               viewer.setSelection(selection, true);
             }
-            ((AbstractTreeViewer) viewer).expandToLevel(featureNodeContainer, 2);
-            StructuredSelection selection = new StructuredSelection(object);
-            viewer.setSelection(selection, true);
+            
         }
 
 
index 9c658daf06d30eb2ec36c40cac2c743fc11d43c0..7d1fcc70c66b621b45d09094b021f83884a45768 100644 (file)
@@ -32,6 +32,7 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.UpdateResult.Status;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.SpecimenDescription;
@@ -80,6 +81,7 @@ public class DeleteHandlerE4 {
                String label = menuItem.getLocalizedLabel();
 
         IUndoContext undoContext = EditorUtil.getUndoContext();
+        CdmBase updateObject = null;
 
         List<AbstractPostOperation> operations = new ArrayList();
         AbstractPostOperation operation = null;
@@ -110,18 +112,19 @@ public class DeleteHandlerE4 {
                 if(object instanceof TaxonDescription ){
 
                         operation = new DeleteTaxonDescriptionOperation(label, undoContext, (TaxonDescription) object, factualDataPart, cdmEntitySessionEnabled);
-
+                        updateObject =  ((TaxonDescription) object).getTaxon();
                         ((TaxonDescription) object).getTaxon().removeDescription((TaxonDescription) object);
-
+                        
 
                 } else if(object instanceof TaxonNameDescription ){
                     operation = new DeleteTaxonNameDescriptionOperation(label, undoContext, (TaxonNameDescription) object, factualDataPart, cdmEntitySessionEnabled);
-
+                    updateObject= ((TaxonNameDescription) object).getTaxonName();
                     ((TaxonNameDescription) object).getTaxonName().removeDescription((TaxonNameDescription) object);
 
                 } else if(object instanceof SpecimenDescription){
                     operation = new DeleteSpecimenDescriptionOperation(label, undoContext, (SpecimenDescription) object, factualDataPart, cdmEntitySessionEnabled);
                     specimen = ((SpecimenDescription) object).getDescribedSpecimenOrObservation();
+                    updateObject = specimen;
                     specimen.removeDescription((SpecimenDescription) object);
 
                 } else if(object instanceof DescriptionElementBase){
@@ -161,12 +164,8 @@ public class DeleteHandlerE4 {
                 if (factualDataPart.getSelectionProvidingPart().getObject() instanceof BulkEditor){
                     ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).addOperation(operation);
                     ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).setDirty(true);
-                    if (object instanceof SpecimenDescription){
-                        ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(((SpecimenDescription)object).getDescribedSpecimenOrObservation());
-                    }else if (object instanceof TaxonDescription){
-                        ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(((TaxonDescription)object).getTaxon());
-                    }else if (object instanceof TaxonNameDescription){
-                        ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(((TaxonNameDescription)object).getTaxonName());
+                    if (object instanceof DescriptionBase){
+                        ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(updateObject);
                     }
                 }
 
index 8c6175dfb5df26b784c937b89716b095450c41b5..056573c58e6e0ecc30c38344e4c2cd8337b14844 100644 (file)
@@ -37,13 +37,12 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
 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.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
-import eu.etaxonomy.cdm.model.metadata.EnabledComputedDescription;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -101,7 +100,7 @@ public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
                 description = ((DescriptionElementBase) object).getInDescription();
                 DescriptionElementBase element ;
                 if (((DescriptionElementBase) object).getId() > 0){
-                    element = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
+                    element = CdmStore.getService(IDescriptionElementService.class).load(uuid, null);
                 }else{
                     element = ((DescriptionElementBase) object);
                 }
@@ -111,7 +110,7 @@ public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
                 for (DescriptionElementBase de : ((FeatureNodeContainer) object).getDescriptionElements()) {
                     DescriptionElementBase element ;
                     if (de.getId() > 0){
-                        element = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(de.getUuid(), null);
+                        element = CdmStore.getService(IDescriptionElementService.class).load(de.getUuid(), null);
                     }else{
                         element = (de);
                     }
index 7d35799ad583c7130a927673d59649a891469ee5..b9d086078dc3be4e85ff485958e2e9db3aa96cbd 100755 (executable)
@@ -37,7 +37,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
@@ -100,7 +100,7 @@ public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOpe
                 description = ((DescriptionElementBase) object).getInDescription();
                 DescriptionElementBase element ;
                 if (((DescriptionElementBase) object).getId() > 0){
-                    element = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
+                    element = CdmStore.getService(IDescriptionElementService.class).load(uuid, null);
                 }else{
                     element = ((DescriptionElementBase) object);
                 }
@@ -110,7 +110,7 @@ public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOpe
                 for (DescriptionElementBase de : ((FeatureNodeContainer) object).getDescriptionElements()) {
                     DescriptionElementBase element ;
                     if (de.getId() > 0){
-                        element = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(de.getUuid(), null);
+                        element = CdmStore.getService(IDescriptionElementService.class).load(de.getUuid(), null);
                     }else{
                         element = (de);
                     }
index 51f940bc261151d74c0e6d3ba7210a38789f317a..599710e6be78ebeca23cb66eaac5de6dfcb336b9 100644 (file)
@@ -14,6 +14,8 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -22,6 +24,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * <p>DeleteDescriptionElementOperation class.</p>
@@ -54,7 +57,7 @@ public class DeleteDescriptionElementOperation extends AbstractPostTaxonOperatio
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
-               description = element.getInDescription();
+               CdmStore.getService(IDescriptionElementService.class).delete(element.getUuid());
 
                monitor.worked(20);
 
@@ -67,7 +70,7 @@ public class DeleteDescriptionElementOperation extends AbstractPostTaxonOperatio
                monitor.worked(40);
 
         // Redraw editor if exists
-               return postExecute(description);
+               return postExecute(element);
        }
 
        @Override
index 9d44cbef0e0b4dc0e480f4cfbd0ef029f8c08b55..2ed6e81ab3a69d38fd18f36f683c667e4d9a6b62 100644 (file)
@@ -2,7 +2,7 @@
 <feature\r
       id="eu.etaxonomy.taxeditor.feature.platform"\r
       label="Taxeditor Dependencies"\r
-      version="5.28.1"\r
+      version="5.29.0"\r
       os="linux,macosx,win32"\r
       ws="cocoa,gtk,win32"\r
       arch="x86,x86_64">\r
          version="0.0.0"\r
          unpack="false"/>\r
 \r
-   <plugin\r
-         id="org.apache.commons.httpclient"\r
-         download-size="0"\r
-         install-size="0"\r
-         version="0.0.0"\r
-         unpack="false"/>\r
-\r
    <plugin\r
          id="org.hamcrest.core"\r
          download-size="0"\r
          version="0.0.0"\r
          unpack="false"/>\r
 \r
+   <plugin\r
+         id="org.apache.httpcomponents.httpclient"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
 </feature>\r
index 3ea7c979e42941d58cff0ab6f935f81087952f10..bd7cab0aa6b27e83ec4cfd4a8f5ca9ca69d8164f 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.28.1</version>
+               <version>5.29.0</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
index ba21ed7614933ca6bfb5a2395bab8b9ccefabd1d..8066be305aaf99d492635d94bc1a06917db1e6db 100644 (file)
@@ -2,7 +2,7 @@
 <feature\r
       id="eu.etaxonomy.taxeditor.feature"\r
       label="Taxonomic Editor"\r
-      version="5.28.1"\r
+      version="5.29.0"\r
       provider-name="EDIT"\r
       plugin="eu.etaxonomy.taxeditor.application"\r
       os="linux,macosx,win32"\r
index d9d898152dafeef8a02fee829ba8e8132105abf2..139c5f7946d2ff94e47f06b8cf7ad4da6c0cc7e9 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
index d1d2a65bc6dc6a57e713e804cd29a19aae72e62d..49030018c32d41085e227da421be7908c15d5a9a 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.28.1
+Bundle-Version: 5.29.0
 Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
 Bundle-Vendor: EDIT
 Require-Bundle: org.eclipse.ui,
index 693e74ea857791f9d178b3f5f023298ff392e2e1..1504274e52b9dedd82f7e954fc731c205ce9744e 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.28.1</version>
+               <version>5.29.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 0d89849cfb1a564d29b466151dccecb7e4aa8d62..a2f3e0b3aa8e701c3f993836d04f15e3e0419c58 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.28.1
+Bundle-Version: 5.29.0
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.jface,
  org.eclipse.ui.ide,
@@ -25,10 +25,10 @@ Bundle-ClassPath: .,
  lib/c3p0-0.9.5.2.jar,
  lib/h2-1.4.190.jar,
  lib/mchange-commons-java-0.2.11.jar,
- lib/postgresql-42.2.18.jar,
- lib/mssql-jdbc-8.4.1.jre8.jar,
+ lib/postgresql-42.3.1.jar,
+ lib/mssql-jdbc-9.4.1.jre8.jar,
  lib/jtds-1.3.1.jar,
- lib/mysql-connector-java-8.0.21.jar,
+ lib/mysql-connector-java-8.0.27.jar,
  lib/jetty-webapp-9.4.26.v20200117.jar,
  lib/jetty-xml-9.4.26.v20200117.jar,
  lib/jetty-http-9.4.26.v20200117.jar,
index d63794ef79d3c34ff8ca26ecab788337e29d212c..6b27140d6d799d490a0c08d7ea84dcc86f75bd03 100644 (file)
@@ -5,10 +5,10 @@ bin.includes = META-INF/,\
                lib/,\
                lib/h2-1.4.190.jar,\
                lib/mchange-commons-java-0.2.11.jar,\
-               lib/postgresql-42.2.18.jar,\
-               lib/mssql-jdbc-8.4.1.jre8.jar,\
+               lib/postgresql-42.3.1.jar,\
+               lib/mssql-jdbc-9.4.1.jre8.jar,\
                lib/jtds-1.3.1.jar,\
-               lib/mysql-connector-java-8.0.21.jar,\
+               lib/mysql-connector-java-8.0.27.jar,\
                OSGI-INF/,\
                OSGI-INF/l10n/bundle.properties,\
                OSGI-INF/l10n/bundle_de.properties,\
index 70e65f5386cb010dc84be24c37a4b810390a4443..a66d1ebe39a4c411db6fc5e07cc9b47b12618d24 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>eu.etaxonomy.taxeditor.local</artifactId>
@@ -16,7 +16,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.7</version>
+          <version>3.0.0-M5</version>
         </plugin>
       </plugins>
     </pluginManagement>
@@ -24,7 +24,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
-        <version>2.4</version>
+        <version>3.2.0</version>
         <executions>
           <execution>
             <id>copy-dependency-war</id>
         <artifactId>log4j</artifactId>
         <version>${log4j.version}</version>
     </dependency>
-  <!--<dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>javax.servlet-api</artifactId>
-        <version>4.0.1</version>
-    </dependency>-->
     <dependency>
         <groupId>org.hibernate.validator</groupId>
         <artifactId>hibernate-validator</artifactId>
index d9f7219bd68c277d9cbcda1b1a1724579cf74904..cc6a671db1b1609bc6a368d727c953cfe6307c08 100644 (file)
@@ -2,13 +2,13 @@ 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.28.1
+Bundle-Version: 5.29.0
 Bundle-ClassPath: .,
  lib/owlapi-xmlutils-4.1.4.jar,
  lib/commons-collections4-4.1.jar,
  lib/core-1.9.2.jar,
  lib/sequencing-1.9.2.jar,
- lib/commons-lang3-3.11.jar,
+ lib/commons-lang3-3.12.0.jar,
  lib/commons-beanutils-1.9.4.jar,
  lib/bioinfweb-commons-java-bio-2.0.0.jar,
  lib/bioinfweb-commons-java-core-2.2.0.jar,
index 544c8faccb6780af5370ec70cdb706df49142f52..2fd48b69cbcd6c0dae5d80a11a678979f2226473 100644 (file)
@@ -2,7 +2,7 @@ bin.includes = META-INF/,\
                lib/commons-collections4-4.1.jar,\
                lib/core-1.9.2.jar,\
                lib/sequencing-1.9.2.jar,\
-               lib/commons-lang3-3.11.jar,\
+               lib/commons-lang3-3.12.0.jar,\
                lib/commons-beanutils-1.9.4.jar,\
                lib/bioinfweb-commons-java-bio-2.0.0.jar,\
                lib/bioinfweb-commons-java-core-2.2.0.jar,\
index 16428c409873bd446227b7a9ed3d50c5f7a221ab..a652f6535454d4b5668f4c57999cefe495a08495 100644 (file)
@@ -13,7 +13,7 @@ bin.includes = META-INF/,\
                lib/info.bioinfweb.tic.core/bin/,\
                lib/info.bioinfweb.tic.swt/bin/,\
                lib/info.bioinfweb.libralign.biojava1/bin/,\
-               lib/commons-lang3-3.11.jar,\
+               lib/commons-lang3-3.12.0.jar,\
                lib/info.bioinfweb.jphyloio.core/bin/,\
                lib/commons-beanutils-1.9.4.jar
                lib/jphyloio-core-0-SNAPSHOT.jar,\
index 7acbe7a13bdfa5fc021a1e6299aa100fc0ad6d76..36d2d926eb26fd3a70cdec236809a2ed8618d18a 100644 (file)
@@ -7,7 +7,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
   
   <name>Molecular Library Dependencies Bundle</name>
@@ -18,7 +18,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
-        <version>2.4</version>
+        <version>3.2.0</version>
         <executions>
           <execution>
             <id>copy-dependencies</id>
@@ -47,7 +47,7 @@
           <!-- </goals> -->
           <!-- <configuration> -->
           <!-- <classifier>sources</classifier> -->
-          <!-- <includeArtifactIds>cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io</includeArtifactIds> -->
+          <!-- <includeArtifactIds>cdmlib-commons,cdmlib-model,cdmlib-api,cdmlib-persistence,cdmlib-remote,cdmlib-print,cdmlib-services,cdmlib-ext,cdmlib-io</includeArtifactIds> -->
           <!-- <outputDirectory>lib</outputDirectory> -->
           <!-- <overWriteReleases>true</overWriteReleases> -->
           <!-- <overWriteSnapshots>true</overWriteSnapshots> -->
@@ -60,7 +60,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
-        <version>1.7</version>
         <executions>
           <execution>
             <id>remove-existing-jars</id>
     <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-lang3</artifactId>
-        <version>3.11</version>
+        <version>3.12.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
index 1028fdb69a0f94f7077107d2e71c694b4b679dfc..ffc25362dd75eb97ee11359a7e6ec93f4d5b5f7c 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.28.1
+Bundle-Version: 5.29.0
 Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
index b0c67f30b9a0d39eccecdf80afa625d07e049f32..a4b52db003e5d23bbe871fb2607a4df10edf8bf1 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index ef857f83d49ca898bbaa5942c43b6034cdf2efcf..001530991bcef76c167f79bd39292b530d7c94fa 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.28.1
+Bundle-Version: 5.29.0
 Bundle-Activator: eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.navigation,
index a6a7b92d778f082252c13e8d86703f1a9f96b26b..2ad4f42d8d84d772bd2a25621197c5e77b5dfbda 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.28.1</version>
+               <version>5.29.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 2d33925c277fe7ca1736b9173fd89188cf521b97..52c0c4723ae052b43aae014d9879cbbb8bd65369 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.navigation;
 
 import java.util.Collection;
@@ -48,10 +47,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
- *
  * @author n.hoffmann
  * @created 24.03.2009
- * @version 1.0
  */
 public class NavigationUtil extends AbstractUtility{
 
@@ -122,24 +119,13 @@ public class NavigationUtil extends AbstractUtility{
                            e.getMessage(), TaxeditorStorePlugin.PLUGIN_ID,
                            e,
                            true);
-
                }
        }
 
-       /**
-        * <p>openEmpty</p>
-        *
-        * @param parentNodeUuid a {@link java.util.UUID} object.
-        */
        public static void openEmpty(UUID parentNodeUuid) {
            EditorUtil.openEmptyE4(parentNodeUuid);
        }
 
-       /**
-        * <p>getUndoContext</p>
-        *
-        * @return a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        */
        public static IUndoContext getUndoContext() {
                // FIXME this has to be more specific. Every widget has to have its own undo context
 //             return IOperationHistory.GLOBAL_UNDO_CONTEXT;
@@ -193,11 +179,6 @@ public class NavigationUtil extends AbstractUtility{
         return false;
     }
 
-       /**
-        * <p>openSearch</p>
-        *
-        * @param selection a {@link java.lang.Object} object.
-        */
        public static void openSearch(Object selection) {
                if(selection instanceof Taxon){
                        Taxon taxon = (Taxon) selection;
@@ -250,13 +231,7 @@ public class NavigationUtil extends AbstractUtility{
 //             }
        }
 
-       /**
-        * <p>getPluginId</p>
-        *
-        * @return a {@link java.lang.String} object.
-        */
        public static String getPluginId(){
                return TaxeditorNavigationPlugin.PLUGIN_ID;
        }
-
-}
+}
\ No newline at end of file
index aff7db7516c5affe56e7fb21b3346ad2cc0e845e..92fdade0420e9bf7ad2e991f5ad001446f1341f4 100644 (file)
@@ -63,7 +63,6 @@ public class NewTaxonNodeHandlerE4 {
                 EditorUtil.openEmptyE4(wizard.getParentTreeNode().getUuid());
                        }else if(wizard.getEntity() != null){
                 EditorUtil.openTaxonNodeE4(wizard.getEntity().getUuid(), modelService, partService, application);
-                EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(wizard.getEntity()));
                        }
                }
        }
index afcf01d9e7b1074d28dbc718645a166867a0cbb8..f482c9ee7df18c14dcf8c0ab65fb195d146187c9 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.28.1
+Bundle-Version: 5.29.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.28.0.jar,
- lib/cdmlib-remote-5.28.0.jar
+ lib/cdmlib-print-5.29.0.jar,
+ lib/cdmlib-remote-5.29.0.jar
 Import-Package: org.apache.log4j,
  org.eclipse.core.runtime,
  org.eclipse.core.runtime.jobs,
index 9372080279e8721b72a3b70181a7ff83e818a8da..da20fdc3c20543c34e607401fbaef36850ff641e 100644 (file)
@@ -2,7 +2,7 @@ source.. = src/main/java/
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
-               lib/cdmlib-print-5.28.0.jar,\
-               lib/cdmlib-remote-5.28.0.jar,\
+               lib/cdmlib-print-5.29.0.jar,\
+               lib/cdmlib-remote-5.29.0.jar,\
                OSGI-INF/l10n/bundle.properties,\
                OSGI-INF/l10n/bundle_de.properties,\
index a1ec0e29bb94e7550269f3a8c84b492c9ad1680a..f6d0e32816fbd13c179237b614943c720ab3e7b1 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <artifactId>taxeditor-parent</artifactId>
                <groupId>eu.etaxonomy</groupId>
-               <version>5.28.1</version>
+               <version>5.29.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
@@ -18,7 +18,7 @@
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
-               <version>3.1.2</version>
+               <version>3.2.0</version>
                <executions>
                  <execution>
                    <id>copy-dependencies</id>
@@ -28,7 +28,7 @@
                    </goals>
                    <configuration>
                      <excludeArtifactIds>
-                       cdmlib-commons,cdmlib-model,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io,cdmlib-remote-webapp
+                       cdmlib-commons,cdmlib-model,cdmlib-api,cdmlib-persistence,cdmlib-services,cdmlib-cache,cdmlib-ext,cdmlib-io,cdmlib-remote-webapp
                      </excludeArtifactIds>
                      <includeArtifactIds>
                        cdmlib-remote,cdmlib-print
@@ -76,7 +76,7 @@
             <!-- maybe also dependencies are needed -->
             <groupId>org.apache.xmlgraphics</groupId>
                <artifactId>fop</artifactId>
-               <version>2.5</version>
+               <version>2.6</version>
         </dependency>
     </dependencies>
 </project>
index 2faf67255a112386825feec39f7031f67685cc90..d9c19a2ce4da250aef528acbe586193b2ddc4a0d 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.28.1
+Bundle-Version: 5.29.0
 Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/bundle
@@ -92,7 +92,8 @@ Require-Bundle: org.eclipse.osgi,
  org.eclipse.equinox.p2.metadata,
  org.eclipse.equinox.p2.core,
  org.eclipse.equinox.p2.engine,
- eu.etaxonomy.taxeditor.store
+ eu.etaxonomy.taxeditor.store,
+ org.eclipse.core.net
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.annotation;version="1.0.0";resolution:=optional,
index 17c5e68217c7fdb0cf96bf534bcac440efc814fc..9a05d604d7eecda6f030286756208f0df539293b 100755 (executable)
          id="eu.etaxonomy.taxeditor.preference.searchPreferences"
          name="%page.name.56">
    </page>
-    <page
-         category="eu.etaxonomy.taxeditor.preference.searchPreferences"
-         class="eu.etaxonomy.taxeditor.preference.TaxonSearchPreferences"
-         id="eu.etaxonomy.taxeditor.preference.taxonSearchPreferences"
-         name="%page.name.57">
-   </page>
-    <page
+   <page
           category="eu.etaxonomy.taxeditor.preference.languageEditorPreferencePage"
           class="eu.etaxonomy.taxeditor.preference.menu.CommonNameLanguagePreferences"
           id="eu.etaxonomy.taxeditor.preferences.commonnamelanguages"
index c3b799b5da2dd9120a4571b6838b6171079d5a3f..f76d110055de5b9ca961e435a75c0a3aed2d8a2f 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-       <version>5.28.1</version>
+       <version>5.29.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 3037d25ee99b570370764348921f0e399c10aaf9..ddc9f11734a12a83c0d11ea67680ef8e7ec8a150 100755 (executable)
@@ -8,10 +8,15 @@
 */
 package eu.etaxonomy.taxeditor.editor;
 
+import org.eclipse.jface.viewers.IStructuredSelection;
+
 /**
  * @author k.luther
  * @since May 5, 2021
  */
 public interface IBulkEditor {
+       
+       public abstract void setFocus();
+       public abstract void setSelection(IStructuredSelection selection);
 
 }
index 41a84431659ae72350a9bed0129f097198361fa8..c1f07bec3ff5c8bb960aca7cf692509ef4363a4f 100644 (file)
@@ -86,10 +86,13 @@ public class TermDtoLabelProvider //extends StyledCellLabelProvider implements I
             if(showIdInVoc && element instanceof TermDto && ((TermDto) termDto).getIdInVocabulary()!=null){
                 label = CdmUtils.concat(" : ", ((TermDto) termDto).getIdInVocabulary(), label);
             }
+            if (label == null){
+               label = termDto.getTitleCache();
+            }
         }
         // TODO add fallback for label
         if(label==null){
-            label = element.toString();
+               label = element.toString();
         }
         return label;
     }
index f9a276dc1d28151457c7c428eb40c09227d63b63..4ccfb8acc0b24c846f1bf3368677ec136a0ecbd7 100644 (file)
@@ -55,5 +55,7 @@ public interface WorkbenchEventConstants {
     public static final String ADD_TO_MERGE_ROWS = "ADD/TO/MERGE/ROWS";
 
     public static final String UPDATE_LINK_WITH_TAXON = "UPDATE/LINK_WITH_TAXON";
+    
+    public static final String REFRESH_MATRIX = "REFRESH/MATRIX";
 
 }
index d39be5a7c249daab544bd6a16f80ba7a7d8dff60..6d234d6ab677d9bf9ebc0fa018bbc891665fb97a 100644 (file)
@@ -23,6 +23,8 @@ import org.eclipse.e4.core.di.annotations.Execute;
 import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.e4.ui.workbench.IWorkbench;
 import org.eclipse.equinox.p2.core.IProvisioningAgent;
+import org.eclipse.equinox.p2.engine.IProfile;
+import org.eclipse.equinox.p2.engine.IProfileRegistry;
 import org.eclipse.equinox.p2.operations.ProvisioningJob;
 import org.eclipse.equinox.p2.operations.ProvisioningSession;
 import org.eclipse.equinox.p2.operations.UpdateOperation;
@@ -30,6 +32,8 @@ import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+
 
 /**
  * UpdateHandler invokes the check for updates UI
@@ -45,14 +49,16 @@ public class UpdateHandler {
     @Execute
     public void execute(final IProvisioningAgent agent, final Shell shell, final UISynchronize sync,
             final IWorkbench workbench) {
+
         Job checkUpdateJob = new Job(Messages.UpdateHandler_CHECK_UPDATE_JOB) {
             @Override
             protected IStatus run(final IProgressMonitor monitor) {
+
                 return checkForUpdates(agent, shell, sync, monitor);
             }
         };
-        checkUpdateJob.schedule();
 
+        checkUpdateJob.schedule();
 
         checkUpdateJob.addJobChangeListener(new JobChangeAdapter() {
             @Override
@@ -88,22 +94,39 @@ public class UpdateHandler {
         });
     }
 
-    private IStatus checkForUpdates(final IProvisioningAgent agent, final Shell shell, final UISynchronize sync,
+       private IStatus checkForUpdates(final IProvisioningAgent agent, final Shell shell, final UISynchronize sync,
             IProgressMonitor monitor) {
 
         // configure update operation
         final ProvisioningSession session = new ProvisioningSession(agent);
-        operation = new UpdateOperation(session);
-        configureUpdate(operation);
-
-        // check for updates, this causes I/O
-        final IStatus status = operation.resolveModal(monitor);
-
-        // failed to find updates (inform user and exit)
-        if (status.getCode() == UpdateOperation.STATUS_NOTHING_TO_UPDATE) {
-            showMessage(shell, sync);
-            return Status.CANCEL_STATUS;
+        long startTime = System.currentTimeMillis();
+        logger.info("Try to get updates" + startTime);
+        try{
+               operation = new UpdateOperation(session);
+               IProfileRegistry registry = (IProfileRegistry) agent.getService(IProfileRegistry.SERVICE_NAME);
+               
+               String profileID = operation.getProfileId();
+               IProfile profile = registry.getProfile(profileID);
+               if (profile == null){
+                       logger.info("There is no profile for profileID: " + profileID);
+               }
+               configureUpdate(operation);
+               // check for updates, this causes I/O
+               final IStatus status = operation.resolveModal(monitor);
+               // failed to find updates (inform user and exit)
+               long actualTime = System.currentTimeMillis();
+               if (status.getCode() == UpdateOperation.STATUS_NOTHING_TO_UPDATE) {
+                   showMessage(shell, sync);
+                   logger.info("update resolved, but no updates available " + (actualTime - startTime) + "Status: " + status.toString());
+                   return Status.CANCEL_STATUS;
+               }
+               
+               logger.info("update resolved " + (actualTime - startTime) + "Status: " + status.toString());
+        }catch(Exception e){
+               logger.warn( e.getStackTrace().toString());
+               return Status.CANCEL_STATUS;
         }
+
         return Status.OK_STATUS;
     }
 
@@ -149,9 +172,9 @@ public class UpdateHandler {
         // set location of artifact and metadata repo
         operation.getProvisioningContext().setArtifactRepositories(new URI[] { uri });
         operation.getProvisioningContext().setMetadataRepositories(new URI[] { uri });
+        
         //if local plugin is installed, then check for updates
         //operation.getProvisioningContext().setExtraInstallableUnits(extraIUs);
         return operation;
     }
-
 }
index cd37168ac16de3bddbde8f3260a2cc9a1c0873b1..b7a985aad2ec1fea93c733ea18c0a7f72f18e229 100644 (file)
@@ -129,7 +129,9 @@ public class DescriptionHelper {
        public static String getFeatureNodeContainerText(FeatureNodeContainer element) {
                String result = null;
                if(element.getFeatureNode() != null && element.getFeatureNode().getTerm() != null){
-                       result = element.getFeatureNode().getTerm().getLabel(CdmStore.getDefaultLanguage());
+                       
+                       result = element.getFeatureNode().getTerm().getPreferredRepresentation(CdmStore.getDefaultLanguage()).getLabel();
+                       
                } else{
                        return "No label set";
                }
@@ -168,7 +170,7 @@ public class DescriptionHelper {
                        PresenceAbsenceTerm status = distribution.getStatus();
 
                        if (status != null) {
-                               text += ", " + status.getLabel();
+                               text += ", " + status.getPreferredRepresentation(CdmStore.getDefaultLanguage()).getLabel();
                        }else{
                                text += ", NO STATUS";
                        }
@@ -228,7 +230,10 @@ public class DescriptionHelper {
                if (language == null) {
                        name += " (No language provided)";
                } else {
-                       name += " (" + language.getLabel(CdmStore.getDefaultLanguage()) + ")";
+                       
+                       String languageLabel = language.getPreferredRepresentation(CdmStore.getDefaultLanguage()).getLabel();
+                       
+                       name += " (" + languageLabel + ")";
                }
                return name;
        }
index 2d8063e4263fd2dae60c34897141a79247f8d0c6..02b70e4f97064472f7d9ea6dd134415224e2e09d 100644 (file)
@@ -53,7 +53,7 @@ public class NewReferenceWizard extends AbstractNewEntityWizard<Reference> {
        public void addPages() {
                // TODO disabling external service wizard page for now
 //             addPage(new ExternalReferenceServiceWizardPage(formFactory, getConversationHolder(), entity));
-               referencePage = new ReferenceWizardPage(formFactory, getConversationHolder(), getEntity());
+               referencePage = new ReferenceWizardPage(formFactory, getConversationHolder(), getEntity(), false);
                addPage(referencePage);
        }
 
index fd9ac5ae64bbe85ee44ad31f4df2ea5ba9414aab..b513886f27e84e58de23fb9850aa04626db3785d 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.newWizard;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.section.agent.TeamWizardPage;
 
@@ -24,17 +25,19 @@ import eu.etaxonomy.taxeditor.ui.section.agent.TeamWizardPage;
 public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
 
     private boolean isNomenclaturalTeam = false;
+    private boolean isCollectorTeam = false;
 
        public NewTeamWizard() {}
 
-       public NewTeamWizard(boolean b) {
-               setNomenclaturalTeam(b);
+       public NewTeamWizard(boolean isNomenclaturalTeam, boolean isCollectorTeam) {
+               setNomenclaturalTeam(isNomenclaturalTeam);
+               setCollectorTeam(isCollectorTeam);
        }
 
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-               addPage(new TeamWizardPage(formFactory, getConversationHolder(), getEntity(), isNomenclaturalTeam));
+               addPage(new TeamWizardPage(formFactory, getConversationHolder(), getEntity(), isNomenclaturalTeam, isCollectorTeam));
        }
 
        /* (non-Javadoc)
@@ -49,7 +52,7 @@ public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
        /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
-           CdmStore.getService(IAgentService.class).merge(getEntity(), true);
+           MergeResult result = CdmStore.getService(IAgentService.class).merge(getEntity(), true);
            
        }
 
@@ -71,4 +74,12 @@ public class NewTeamWizard extends AbstractNewEntityWizard<Team> {
     public void setNomenclaturalTeam(boolean isNomenclaturalTeam) {
         this.isNomenclaturalTeam = isNomenclaturalTeam;
     }
+
+       public boolean isCollectorTeam() {
+               return isCollectorTeam;
+       }
+
+       public void setCollectorTeam(boolean isCollectorTeam) {
+               this.isCollectorTeam = isCollectorTeam;
+       }
 }
index 3a0085abba84a5b87f8cd3e2cd4e0a09f5dec79b..e2f1d193e29380922d44f1a4784d2fb3426a071a 100644 (file)
@@ -42,6 +42,9 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
 
        private TermTree defaultFeatureTreeForTextualDescription;
        private TermTree defaultFeatureTreeForStructuredDescription;
+       
+       private ListViewer viewerText;
+       private  ListViewer viewerStructure;
 
        /** {@inheritDoc} */
        @Override
@@ -64,20 +67,20 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
        private void createTextTreeSelection(Composite parent){
                final CLabel label = new CLabel(parent, SWT.NONE);
                label.setText(Messages.DefaultFeatureTreePreferenecs_0);
+               viewerText = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
+               
+               viewerText.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 
-               final ListViewer viewer = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-               viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+               viewerText.setContentProvider(new TermTreeContentProvider());
+               viewerText.setLabelProvider(new TermTreeLabelProvider());
 
-               viewer.setContentProvider(new TermTreeContentProvider());
-               viewer.setLabelProvider(new TermTreeLabelProvider());
-
-               viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+               viewerText.addSelectionChangedListener(new ISelectionChangedListener() {
 
                        @Override
                        public void selectionChanged(SelectionChangedEvent arg0) {
                            setApply(true);
 //                         viewer.setSelection(arg0.getSelection());
-                               IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+                               IStructuredSelection selection = (IStructuredSelection) viewerText.getSelection();
 
                                defaultFeatureTreeForTextualDescription = (TermTree)selection.getFirstElement();
 
@@ -86,11 +89,11 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
 
                List<TermTree> input = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null);
 
-               viewer.setInput(input);
+               viewerText.setInput(input);
 
                if(defaultFeatureTreeForTextualDescription != null){
                        IStructuredSelection selection = new StructuredSelection(defaultFeatureTreeForTextualDescription);
-                       viewer.setSelection(selection, true);
+                       viewerText.setSelection(selection, true);
                }
        }
 
@@ -98,20 +101,20 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
                final CLabel label = new CLabel(parent, SWT.NONE);
                label.setText(Messages.DefaultFeatureTreePreferenecs_1);
 
-               final ListViewer viewer = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
+               viewerStructure = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
 
-               viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+               viewerStructure.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 
-               viewer.setContentProvider(new TermTreeContentProvider());
-               viewer.setLabelProvider(new TermTreeLabelProvider());
+               viewerStructure.setContentProvider(new TermTreeContentProvider());
+               viewerStructure.setLabelProvider(new TermTreeLabelProvider());
 
-               viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+               viewerStructure.addSelectionChangedListener(new ISelectionChangedListener() {
 
                        @Override
                        public void selectionChanged(SelectionChangedEvent arg0) {
                            setApply(true);
 //                         viewer.setSelection(arg0.getSelection());
-                               IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+                               IStructuredSelection selection = (IStructuredSelection) viewerStructure.getSelection();
 
                                defaultFeatureTreeForStructuredDescription = (TermTree) selection.getFirstElement();
 
@@ -120,11 +123,11 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
 
                List<TermTree> input = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null);
 
-               viewer.setInput(input);
+               viewerStructure.setInput(input);
 
                if(defaultFeatureTreeForStructuredDescription != null){
                        IStructuredSelection selection = new StructuredSelection(defaultFeatureTreeForStructuredDescription);
-                       viewer.setSelection(selection, true);
+                       viewerStructure.setSelection(selection, true);
                }
        }
 
@@ -146,4 +149,14 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
 
                return super.performOk();
        }
+       @Override
+    protected void performDefaults() {
+               defaultFeatureTreeForTextualDescription = null;
+               defaultFeatureTreeForTextualDescription = null;
+               viewerStructure.setSelection(null);
+               viewerText.setSelection(null);
+        setApply(true);
+        super.performDefaults();
+    }
+
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonSearchPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonSearchPreferences.java
deleted file mode 100755 (executable)
index f487f80..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
-* Copyright (C) 2019 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.preference;
-
-import org.eclipse.jface.preference.BooleanFieldEditor;
-
-import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
-
-/**
- * @author k.luther
- * @since 18.01.2019
- *
- */
-public class TaxonSearchPreferences extends FieldEditorPreferencePageE4{
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected void createFieldEditors() {
-        addField(new BooleanFieldEditor(IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS,
-                Messages.TaxonSearchPreferences_0,
-                getFieldEditorParent()));
-        addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(PreferencePredicate.SortTaxaByRankAndName.getKey()),
-                Messages.SearchDialogPreferences_3,
-                getFieldEditorParent()));
-
-    }
-
-}
index 78d5c524f20ab007436025904946dbba0a5cefee..60b5894c6af2fbec4e8cbc693ef86117147e16f5 100644 (file)
@@ -44,11 +44,11 @@ public class AvailableDistributionWizard extends Wizard {
         if (!checkNoneChecked()) {
             Object[] checkedElements = aPage.getViewer().getCheckedElements();
             Object[] grayedElements = aPage.getViewer().getGrayedElements();
-            ArrayList checkedList = new ArrayList(Arrays.asList(checkedElements));
-            ArrayList grayedList = new ArrayList(Arrays.asList(grayedElements));
+            ArrayList<Object> checkedList = new ArrayList<>(Arrays.asList(checkedElements));
+            ArrayList<Object> grayedList = new ArrayList<>(Arrays.asList(grayedElements));
             checkedList = (ArrayList) CollectionUtils.subtract(checkedList, grayedList);
-            ArrayList<UUID> listUIIDChecked = new ArrayList<UUID>();
-            ArrayList<UUID> listUIIDGrayed = new ArrayList<UUID>();
+            ArrayList<UUID> listUIIDChecked = new ArrayList<>();
+            ArrayList<UUID> listUIIDGrayed = new ArrayList<>();
             for (Object o : checkedList) {
                 if (o instanceof TermDto) {
                     listUIIDChecked.add(((TermDto) o).getUuid());
index 50fed2156d07dddd80022c5a45ec79dffbe9e5c7..b8d6fc68f5aa4d1bfc094c8d94b5da56690c848e 100644 (file)
@@ -22,7 +22,7 @@ import java.util.UUID;
 import org.eclipse.swt.dnd.ByteArrayTransfer;
 import org.eclipse.swt.dnd.TransferData;
 
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.Character;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
@@ -101,9 +101,9 @@ public class CharacterTransfer extends ByteArrayTransfer {
                     while(true){
                         String string = in.readUTF();
                         String[] split = string.split(",");
-                        IFeatureNodeService featureNodeService = CdmStore.getService(IFeatureNodeService.class);
-                        TermNode<DefinedTerm> structure = featureNodeService.load(UUID.fromString(split[0]));
-                        TermNode<DefinedTerm> property = featureNodeService.load(UUID.fromString(split[1]));
+                        ITermNodeService termNodeService = CdmStore.getService(ITermNodeService.class);
+                        TermNode<DefinedTerm> structure = termNodeService.load(UUID.fromString(split[0]));
+                        TermNode<DefinedTerm> property = termNodeService.load(UUID.fromString(split[1]));
                         characters.add(createCharacter(structure, property));
                     }
                 }catch(EOFException e){
index 784758a9c219fe402cc5bc15c569b7e61b02fccf..5b0cf92e026cb1b61d0788b6dffe3cce255c0bc0 100644 (file)
@@ -23,7 +23,7 @@ import org.eclipse.swt.SWTException;
 import org.eclipse.swt.dnd.ByteArrayTransfer;
 import org.eclipse.swt.dnd.TransferData;
 
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -134,7 +134,7 @@ public class TermNodeTransfer extends ByteArrayTransfer {
     }
 
     public TermNode loadElement(UUID uuid){
-        TermNode<Feature> node = CdmStore.getService(IFeatureNodeService.class).load(uuid);
+        TermNode<Feature> node = CdmStore.getService(ITermNodeService.class).load(uuid);
         return node;
     }
 
index f24af24aaa4213a5b43b2a26f576839f48f98c5d..19c6e17bc51727d127c329f439f97b0a5c85e97d 100644 (file)
@@ -16,7 +16,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
 import eu.etaxonomy.cdm.api.service.config.TermNodeDeletionConfigurator;
 import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
@@ -28,7 +28,6 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 /**
  * @author pplitzner
  * @since Apr 30, 2018
- *
  */
 public class RemoveFeatureOperation extends AbstractPostOperation<TermNode>{
 
@@ -39,7 +38,7 @@ public class RemoveFeatureOperation extends AbstractPostOperation<TermNode>{
 
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-        DeleteResult result = CdmStore.getService(IFeatureNodeService.class).deleteFeatureNode(elementUuid, new TermNodeDeletionConfigurator());
+        DeleteResult result = CdmStore.getService(ITermNodeService.class).deleteNode(elementUuid, new TermNodeDeletionConfigurator());
         return postExecute(null);
     }
 
index 0546099cc8e3bd208e51e2e9359a1dba96e5135e..1e4998fdfe75b08f74b560d9f98952e8bb5de22d 100644 (file)
@@ -83,10 +83,16 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
             this.cdmBaseToBeFiltered = new HashSet<>();
             objectsToBeFiltered.forEach(filter->this.cdmBaseToBeFiltered.add(filter.getUuid()));
         }
-        Cursor cursor = shell.getCursor();
-        shell.setCursor(shell.getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+        Cursor cursor = null;
+        if (shell != null){
+               cursor = shell.getCursor();
+               shell.setCursor(shell.getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+        }
+        
         init();
-        shell.setCursor(cursor);
+        if (shell != null){   
+               shell.setCursor(cursor);
+        }
         setListLabelProvider(createListLabelProvider());
 
        }
@@ -216,6 +222,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        protected void setPattern(T cdmObject) {
                String pattern = getTitle(cdmObject);
                getSearchField().setText(pattern);
+               
        }
 
        @Override
index 8791b596d1157f002ab1f75f502215f452e92df7..28c2d2b4f071478ee9b5435731a838fcc0f2c6c8 100644 (file)
@@ -43,7 +43,7 @@ public class AgentSelectionDialog<T extends AgentBase>
        protected static final String PERSON = "New Person";
        protected static final String TEAM = "New Team";
 
-       protected static boolean selectTeamMember;
+       protected boolean selectTeamMember;
 
        /**
         * select
@@ -109,7 +109,7 @@ public class AgentSelectionDialog<T extends AgentBase>
        @Override
        protected String[] getNewWizardText() {
            String[] result;
-               if (AgentSelectionDialog.selectTeamMember){
+               if (selectTeamMember){
                    result = new String[1];
                    result[0] = PERSON;
                }else{
index bdd84d91aa14bfe9b49bdb7d8dbc01cbbb09e6f8..8f87977da19fbe4fae03617c2549e2313f69835e 100755 (executable)
@@ -8,6 +8,14 @@
 */
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+import java.lang.reflect.Member;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.widgets.Shell;
@@ -17,9 +25,13 @@ import eu.etaxonomy.cdm.api.service.dto.EntityDTOBase;
 import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.persistence.dto.TeamOrPersonUuidAndTitleCache;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -28,6 +40,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since Jul 1, 2021
  */
 public class CollectorSelectionDialog extends AgentSelectionDialog<AgentBase<?>> {
+       Team collectorTeam = null;
 
     /**
      * @param shell
@@ -40,10 +53,15 @@ public class CollectorSelectionDialog extends AgentSelectionDialog<AgentBase<?>>
     protected CollectorSelectionDialog(Shell shell, String title, boolean multi, String settings,
             AgentBase<?> agent, boolean selectTeamMember) {
         super(shell, title, multi, settings, agent, selectTeamMember);
+        if (selectTeamMember && agent instanceof Team){
+               this.collectorTeam = (Team)agent;
+               
+       }
 
     }
     public static <S extends AgentBase> S select(Shell shell,
             S entity, boolean selectTeamMember) {
+       
         CollectorSelectionDialog dialog = new CollectorSelectionDialog(shell,
                 "Choose Collector", false, CollectorSelectionDialog.class.getCanonicalName(), entity, selectTeamMember);
         return  (S) getSelectionFromDialog(dialog);
@@ -53,6 +71,11 @@ public class CollectorSelectionDialog extends AgentSelectionDialog<AgentBase<?>>
     protected ILabelProvider createListLabelProvider() {
         return new CollectorLabelProvider();
     }
+    
+    @Override
+       protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+               return new NewTeamWizard(false, true);
+       }
 
     public class CollectorLabelProvider extends LabelProvider {
         @Override
@@ -92,9 +115,42 @@ public class CollectorSelectionDialog extends AgentSelectionDialog<AgentBase<?>>
         if (selectTeamMember){
             clazz = Person.class;
         }
-
+        Set<UUID> memberUuids = new HashSet<>();
+        if (collectorTeam != null && selectTeamMember){
+               List<Person> teamMembers = this.collectorTeam.getTeamMembers();
+               
+            teamMembers.forEach(member -> memberUuids.add(member.getUuid()));
+        }
+        
         model = CdmStore.getService(IAgentService.class).getUuidAndTitleCacheWithCollectorTitleCache(clazz, limitOfInitialElements, pattern);
+        if (collectorTeam == null){
+               return;
+        }
+        //filter
+        Iterator<UuidAndTitleCache<AgentBase<?>>> modelIterator = model.iterator();
+        List<UuidAndTitleCache<AgentBase<?>>> tempModel = new ArrayList<>();
+        while(modelIterator.hasNext()){
+               UuidAndTitleCache<AgentBase<?>> person = modelIterator.next();
+               if (memberUuids.contains(person.getUuid())){
+                       tempModel.add(person);
+               }
+        }
+        model.clear();
+        model.addAll(tempModel);
     }
 
+    @Override
+    protected String getTitle(AgentBase<?> cdmObject) {
+               if(cdmObject == null){
+                       return "";
+               }
+
+               if (cdmObject instanceof TeamOrPersonBase) {
+                       return ((TeamOrPersonBase<?>) cdmObject).getCollectorTitleCache();
+               }
 
+               throw new IllegalArgumentException("Generic method only" +
+                               " supports cdmObject of type TeamOrPersonBase." +
+                               " Please implement specific method in subclass.");
+       }
 }
index 315b613365199459b922ff4aa5b1a1179f1b9fac..b6d173939852d7e8fe8ede3d9e9a011339de76e0 100644 (file)
@@ -51,7 +51,7 @@ public class NomenclaturalAuthorSelectionDialog extends TeamOrPersonBaseSelectio
     @Override
     protected AbstractNewEntityWizard<? extends TeamOrPersonBase<?>> getNewEntityWizard(String parameter) {
         if(TEAM.equals(parameter)){
-            return new NewTeamWizard(true);
+            return new NewTeamWizard(true, false);
         }
         else if(PERSON.equals(parameter)){
             return new NewPersonWizard();
index 1f356e4e5cef171c81cd8832d0ec6844686c0d04..1bd1c42e71eb33bf0ba1d1b53ba33823ef3acfd4 100644 (file)
@@ -63,7 +63,7 @@ public class NomenclaturalAuthorTeamSelectionDialog
 
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
-               return new NewTeamWizard(true);
+               return new NewTeamWizard(true, false);
        }
 
        @Override
index 52a3826c734565812b32991498dc708a965f1b01..c642891542d3a8023dd8a6ed7dbd7ddd8d489edf 100644 (file)
@@ -55,11 +55,13 @@ import eu.etaxonomy.taxeditor.ui.section.description.detail.CommonNameDetailElem
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;\r
 import eu.etaxonomy.taxeditor.ui.section.name.AuthorshipDetailElement;\r
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailElement;\r
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;\r
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.user.GroupsByUserDetailElement;\r
 import eu.etaxonomy.taxeditor.ui.section.user.GroupsByUserDetailSection;\r
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;\r
 \r
 /**\r
  * @author n.hoffmann\r
@@ -92,9 +94,9 @@ public class SelectionDialogFactory {
                        return (T) TaxonNodeSelectionDialog.select(shell,\r
                                null, null, (TaxonNode) currentSelection, ((TaxonNode) currentSelection).getClassification().getUuid());\r
                }\r
-               if(clazz.equals(Reference.class) && parentElement != null && parentElement.getParentElement() instanceof NomenclaturalReferenceDetailElement){\r
+               if(clazz.equals(Reference.class) && parentElement != null && parentElement.getParentElement() instanceof NomenclaturalSourceDetailElement){\r
                        return (T) NomenclaturalReferenceSelectionDialog.select(shell,\r
-                               (Reference) currentSelection, ((NomenclaturalReferenceDetailElement)parentElement.getParentElement()).getEntity().getCombinationAuthorship());\r
+                               (Reference) currentSelection, ((NomenclaturalSourceDetailElement)parentElement.getParentElement()).getEntity().getCombinationAuthorship());\r
                }\r
                if(clazz.equals(Reference.class) && parentElement instanceof CommonNameSourceElement && PreferencesUtil.getFilterCommonNameReferences()){\r
             return (T) CommonNameReferenceSelectionDialog.select(shell,\r
@@ -114,12 +116,16 @@ public class SelectionDialogFactory {
                if(clazz.equals(Team.class)){\r
                        return (T) TeamSelectionDialog.select(shell, (Team)currentSelection);\r
                }\r
-               if(clazz.equals(TeamOrPersonBase.class) && parentElement instanceof AuthorshipDetailElement){\r
+               if(clazz.equals(TeamOrPersonBase.class) && (parentElement instanceof AuthorshipDetailElement \r
+                               || (parentElement instanceof ReferenceDetailElement && ((ReferenceDetailElement)parentElement).isNomenclaturalReference()))){\r
             return (T) NomenclaturalAuthorSelectionDialog.select(shell,\r
                     (TeamOrPersonBase) currentSelection, false);\r
-        }else if(clazz.equals(AgentBase.class) && parentElement instanceof FieldUnitFacadeGeneralDetailElement){\r
+        }else if(clazz.equals(AgentBase.class) && (parentElement instanceof FieldUnitFacadeGeneralDetailElement || parentElement instanceof DerivedUnitGeneralDetailElement)){\r
                    return (T) CollectorSelectionDialog.select(shell,\r
                            (TeamOrPersonBase) currentSelection, false);\r
+               }else if (clazz.equals(AgentBase.class) && parentElement instanceof CollectorSelectionElement){\r
+                       return (T) CollectorSelectionDialog.select(shell,\r
+                           (TeamOrPersonBase) ((CollectorSelectionElement)parentElement).getCollectorTeam(), true);\r
                }else if(clazz.equals(TeamOrPersonBase.class)){\r
             //TODO: add TeamOrPersonBaseSelectionDialog (see ticket #4545)\r
             return (T) TeamOrPersonBaseSelectionDialog.select(shell,\r
index 13038fc4e9b4635790a84715a1db095bd94bfc18..a08fd86ef8465c82b962157cf04f5ca29ec964e7 100755 (executable)
@@ -39,8 +39,9 @@ public class TeamOrPersonBaseSelectionDialog
 
     @Override
     protected void callService(String pattern) {
-        model = (List)CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Team.class, limitOfInitialElements, pattern);
-        model.addAll((List)CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Person.class,limitOfInitialElements, pattern));
+       model = (List)CdmStore.getService(IAgentService.class).getTeamOrPersonUuidAndTitleCache(null, limitOfInitialElements, pattern);
+//        model = (List)CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Team.class, limitOfInitialElements, pattern);
+//        model.addAll((List)CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Person.class,limitOfInitialElements, pattern));
     }
 
     @Override
index 8be23b4aaab513122b608089ed578e19ab6ed698..fd07cb29ae8d26b1454b82709319eb4240fedc93 100644 (file)
@@ -58,9 +58,11 @@ import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.common.DOI;
 import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.ORCID;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Credit;
@@ -128,6 +130,7 @@ import eu.etaxonomy.cdm.model.term.TermBase;
 import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
@@ -141,6 +144,7 @@ import eu.etaxonomy.taxeditor.ui.combo.NameRelationshipTypeCombo;
 import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.dialog.CloneClassificationDetailElement;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CollectorSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType;
 import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
 import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled;
@@ -152,6 +156,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.section.EmptyElement;
 import eu.etaxonomy.taxeditor.ui.section.agent.InstitutionDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.agent.InstitutionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.agent.NomenclaturalTeamMemberElement;
 import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.agent.TeamDetailElement;
@@ -212,9 +217,11 @@ import eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDtoDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfCollectionElementForDto;
 import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfEntityCollectionSectionForNode;
 import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfCollectionElementForDto;
 import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfEntityCollectionSectionForNode;
 import eu.etaxonomy.taxeditor.ui.section.feature.TermNodeDetailElement;
@@ -332,8 +339,8 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDe
 import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.AdvancedNomenclaturalSourceElement;
 import eu.etaxonomy.taxeditor.ui.section.reference.AdvancedSourceElement;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceElement;
 import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceAdvancedSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceElement;
@@ -403,11 +410,11 @@ import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureDtoCollect
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermMediaSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailSection;
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.CommonNameReferenceSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithAbbreviatedTitle;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithIdInVocabulary;
-import eu.etaxonomy.taxeditor.ui.selection.NomenclaturalAuthorTeamSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
 import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
 
@@ -1920,8 +1927,8 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    public NomenclaturalReferenceDetailSection createNomenclaturalReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        NomenclaturalReferenceDetailSection section = new NomenclaturalReferenceDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public NomenclaturalSourceDetailSection createNomenclaturalReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NomenclaturalSourceDetailSection section = new NomenclaturalSourceDetailSection(this, conversation, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
@@ -2439,8 +2446,8 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style, boolean isNomenclatural){
-        TeamDetailElement element = new TeamDetailElement(this, parentElement, style, isNomenclatural);
+    public TeamDetailElement createTeamDetailElement(ICdmFormElement parentElement, int style, boolean isNomenclatural, boolean isCollectorTeam){
+        TeamDetailElement element = new TeamDetailElement(this, parentElement, style, isNomenclatural, isCollectorTeam);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -2468,9 +2475,14 @@ public class CdmFormFactory extends FormToolkit {
         addAndAdaptElement(parentElement, element);
         return element;
     }
+    public ReferenceDetailElement createNomenclaturalReferenceDetailElement(ICdmFormElement parentElement, int style){
+        ReferenceDetailElement element = new ReferenceDetailElement(this, parentElement, true, style);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
 
-    public NomenclaturalReferenceDetailElement createNomenclaturalReferenceDetailElement(ICdmFormElement parentElement, int style){
-        NomenclaturalReferenceDetailElement element = new NomenclaturalReferenceDetailElement(this, parentElement, style);
+    public NomenclaturalSourceDetailElement createNomenclaturalSourceDetailElement(ICdmFormElement parentElement, int style){
+        NomenclaturalSourceDetailElement element = new NomenclaturalSourceDetailElement(this, parentElement, style);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -2630,8 +2642,8 @@ public class CdmFormFactory extends FormToolkit {
     }
 
     //--------EntityCollectionSection----------
-    public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural){
-        TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style, isNomenclatural);
+    public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural, boolean isCollector){
+        TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style, isNomenclatural, isCollector);
         addAndAdaptSection(parentElement, section);
         return section;
     }
@@ -2975,7 +2987,11 @@ public class CdmFormFactory extends FormToolkit {
             if (parentElement instanceof TeamMemberSection){
                 isNomenclatural = ((TeamMemberSection) parentElement).isNomenclaturalTeam();
             }
-            element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style, isNomenclatural);
+            if (isNomenclatural){
+               element = new NomenclaturalTeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
+            }else{
+               element = new TeamMemberElement(this, parentElement, (Person) entity, removeListener, style);
+            }
         } else if (entity instanceof Credit) {
             element = new CreditElement(this, parentElement, (Credit) entity, removeListener, style);
         } else if (entity instanceof Extension) {
@@ -3164,7 +3180,11 @@ public class CdmFormFactory extends FormToolkit {
             element = new InapplicableIfCollectionElement(this, parentElement, (FeatureState) entity, removeListener, backgroundColor, style);
         } else if (entity instanceof FeatureState && parentElement instanceof OnlyApplicableIfEntityCollectionSectionForNode) {
             element = new OnlyApplicableIfCollectionElement(this, parentElement, (FeatureState) entity, removeListener, backgroundColor, style);
-        }
+        } else if (entity instanceof FeatureStateDto && parentElement instanceof InapplicableIfEntityCollectionSection) {
+               element = new InapplicableIfCollectionElementForDto(this, parentElement, (FeatureStateDto) entity, removeListener, backgroundColor, style);
+           } else if (entity instanceof FeatureStateDto && parentElement instanceof OnlyApplicableIfEntityCollectionSection) {
+               element = new OnlyApplicableIfCollectionElementForDto(this, parentElement, (FeatureStateDto) entity, removeListener, backgroundColor, style);
+           }
 
         //check for parent section when entity is null
         //this happens when AbstractUnboundEntityCollectionSection is used
@@ -3272,6 +3292,23 @@ public class CdmFormFactory extends FormToolkit {
         parentElement.addElement(element);
         return element;
     }
+    public CollectorSelectionElement createCollectorSelectionElement(ICdmFormElement parentElement, String labelString, AgentBase selection, int mode,
+          int style) {
+       CollectorSelectionElement element = new CollectorSelectionElement(this, parentElement, 
+              labelString, selection, mode, style);
+      adapt(element);
+      parentElement.addElement(element);
+      return element;
+    }
+    
+    public CollectorSelectionElement createCollectorSelectionElement(ICdmFormElement parentElement, String labelString, AgentBase team, Person member, int mode,
+            int style) {
+       CollectorSelectionElement element = new CollectorSelectionElement(this, parentElement, 
+                labelString, team, member, mode, style);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+      }
 
     public CommonNameReferenceSelectionElement createCommonNameReferenceSelectionElement(ICdmFormElement parentElement, String labelString, Reference selection, int mode,
           int style) {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/NomenclaturalTeamMemberElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/NomenclaturalTeamMemberElement.java
new file mode 100644 (file)
index 0000000..5d6f4de
--- /dev/null
@@ -0,0 +1,30 @@
+package eu.etaxonomy.taxeditor.ui.section.agent;
+
+import org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+public class NomenclaturalTeamMemberElement extends TeamMemberElement {
+
+       public NomenclaturalTeamMemberElement(CdmFormFactory cdmFormFactory, AbstractFormSection section, Person entity,
+                       SelectionListener removeListener, int style) {
+               super(cdmFormFactory, section, entity, removeListener, style);
+               
+       }
+
+       @Override
+       public void createControls(ICdmFormElement element, int style) {
+               selection_person = formFactory
+                               .createSelectionElementWithAbbreviatedTitle(Person.class,getConversationHolder(),
+                                       this, "Person", null,
+                                               EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE,
+                                               style);
+               if (entity != null){
+                       setEntity(entity);
+               }
+       }
+}
index 87c1e922ee7221708ac3816108b189e5d167451e..f7c9e820861ac548dd1e955c7ce3454f1373afcf 100644 (file)
@@ -34,14 +34,16 @@ public class TeamDetailElement
 
        private TeamMemberSection section_teamMembers;
        private boolean isNomenclaturalTeam;
-
+       private boolean isCollectorTeam;
+       
        /**
         * Constructor for TeamDetailElement.
         */
        public TeamDetailElement(CdmFormFactory cdmFormFactory,
-                       ICdmFormElement formElement, int style, boolean isNomenclatural) {
+                       ICdmFormElement formElement, int style, boolean isNomenclatural, boolean isCollector) {
                super(cdmFormFactory, formElement);
                this.isNomenclaturalTeam = isNomenclatural;
+               this.isCollectorTeam = isCollector;
        }
 
     @Override
@@ -57,7 +59,7 @@ public class TeamDetailElement
                 "Collector Title", entity.getCollectorTitleCache(), entity.isProtectedCollectorTitleCache(),
                 CacheRelevance.CACHE2, style);
         hasAdditionalMembers = formFactory.createCheckbox(formElement, "Additional Members", entity.isHasMoreMembers(), style);
-        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(TeamMemberSection.class, entity.getClass().getCanonicalName(), true), isNomenclaturalTeam);
+        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(TeamMemberSection.class, entity.getClass().getCanonicalName(), true), isNomenclaturalTeam, isCollectorTeam);
         section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
 
         //cache relevance
index a308a6a9d908ec414c105c6044cfea74a6d299f1..37b3e467620d9c2ae05eb3c10d24eec3017c2512 100644 (file)
@@ -28,6 +28,9 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
 
     private boolean isNomenclaturalTeam;
+    private boolean isCollectorTeam;
+
+       
 
        /**
         * <p>Constructor for TeamDetailSection.</p>
@@ -54,7 +57,7 @@ public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
         */
        @Override
        protected AbstractCdmDetailElement<Team> createCdmDetailElement(AbstractCdmDetailSection<Team> parentElement, int style) {
-           return formFactory.createTeamDetailElement(parentElement, style, isNomenclaturalTeam);
+           return formFactory.createTeamDetailElement(parentElement, style, isNomenclaturalTeam, isCollectorTeam);
        }
 
        public boolean isNomenclaturalTeam(){
@@ -64,4 +67,12 @@ public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
        public void setIsNomenclaturalTeam(boolean isNomenclaturalTeam){
            this.isNomenclaturalTeam = isNomenclaturalTeam;
        }
+       
+       public boolean isCollectorTeam() {
+               return isCollectorTeam;
+       }
+
+       public void setCollectorTeam(boolean isCollectorTeam) {
+               this.isCollectorTeam = isCollectorTeam;
+       }
 }
index 785c11d2c7f0f0d6a47213653f6bc61a3138fa1f..9c9d0d5bf66ac0cd1eaafda5ed84485bfef5cf0c 100644 (file)
@@ -25,11 +25,11 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  */
 public class TeamMemberElement extends AbstractEntityCollectionElement<Person> {
 
-       private EntitySelectionElement<Person> selection_person;
+       protected EntitySelectionElement<Person> selection_person;
 
        public TeamMemberElement(CdmFormFactory cdmFormFactory,
                        AbstractFormSection section, Person entity,
-                       SelectionListener removeListener, int style, boolean isNomenclatural) {
+                       SelectionListener removeListener, int style) {
                super(cdmFormFactory, section, entity, removeListener, null, style);
        }
 
index 70e0fe388b8e7b8c26d3f98afa5327efa7392875..1c439c76028086b2301019ca205ef3b510b03684 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.swt.graphics.Color;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CollectorSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.NomenclaturalPersonAuthorSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.PersonSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CacheRelevance;
@@ -38,6 +39,7 @@ public class TeamMemberSection
         implements ICacheRelevantFormElement {
 
     private boolean isNomenclaturalTeam = false;
+    private boolean isCollectorTeam = false;
 
     private CacheRelevanceHelper cacheRelevanceHelper = new CacheRelevanceHelper();
 
@@ -49,9 +51,10 @@ public class TeamMemberSection
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param style a int.
         */
-       public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural) {
+       public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural, boolean isCollectorTeam) {
                super(cdmFormFactory, conversation, parentElement, null, style);
                isNomenclaturalTeam = isNomenclatural;
+               this.isCollectorTeam = isCollectorTeam;
        }
 
        @Override
@@ -69,7 +72,9 @@ public class TeamMemberSection
            Person selection = null;
            if (isNomenclaturalTeam){
                selection = NomenclaturalPersonAuthorSelectionDialog.select(getShell(), null, true);
-           }else{
+           }else if(isCollectorTeam){
+               selection = CollectorSelectionDialog.select(getShell(), null, true);
+               }else{
                selection = PersonSelectionDialog.select(getShell(), null);
            }
 
index a2d9c70d22164297c94a71d71899a4791ae50918..13e64eae84e8cec23c9bace0341312a9dd0811d9 100644 (file)
@@ -30,6 +30,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
 
     private boolean isNomenclaturalTeam = false;
+    private boolean isCollectorTeam = false;
 
        /**
         * <p>
@@ -46,17 +47,18 @@ public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
         *            a {@link eu.etaxonomy.cdm.model.agent.Team} object.
         */
        public TeamWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Team entity, boolean isNomenclaturalTeam) {
+                       ConversationHolder conversation, Team entity, boolean isNomenclaturalTeam, boolean isCollectorTeam) {
                super(formFactory, conversation, entity);
                setTitle("Team");
                setIsNomenclaturalTeam(isNomenclaturalTeam);
+               setIsCollectorTeam(isCollectorTeam);
        }
 
        /** {@inheritDoc} */
        @Override
        public AbstractCdmDetailElement<Team> createElement(
                        ICdmFormElement rootElement) {
-               TeamDetailElement teamElement = formFactory.createTeamDetailElement(rootElement, SWT.NULL, isNomenclaturalTeam);
+               TeamDetailElement teamElement = formFactory.createTeamDetailElement(rootElement, SWT.NULL, isNomenclaturalTeam, isCollectorTeam);
                teamElement.setEntity(entity);
                return teamElement;
        }
@@ -71,4 +73,12 @@ public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
     public void setIsNomenclaturalTeam(boolean isNomenclaturalTeam){
         this.isNomenclaturalTeam = isNomenclaturalTeam;
     }
+    
+    public boolean isCollectorTeam() {
+        return isCollectorTeam;
+    }
+
+    public void setIsCollectorTeam(boolean isCollectorTeam){
+        this.isCollectorTeam = isCollectorTeam;
+    }
 }
index beb86153eaafa4aa7a15c4c958f96adb371f710e..d483c263b2ada058d107ec20e3fb4017fde55941 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.description;
 
 import org.eclipse.swt.SWT;
@@ -21,7 +20,6 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
@@ -29,10 +27,8 @@ import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractOriginalSourceElem
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- *
  * @author n.hoffmann
  * @created Nov 16, 2009
- * @version 1.0
  */
 public class DescriptionElementSourceElement extends
                AbstractOriginalSourceElement<DescriptionElementSource> implements
@@ -48,7 +44,6 @@ public class DescriptionElementSourceElement extends
                cdmFormFactory.createSelectionArbitrator(this);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
                super.createControls(formElement, style);
@@ -62,11 +57,8 @@ public class DescriptionElementSourceElement extends
         if (getEntity() != null){
                setEntity(entity);
         }
-   
        }
 
-
-       /** {@inheritDoc} */
        @Override
        public void setEntity(DescriptionElementSource entity) {
                super.setEntity(entity);
@@ -77,7 +69,7 @@ public class DescriptionElementSourceElement extends
                        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
                            text_idNamespace.setText(entity.getIdNamespace());
                        }
-       
+
                        selection_reference.setEntity(entity.getCitation());
                        text_referenceDetail.setText(entity.getCitationMicroReference());
                        text_originaleNameString.setText(entity.getOriginalNameString());
@@ -85,16 +77,11 @@ public class DescriptionElementSourceElement extends
                        combo_origsourcetype.setSelection(entity.getType());
                        externalLinks.setEntity(entity);
                }
-               
        }
 
-       /** {@inheritDoc} */
        @Override
-       public void setSelected(boolean selected) {
-
-       }
+       public void setSelected(boolean selected) {}
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == text_idInSource) {
@@ -115,16 +102,11 @@ public class DescriptionElementSourceElement extends
                else if(eventSource == combo_origsourcetype){
                    getEntity().setType(combo_origsourcetype.getSelection());
                }
-
        }
-       
+
        @Override
        public void setEnabled(boolean enabled) {
                super.setEnabled(enabled);
                externalLinks.setEnabled(isEnabled);
-               
        }
-
-       
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/AbstractApplicableElementForDto.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/AbstractApplicableElementForDto.java
new file mode 100644 (file)
index 0000000..698497c
--- /dev/null
@@ -0,0 +1,93 @@
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.TermManager;
+import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author pplitzner
+ * @since Aug 16, 2019
+ *
+ */
+public abstract class AbstractApplicableElementForDto extends AbstractEntityCollectionElement<FeatureStateDto> {
+
+    protected TermComboElement<State> comboState;
+    protected EntitySelectionElement<Feature> selectFeature;
+    
+
+    public AbstractApplicableElementForDto(CdmFormFactory formFactory, AbstractFormSection section, FeatureStateDto entity,
+            SelectionListener removeListener, Color backgroundColor, int style) {
+        super(formFactory, section, entity, removeListener, backgroundColor, style);
+
+    }
+
+    @Override
+    public void createControls(ICdmFormElement element, int style) {
+        selectFeature = formFactory.createSelectionElement(Feature.class, element, "Feature", null, EntitySelectionElement.DELETABLE, SWT.NONE);
+        comboState = formFactory.createDefinedTermComboElement(Collections.EMPTY_LIST, element, getComboLabel(), null, style);
+        setFeatureState();
+    }
+
+       private void setFeatureState() {
+               Feature feature = (Feature)CdmStore.getService(ITermService.class).load(entity.getFeature().getUuid());
+               selectFeature.setEntity(feature);
+               List<UUID> termList = new ArrayList<>();
+               termList.add(entity.getState().getUuid());
+               List<State> terms =  CdmStore.getTermManager().getTerms(termList, TermType.State);
+               if (terms.size() == 1){
+                       comboState.setSelection(terms.get(0));
+               }
+        
+       }
+
+    protected abstract String getComboLabel();
+
+    @Override
+    public void setEntity(FeatureStateDto entity) {
+        this.entity = entity;
+        if (selectFeature != null){
+               setFeatureState();
+        }
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+    }
+    
+    @Override
+    public void setEnabled(boolean enabled){
+       super.setEnabled(enabled);
+       this.comboState.setEnabled(false);
+       this.selectFeature.setEnabled(false);
+    }
+}
index 1b3753dc529bc7a18b955537ba876e736fd9ec34..1161bb0d47f354666546f59daa31839082a53d23 100644 (file)
@@ -104,6 +104,7 @@ public class CharacterNodeDetailElement extends AbstractCdmDetailElement<TermNod
                 formElement, StoreUtil.getSectionStyle(OnlyApplicableIfEntityCollectionSection.class, entity.getTerm().getClass().getCanonicalName()));
         sectionOnlyApplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionOnlyApplicableIf.setEntity(entity);
+        
     }
 
 
@@ -125,7 +126,10 @@ public class CharacterNodeDetailElement extends AbstractCdmDetailElement<TermNod
         super.setEntity(entity);
         characterDetails.setEntity(entity.getTerm());
         setEnabled(TermBasePropertyTester.isModifiable(entity));
+        
     }
+    
+    
 
        @Override
        public void handleEvent(Object eventSource) {
index bbb6b7262b7ddb6dd88d06d86359b7648aa53b85..4e1da7a719e5ec65b77369e8537212fbcbc22a67 100755 (executable)
@@ -32,22 +32,6 @@ public class CharacterNodeDtoDetailElement extends AbstractCdmDetailElement<Term
     private CharacterDtoDetailSection characterDetails;
 
     private ICdmFormElement parentFormElement;
-//
-//    protected RepresentationElement element_Representation;
-//
-//    private TermComboElement<DefinedTerm> comboStructuralModifier;
-//
-//    private CheckboxElement supportsQuantitativeData;
-//
-//    private CheckboxElement supportsCategoricalData;
-//
-//    private StateVocabularyCollectionSection sectionStateVocabularies;
-//
-//    private MeasurementUnitCollectionSection sectionMeasurementUnits;
-//
-//    private StatisticalMeasureCollectionSection sectionStatisticalMeasures;
-//
-//    private RecommendedModifierVocabulariesCollectionSection sectionModifierVocabularies;
 
     private InapplicableIfEntityCollectionSection sectionInapplicableIf;
     private OnlyApplicableIfEntityCollectionSection sectionOnlyApplicableIf;
@@ -66,39 +50,6 @@ public class CharacterNodeDtoDetailElement extends AbstractCdmDetailElement<Term
            addElement(characterDetails);
            addControl(characterDetails);
            characterDetails.setEntity((CharacterDto)entity.getTerm());
-//         element_Representation = formFactory.createTranslatableRepresentationElement(formElement,  entity.getTerm().getPreferredRepresentation(CdmStore.getDefaultLanguage()),entity.getTerm(), 100, style, true);
-//
-//         createText(formElement, "Structure", getStructureText(entity.getTerm()));
-//         createText(formElement, "Property", getPropertyText(entity.getTerm()));
-//
-//        comboStructuralModifier = formFactory.createDefinedTermComboElement(TermType.StructureModifier, formElement, "Structural Modifier", entity.getTerm().getStructureModifier(), style);
-//
-//         supportsQuantitativeData = formFactory.createCheckbox(formElement, "Supports Quantitative Data", entity.getTerm().isSupportsQuantitativeData(), style);
-//         supportsCategoricalData = formFactory.createCheckbox(formElement, "Supports Categorical Data", entity.getTerm().isSupportsCategoricalData(), style);
-//
-//        if (supportsCategoricalData.getSelection()) {
-//            sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),
-//                    parentFormElement, StoreUtil.getSectionStyle(StateVocabularyCollectionSection.class, entity.getClass().getCanonicalName(), true));
-//            sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-//            sectionStateVocabularies.setEntity(entity.getTerm());
-//        }
-//        if (supportsQuantitativeData.getSelection()) {
-//            sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),
-//                    parentFormElement, StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, entity.getClass().getCanonicalName(), true));
-//            sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-//            sectionMeasurementUnits.setEntity(entity.getTerm());
-//
-//            sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(),
-//                    parentFormElement, StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, entity.getClass().getCanonicalName(), true));
-//            sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-//            sectionStatisticalMeasures.setEntity(entity.getTerm());
-//        }
-//        if (supportsCategoricalData.getSelection() || supportsQuantitativeData.getSelection()) {
-//            sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
-//                    getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, entity.getClass().getCanonicalName(), true));
-//            sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-//            sectionModifierVocabularies.setEntity(entity.getTerm());
-//        }
 
         // applicability
         sectionInapplicableIf = formFactory.createInapplicableIfEntityCollectionSection(getConversationHolder(),
index f9f107d291ad45432932603fa2826371871f20c8..88be253f90434ab53676b61f04e9422928b43c2b 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.feature;
 import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 
@@ -47,5 +48,9 @@ public class FeatureStateWizard extends Wizard {
     FeatureState getFeatureState(){
         return page.getFeatureState();
     }
+    
+    FeatureStateDto getFeatureStateDto(){
+        return page.getFeatureStateDto();
+    }
 
 }
index 9c3ff96ce1366f27df5597f9de39081265a03192..44cb4e2f2bbcf3672a79aafa1b8441bf183ddc5c 100644 (file)
@@ -35,6 +35,9 @@ import eu.etaxonomy.cdm.model.description.State;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.model.ImageResources;
@@ -107,10 +110,12 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
         updateFeatureCombo();
     }
 
+    FeatureStateDto getFeatureStateDto(){
+        return new FeatureStateDto(null, FeatureDto.fromFeature(comboFeature.getSelection()), TermDto.fromTerm(selectedState));
+    }
     FeatureState getFeatureState(){
         return FeatureState.NewInstance(comboFeature.getSelection(), selectedState);
     }
-
     private void updateFeatureCombo(){
         List<Feature> features = new ArrayList<>();
         UUID parentUuid = termNode.getParentUuid();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/InapplicableIfCollectionElementForDto.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/InapplicableIfCollectionElementForDto.java
new file mode 100644 (file)
index 0000000..5fdb7d3
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ *
+ */
+public class InapplicableIfCollectionElementForDto extends AbstractApplicableElementForDto {
+
+    public InapplicableIfCollectionElementForDto(CdmFormFactory formFactory, AbstractFormSection section, FeatureStateDto entity,
+            SelectionListener removeListener, Color backgroundColor, int style) {
+        super(formFactory, section, entity, removeListener, backgroundColor, style);
+        
+    }
+
+    @Override
+    protected String getComboLabel() {
+        // TODO Auto-generated method stub
+        return "Inapplicable if";
+    }
+    
+   
+
+}
index 0fb7ce43c29197af7e423e89bf1b51682fd2e57a..230b9727a22d171a75ab2ebe1b611be76b1aa5e4 100644 (file)
@@ -14,32 +14,33 @@ import java.util.Comparator;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.wizard.WizardDialog;
-
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDtoComparator;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+
 
 /**
  * @author pplitzner
  * @date 06.03.2018
  *
  */
-public class InapplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureState>{
+public class InapplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureStateDto>{
 
     public InapplicableIfEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation,
             ICdmFormElement parentElement, int style) {
         super(formFactory, conversation, parentElement, "Inapplicable If", style);
+        
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public Collection<FeatureState> getCollection(TermNodeDto entity) {
+    public Collection<FeatureStateDto> getCollection(TermNodeDto entity) {
         return entity.getInapplicableIf();
     }
 
@@ -47,8 +48,8 @@ public class InapplicableIfEntityCollectionSection extends AbstractEntityCollect
      * {@inheritDoc}
      */
     @Override
-    public Comparator<FeatureState> getComparator() {
-        return new DefaultCdmBaseComparator<>();
+    public Comparator<FeatureStateDto> getComparator() {
+       return new FeatureStateDtoComparator();
     }
 
 
@@ -56,12 +57,12 @@ public class InapplicableIfEntityCollectionSection extends AbstractEntityCollect
      * {@inheritDoc}
      */
     @Override
-    public FeatureState createNewElement() {
+    public FeatureStateDto createNewElement() {
         FeatureStateWizard wizard = new FeatureStateWizard(getEntity(), formFactory);
         WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
         int status = dialog.open();
         if(status == IStatus.OK) {
-            return wizard.getFeatureState();
+            return wizard.getFeatureStateDto();
         }
         return null;
     }
@@ -70,7 +71,7 @@ public class InapplicableIfEntityCollectionSection extends AbstractEntityCollect
      * {@inheritDoc}
      */
     @Override
-    public void addElement(FeatureState element) {
+    public void addElement(FeatureStateDto element) {
         getEntity().getInapplicableIf().add(element);
     }
 
@@ -78,7 +79,7 @@ public class InapplicableIfEntityCollectionSection extends AbstractEntityCollect
      * {@inheritDoc}
      */
     @Override
-    public FeatureState addExisting() {
+    public FeatureStateDto addExisting() {
         return null;
     }
 
@@ -94,7 +95,7 @@ public class InapplicableIfEntityCollectionSection extends AbstractEntityCollect
      * {@inheritDoc}
      */
     @Override
-    public void removeElement(FeatureState element) {
+    public void removeElement(FeatureStateDto element) {
         getEntity().getInapplicableIf().remove(element);
     }
 
index fbfe0d2b71120117ff64acc81362cc5278d1a878..4ab5fd4bb496bd3d8616e0b6a308222d92f90e07 100755 (executable)
@@ -18,6 +18,7 @@ import org.eclipse.jface.wizard.WizardDialog;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.FeatureState;
 import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/OnlyApplicableIfCollectionElementForDto.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/OnlyApplicableIfCollectionElementForDto.java
new file mode 100644 (file)
index 0000000..ec34679
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ *
+ */
+public class OnlyApplicableIfCollectionElementForDto extends AbstractApplicableElementForDto {
+
+    public OnlyApplicableIfCollectionElementForDto(CdmFormFactory formFactory, AbstractFormSection section,
+            FeatureStateDto entity, SelectionListener removeListener, Color backgroundColor, int style) {
+        super(formFactory, section, entity, removeListener, backgroundColor, style);
+        
+    }
+
+    @Override
+    protected String getComboLabel() {
+        return "Only applicable if";
+    }
+
+
+}
index 39cf5e7ed379bd7c11acfd8340fa642c2f0c9e6e..4001c3ce183dd07955043d852981522e0ce6d041 100644 (file)
@@ -16,19 +16,21 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.wizard.WizardDialog;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.description.FeatureState;
+
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDtoComparator;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+
 
 /**
  * @author pplitzner
  * @date 06.03.2018
  *
  */
-public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureState>{
+public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureStateDto>{
 
     public OnlyApplicableIfEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation,
             ICdmFormElement parentElement, int style) {
@@ -39,7 +41,7 @@ public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityColle
      * {@inheritDoc}
      */
     @Override
-    public Collection<FeatureState> getCollection(TermNodeDto entity) {
+    public Collection<FeatureStateDto> getCollection(TermNodeDto entity) {
         return entity.getOnlyApplicableIf();
     }
 
@@ -47,20 +49,21 @@ public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityColle
      * {@inheritDoc}
      */
     @Override
-    public Comparator<FeatureState> getComparator() {
-        return new DefaultCdmBaseComparator<>();
+    public Comparator<FeatureStateDto> getComparator() {
+        return new FeatureStateDtoComparator();
+             
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public FeatureState createNewElement() {
+    public FeatureStateDto createNewElement() {
         FeatureStateWizard wizard = new FeatureStateWizard(getEntity(), formFactory);
         WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
         int status = dialog.open();
         if(status == IStatus.OK) {
-            return wizard.getFeatureState();
+            return wizard.getFeatureStateDto();
         }
         return null;
     }
@@ -69,7 +72,7 @@ public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityColle
      * {@inheritDoc}
      */
     @Override
-    public void addElement(FeatureState element) {
+    public void addElement(FeatureStateDto element) {
         getEntity().getOnlyApplicableIf().add(element);
     }
 
@@ -77,7 +80,7 @@ public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityColle
      * {@inheritDoc}
      */
     @Override
-    public FeatureState addExisting() {
+    public FeatureStateDto addExisting() {
         return null;
     }
 
@@ -93,7 +96,7 @@ public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityColle
      * {@inheritDoc}
      */
     @Override
-    public void removeElement(FeatureState element) {
+    public void removeElement(FeatureStateDto element) {
         getEntity().getOnlyApplicableIf().remove(element);
     }
 
index cbb0ccfac07daf430a2a2cc9d7c994b015a283c3..32e4da33daffcb08c9b9d1f0e3edb485abdfa1c1 100644 (file)
@@ -7,6 +7,7 @@ import org.springframework.security.core.GrantedAuthority;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
@@ -76,7 +77,7 @@ public class GrantedAuthorityLabelTextProvider {
                                                targetText = CdmStore.getService(IDescriptionService.class).load(uuid).getTitleCache();
                                                break;
                                        case DESCRIPTIONELEMENTBASE:
-                                               targetText = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null).toString();
+                                               targetText = CdmStore.getService(IDescriptionElementService.class).load(uuid, null).toString();
                                                break;
                                        case TAXONBASE:
                                                targetText = CdmStore.getService(ITaxonService.class).load(uuid).getTitleCache();
index 8a0d23200ccd8bd38007015923e0299a161d9b43..caec7352978e993caf296cfe98fa957995c56928 100644 (file)
@@ -11,6 +11,8 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
@@ -32,6 +34,7 @@ import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
@@ -54,7 +57,8 @@ public class DerivedUnitGeneralDetailElement extends
        private PointElement element_point;
        private NumberWithLabelElement number_elevation;
        private TimePeriodElement element_date;
-       private EntitySelectionElement<AgentBase> selection_collector;
+       private CollectorSelectionElement selection_collector;
+       private CollectorSelectionElement selection_primary_collector;
        private TextWithLabelElement text_collectingNumber;
        private EntitySelectionElement<Collection> selection_collection;
        private TextWithLabelElement text_accessionNumber;
@@ -99,10 +103,18 @@ public class DerivedUnitGeneralDetailElement extends
                    element_date = formFactory.createTimePeriodElement(formElement, "Date",
                            entity.getGatheringPeriod(), style);
                    selection_collector = formFactory
-                           .createSelectionElement(AgentBase.class,//getConversationHolder(),
+                           .createCollectorSelectionElement(
                                    formElement, "Collector",
                                    entity.getCollector(), EntitySelectionElement.ALL,
                                    style);
+                   selection_primary_collector = formFactory
+                           .createCollectorSelectionElement(
+                                   formElement, "Primary collector",
+                                   entity.getCollector(), entity.getPrimaryCollector(), EntitySelectionElement.ALL,
+                                   style);
+               if (!(entity.getCollector() instanceof Team)){
+                       selection_primary_collector.setEnabled(false);
+                   }
                    text_collectingNumber = formFactory.createTextWithLabelElement(formElement,
                            "Collecting number", entity.getFieldNumber(), style);
                }
@@ -138,7 +150,14 @@ public class DerivedUnitGeneralDetailElement extends
                        getEntity().setGatheringPeriod(element_date.getTimePeriod());
                } else if (eventSource == selection_collector) {
                        getEntity().setCollector(selection_collector.getSelection());
-               } else if (eventSource == text_collectingNumber) {
+                        getEntity().setCollector(selection_collector.getSelection());
+                if (getEntity().getCollector() instanceof Team){
+                        selection_primary_collector.setCollectorTeam((Team)getEntity().getCollector());
+                }
+                       selection_primary_collector.setEnabled(getEntity().getCollector() instanceof Team);
+               } else if (eventSource == selection_primary_collector) {
+                       getEntity().setPrimaryCollector((Person)selection_primary_collector.getSelection());
+               }else if (eventSource == text_collectingNumber) {
                        getEntity().setFieldNumber(text_collectingNumber.getText());
                }
                  else if (eventSource == selection_collection) {
index 10a5e1e598b53d60b1b0a8f2aafa751e486fa6b5..056073ebe144221616c83476c04dd74d8a17a630 100644 (file)
@@ -8,12 +8,20 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -29,6 +37,7 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.selection.CollectorSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
@@ -45,7 +54,8 @@ public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElemen
     private PointElement element_point;
     private NumberWithLabelElement number_elevation;
     private TimePeriodElement element_date;
-    private EntitySelectionElement<AgentBase> selection_collector;
+    private CollectorSelectionElement selection_collector;
+    private CollectorSelectionElement selection_primary_collector;
     private TextWithLabelElement text_collectingNumber;
     private GatheringEventUnitElement element_elevation;
     private CheckboxElement checkIsPublish;
@@ -79,8 +89,15 @@ public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElemen
                                formElement, "Elevation : ", entity, MinMaxTextSection.UnitType.ELEVATION,  style);
 
         element_date = formFactory.createTimePeriodElement(formElement, "Date", entity.getGatheringPeriod(), style);
-        selection_collector = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
-                formElement, "Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
+        selection_collector = formFactory.createCollectorSelectionElement(formElement, "Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
+        selection_primary_collector = formFactory
+                   .createCollectorSelectionElement(
+                           formElement, "Primary collector",
+                           entity.getCollector(), entity.getPrimaryCollector(), EntitySelectionElement.ALL,
+                           style);
+        if (!(entity.getCollector() instanceof Team)){
+               selection_primary_collector.setEnabled(false);
+           }
         text_collectingNumber = formFactory.createTextWithLabelElement(formElement, "Collecting number",
                 entity.getFieldNumber(), style);
         checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.innerFieldUnit().isPublish(), style);
@@ -104,6 +121,16 @@ public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElemen
             getEntity().setGatheringPeriod(element_date.getTimePeriod());
         } else if (eventSource == selection_collector) {
             getEntity().setCollector(selection_collector.getSelection());
+            
+            if (getEntity().getCollector() instanceof Team){
+               selection_primary_collector.setCollectorTeam((Team)getEntity().getCollector());
+            }else{
+               selection_primary_collector.setEntity(null);
+            }
+            selection_primary_collector.setEnabled((getEntity().getCollector() instanceof Team));
+            
+        } else if (eventSource == selection_primary_collector) {
+            getEntity().setPrimaryCollector((Person)selection_primary_collector.getSelection());
         } else if (eventSource == text_collectingNumber) {
             getEntity().setFieldNumber(text_collectingNumber.getText());
         } else if (eventSource == combo_specorobstype) {
@@ -115,4 +142,18 @@ public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElemen
         toggleableText_titleCache.setText(getEntity().getTitleCache());
 
     }
+    protected void updateControlStates(){
+        if (getEntity() != null ){
+            enabled = enabled && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud);
+        }else{
+            enabled = true;
+        }
+        Set<Object> except = new HashSet<>(); 
+        if (!selection_primary_collector.isEnabled() && enabled){
+               except.add(selection_primary_collector);
+        }
+        setEnabled(enabled, except);
+        
+    }
+
 }
\ No newline at end of file
@@ -23,7 +23,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @author n.hoffmann
  * @created Mar 12, 2010
  */
-public class NomenclaturalReferenceDetailElement extends
+public class NomenclaturalSourceDetailElement extends
                AbstractCdmDetailElement<TaxonName> {
 
     private OriginalSourceElement sourceElement;
@@ -42,7 +42,7 @@ public class NomenclaturalReferenceDetailElement extends
         * @param style
         *            a int.
         */
-       public NomenclaturalReferenceDetailElement(CdmFormFactory cdmFormFactory,
+       public NomenclaturalSourceDetailElement(CdmFormFactory cdmFormFactory,
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
        }
@@ -28,7 +28,7 @@ import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
  * @author n.hoffmann
  * @created Mar 12, 2010
  */
-public class NomenclaturalReferenceDetailSection extends
+public class NomenclaturalSourceDetailSection extends
                AbstractCdmDetailSection<TaxonName>  implements ITaxonBaseDetailSection{
 
        private TaxonBase<?> taxonBase;
@@ -42,7 +42,7 @@ public class NomenclaturalReferenceDetailSection extends
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
-       public NomenclaturalReferenceDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+       public NomenclaturalSourceDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
                        ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
                super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
        }
@@ -81,6 +81,6 @@ public class NomenclaturalReferenceDetailSection extends
        @Override
        protected AbstractCdmDetailElement<TaxonName> createCdmDetailElement(
                        AbstractCdmDetailSection<TaxonName> parentElement, int style) {
-           return formFactory.createNomenclaturalReferenceDetailElement(parentElement, style);
+           return formFactory.createNomenclaturalSourceDetailElement(parentElement, style);
        }
 }
index 7062c0d373057394772ce78e20eac0d33a942337..36dd271f2456b0f65aed975dfe8ac3bcd96d1ab7 100755 (executable)
@@ -33,11 +33,8 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithAbbreviated
 public class NomenclaturalSourceElement extends OriginalSourceElement<NomenclaturalSource> {
 
     private EntitySelectionElementWithAbbreviatedTitle<Reference> selection_NomRef;
-    protected String label = "Source";
-    protected CdmBase cdmEntity;
-
     protected EntitySelectionElement<TaxonName> select_nameUsedInSource;
-    protected ExternalLinksSection externalLinks;
+    
 
     public NomenclaturalSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement, CdmBase cdmEntity,
             String label) {
index f7721f754826f3531b5fb2e9a061fb5c6fb3da74..418fad5ab02873255b7973e8177b1e7732c2b380 100644 (file)
@@ -48,7 +48,11 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElement<Reference>
                implements IErrorIntolerableElement, IExceptionHandler {
 
-    private ToggleableTextElement toggleableAbbrevCache;
+       boolean isNomenclaturalReference = false;
+       
+    
+
+       private ToggleableTextElement toggleableAbbrevCache;
 
        private TextWithLabelElement text_edition;
        private TextWithLabelElement text_editor;
@@ -97,6 +101,20 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
        }
+       
+       public ReferenceDetailElement(CdmFormFactory cdmFormFactory,
+                       ICdmFormElement formElement, boolean isNomenclaturalReference, int style) {
+               this(cdmFormFactory, formElement, style);
+               this.isNomenclaturalReference = isNomenclaturalReference;
+               
+       }
+       public boolean isNomenclaturalReference() {
+               return isNomenclaturalReference;
+       }
+
+       public void setNomenclaturalReference(boolean isNomenclaturalReference) {
+               this.isNomenclaturalReference = isNomenclaturalReference;
+       }
 
        @Override
        protected void createControls(ICdmFormElement formElement,
@@ -125,11 +143,19 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                ReferenceType referenceType = entity.getType();
                // author team
                if(referenceType != null && !referenceType.equals(ReferenceType.Journal) && !referenceType.equals(ReferenceType.PrintSeries) ) {
-            selection_authorTeam = formFactory
-                       .createSelectionElement(TeamOrPersonBase.class,
-                               formElement, "Author",
-                                       entity.getAuthorship(),
-                                       EntitySelectionElement.ALL, style);
+                       if (isNomenclaturalReference){
+                               selection_authorTeam = formFactory
+                               .createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,getConversationHolder(),
+                                       formElement, "Author",
+                                               entity.getAuthorship(),
+                                               EntitySelectionElement.ALL, style);
+                       }else{
+                   selection_authorTeam = formFactory
+                               .createSelectionElement(TeamOrPersonBase.class,
+                                       formElement, "Author",
+                                               entity.getAuthorship(),
+                                               EntitySelectionElement.ALL, style);
+                       }
         }
 
                if (referenceType != null) {
index 2385142046f5dcb8888ac6583d0af3aa0810c2db..bd0ef9f043ac498b3c3bca628d4198e5f9b83e84 100644 (file)
@@ -27,6 +27,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @created Jun 1, 2010
  */
 public class ReferenceWizardPage extends AbstractCdmEntityWizardPage<Reference> implements IExceptionHandler{
+       private boolean isNomenclaturalReference = false;
 
        /**
         * <p>Constructor for ReferenceBaseWizardPage.</p>
@@ -35,9 +36,10 @@ public class ReferenceWizardPage extends AbstractCdmEntityWizardPage<Reference>
         * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param entity a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
         */
-       public ReferenceWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, Reference entity) {
+       public ReferenceWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, Reference entity, boolean isNomenclaturalReference) {
                super(formFactory, conversation, entity);
                setTitle("Reference");
+               this.isNomenclaturalReference = isNomenclaturalReference;
        }
 
        @Override
@@ -47,7 +49,7 @@ public class ReferenceWizardPage extends AbstractCdmEntityWizardPage<Reference>
 
        @Override
     public AbstractCdmDetailElement<Reference> createElement(ICdmFormElement rootElement){
-               ReferenceDetailElement referenceElement = formFactory.createReferenceDetailElement(rootElement, SWT.NULL);
+               ReferenceDetailElement referenceElement = formFactory.createNomenclaturalReferenceDetailElement(rootElement,  SWT.NULL);
                referenceElement.addExceptionHandler(this);
                referenceElement.setEntity(entity);
                referenceElement.setWarnForReferencingObjectsVisible(true);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/CollectorSelectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/CollectorSelectionElement.java
new file mode 100644 (file)
index 0000000..95cb2b6
--- /dev/null
@@ -0,0 +1,79 @@
+package eu.etaxonomy.taxeditor.ui.selection;
+
+import org.eclipse.swt.events.SelectionEvent;
+
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+
+public class CollectorSelectionElement extends EntitySelectionElement<AgentBase> {
+       
+       Team collectorTeam;
+       /**
+     * @param formFactory
+     * @param conversation
+     * @param parentElement
+     * @param clazz
+     * @param labelString
+     * @param entity
+     * @param mode
+     * @param style
+     */
+    public CollectorSelectionElement(CdmFormFactory formFactory,// ConversationHolder conversation,
+            ICdmFormElement parentElement, String labelString, AgentBase entity, int mode, int style) {
+       super(formFactory, //conversation,
+        parentElement, AgentBase.class,
+        labelString, entity, mode, style);
+    }
+    public CollectorSelectionElement(CdmFormFactory formFactory,// ConversationHolder conversation,
+            ICdmFormElement parentElement, String labelString, AgentBase entity, Person primaryCollector, int mode, int style) {
+       super(formFactory, //conversation,
+        parentElement, AgentBase.class,
+        labelString, primaryCollector, mode, style);
+       if (entity instanceof Team){
+               collectorTeam = (Team)entity;
+       }
+    }
+
+    @Override
+    protected String getTitle() {
+               if (entity != null){
+                       if (entity instanceof TeamOrPersonBase){
+                               return ((TeamOrPersonBase)entity).getCollectorTitleCache();               
+                       }else{
+                               return entity.getTitleCache();
+                       }
+               }
+               return "";
+       }
+       public Team getCollectorTeam() {
+               return collectorTeam;
+       }
+       public void setCollectorTeam(Team collectorTeam) {
+               this.collectorTeam = collectorTeam;
+       }
+       
+       public void widgetSelected(SelectionEvent e) {
+           if (e.getSource().equals(button_selection) ){
+               AgentBase selection = null;
+               if (this.collectorTeam != null){
+                       selection = SelectionDialogFactory.getSelectionFromDialog(AgentBase.class, getShell(),
+                               collectorTeam, this);
+               }else{          
+                       selection = SelectionDialogFactory.getSelectionFromDialog(AgentBase.class, getShell(),
+                       getEntity(), getParentElement());
+               }
+            setSelectionInternal(selection);
+            if(!getLayoutComposite().isDisposed()){
+                StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+            }
+           }
+       }
+}
index 0479bff0d48ddcdb247937d712a34bb3264e6cbb..222d470b43925a7d66f8e3d1e1e6783cbc2fe8f3 100644 (file)
@@ -97,16 +97,22 @@ public class EditFromSelectionWizard extends Wizard implements
                        IService<CdmBase> service = CdmStore.getService(entity);
                        rootElement = service.load(entity.getUuid());
                }
-               if (rootElement.isInstanceOf(Reference.class)) {
+               if (rootElement.isInstanceOf(Reference.class)&& selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>) {
                        addPage(new ReferenceWizardPage(formFactory,
                                        selectionElement.getConversationHolder(),
-                                       (HibernateProxyHelper.deproxy(rootElement, Reference.class))));
-               } else if (rootElement.isInstanceOf(Team.class) && selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>) {
+                                       HibernateProxyHelper.deproxy(rootElement, Reference.class), true));
+               } else if (rootElement.isInstanceOf(Reference.class) ) {
+                       addPage(new ReferenceWizardPage(formFactory,
+                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Reference.class), false));
+               } else if (rootElement.isInstanceOf(Team.class) && (selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?> )) {
+                       addPage(new TeamWizardPage(formFactory,
+                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), true, false));
+               } else if (rootElement.isInstanceOf(Team.class) && (selectionElement.getClass().equals(CollectorSelectionElement.class)) ){
                        addPage(new TeamWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), true));
-               } else if (rootElement.isInstanceOf(Team.class) && !(selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?>)) {
+                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), false, true));
+               } else if (rootElement.isInstanceOf(Team.class) && (selectionElement instanceof EntitySelectionElement<?>)) {
             addPage(new TeamWizardPage(formFactory,
-                    selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), false));
+                    selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Team.class), false, false));
         } else if (rootElement.isInstanceOf(Person.class)) {
                        addPage(new PersonWizardPage(formFactory,
                                        selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Person.class)));
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/NomenclaturalAuthorTeamSelectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/NomenclaturalAuthorTeamSelectionElement.java
deleted file mode 100644 (file)
index 4602c05..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
- * http://www.e-taxonomy.eu
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * See LICENSE.TXT at the top of this package for the full license terms.
- */
-
-package eu.etaxonomy.taxeditor.ui.selection;
-
-import org.eclipse.swt.events.SelectionEvent;
-
-import eu.etaxonomy.cdm.model.agent.Team;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.NomenclaturalAuthorTeamSelectionDialog;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-
-/**
- * <p>
- * NomenclaturalAuthorTeamSelectionElement class.
- * </p>
- *
- * @author n.hoffmann
- * @created Jun 22, 2010
- * @version 1.0
- */
-public class NomenclaturalAuthorTeamSelectionElement extends
-               EntitySelectionElement<Team> {
-
-       public static final int DEFAULT = EDITABLE | SELECTABLE | DELETABLE;
-
-       /**
-        * <p>
-        * Constructor for NomenclaturalAuthorTeamSelectionElement.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param labelString
-        *            a {@link java.lang.String} object.
-        * @param entity
-        *            a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        * @param style
-        *            a int.
-        */
-       public NomenclaturalAuthorTeamSelectionElement(CdmFormFactory formFactory,//ConversationHolder conversation,
-               ICdmFormElement parentElement,
-                       String labelString, Team entity, int mode, int style) {
-               super(formFactory,// conversation,
-                       parentElement, Team.class, labelString, entity,
-                               mode, style);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       protected String getTitle() {
-               return (entity != null) ? entity.getNomenclaturalTitleCache() : "";
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void widgetSelected(SelectionEvent e) {
-               Team newSelection = NomenclaturalAuthorTeamSelectionDialog.select(
-                               getShell(), //getConversationHolder(),
-                               entity);
-               setSelectionInternal(newSelection);
-       }
-}
index 99b9599d25bf1b88a4d9ed591a22051745796eb5..f24763f552934385ef60b31711dc4dff803161d5 100644 (file)
@@ -26,9 +26,14 @@ import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.commands.ICommandService;
 
+import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.name.NomenclaturalSource;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.persistence.dto.ReferencingObjectDto;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
@@ -197,6 +202,14 @@ public class CdmViewerUtil {
                 uuidAndTitleCache = (UuidAndTitleCache<CdmBase>)o;
             }else if (o instanceof TermNodeDto){
                 uuidAndTitleCache = new UuidAndTitleCache<>(DefinedTermBase.class, ((TermNodeDto)o).getTerm().getUuid(), null, ((TermNodeDto)o).getTerm().getTitleCache());
+            }else if (o instanceof DescriptionBaseDto){
+               if ( ((DescriptionBaseDto)o).getSpecimenDto() != null){
+                       uuidAndTitleCache = new UuidAndTitleCache<>(SpecimenOrObservationBase.class, ((DescriptionBaseDto)o).getSpecimenDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+               }else if (((DescriptionBaseDto)o).getTaxonDto() != null){
+                       uuidAndTitleCache = new UuidAndTitleCache<>(TaxonBase.class, ((DescriptionBaseDto)o).getTaxonDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+               }else {
+                       uuidAndTitleCache = new UuidAndTitleCache<>(TaxonName.class, ((DescriptionBaseDto)o).getNameDto().getUuid(), null, ((DescriptionBaseDto)o).getTitleCache());
+               }
             }else{
                 continue;
             }
index 4ada262b748ad6005b33e297954887bc607629be..a94c375283e74454512bf568fea961a2d5e30a75 100644 (file)
@@ -41,7 +41,7 @@ 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.reference.NomenclaturalSourceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
 
@@ -131,8 +131,8 @@ public class CdmSectionPart<T> extends SectionPart
                                        .setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
                        return true;
                }else if ((input instanceof TaxonRelationship)
-                               && (formSection instanceof NomenclaturalReferenceDetailSection)) {
-                       ((NomenclaturalReferenceDetailSection) formSection)
+                               && (formSection instanceof NomenclaturalSourceDetailSection)) {
+                       ((NomenclaturalSourceDetailSection) formSection)
                                        .setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
                        return true;
                }else if ((input instanceof TaxonRelationship)
index bf6ebfb5127657d5b67afbcd10f86fa4fd066318..fb9c0cda111d7867a7fcc8ac9a6dcc6ae8c3a798 100755 (executable)
@@ -15,11 +15,13 @@ import java.util.Set;
 
 import javax.inject.Inject;
 
+import org.apache.lucene.search.BulkScorer;
 import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.ui.di.UIEventTopic;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.swt.SWT;
 import org.springframework.security.core.GrantedAuthority;
@@ -30,6 +32,7 @@ import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.description.CategoricalData;
 import eu.etaxonomy.cdm.model.description.Character;
@@ -52,6 +55,7 @@ import eu.etaxonomy.cdm.model.permission.CRUD;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.SecundumSource;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
@@ -132,8 +136,9 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadGeneralDetailS
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SingleReadPherogramCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.TissueSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.SecundumSourceSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection;
@@ -209,6 +214,8 @@ public class DetailsViewerE4 extends AbstractCdmDataViewer {
             input = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit) input);
         }
         super.setInput(input);
+        
+        
     }
 
     @Override
@@ -477,9 +484,10 @@ public class DetailsViewerE4 extends AbstractCdmDataViewer {
             requiredCrud = EnumSet.of(CRUD.UPDATE);
         }
         boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getInput()), requiredCrud);
+        TaxonBase<?> taxonBase = (TaxonBase<?>)getInput();
         if (hasPermission){
             // check for subtree permissions as well.
-            TaxonBase<?> taxonBase = (TaxonBase<?>)getInput();
+            
             Taxon acceptedTaxon = null;
             if (taxonBase instanceof Taxon){
                 acceptedTaxon = (Taxon)taxonBase;
@@ -525,14 +533,29 @@ public class DetailsViewerE4 extends AbstractCdmDataViewer {
                 addPart(taxonBaseDetailSection);
             }
         }
+        //TODO: test code for secundum source section
+//        SecundumSourceSection sourceSection = formFactory.createSecundumDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(SecundumSourceSection.class, getInput().getClass().getCanonicalName(), true));
+//        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+//        addPart(sourceSection);
+//        if (taxonBase.getSecSource() == null){
+//            SecundumSource source = SecundumSource.NewSecundumInstance(taxonBase);
+//            taxonBase.setSecSource(source);
+//            sourceSection.setEntity(taxonBase);
+//        }else{
+//             sourceSection.setEntity(taxonBase);
+//        }
+//
+//        if (config != null && !config.isSecEnabled()){
+//             sourceSection.setEnabled(false);
+//        }
         NonViralNameDetailSection nonViralNameSection = formFactory
                 .createNonViralNameDetailSection(getConversationHolder(), parent, this, true,
                         StoreUtil.getSectionStyle(NonViralNameDetailSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         nonViralNameSection.setEnabled(detailsEnabled);
         if (config == null || config.isNomenclaturalReferenceSectionActivated()){
-            NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
-                    StoreUtil.getSectionStyle(NomenclaturalReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
+            NomenclaturalSourceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
+                    StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
             referenceDetailSection.setEnabled(detailsEnabled);
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
             addPart(referenceDetailSection);
@@ -577,8 +600,8 @@ public class DetailsViewerE4 extends AbstractCdmDataViewer {
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
-                StoreUtil.getSectionStyle(NomenclaturalReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        NomenclaturalSourceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
+                StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
@@ -939,8 +962,8 @@ public class DetailsViewerE4 extends AbstractCdmDataViewer {
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
-                StoreUtil.getSectionStyle(NomenclaturalReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        NomenclaturalSourceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
+                StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         addPart(referenceDetailSection);
 
index 098883c4925b9f25eb882b5db10801cc0b39ef26..b0c35c0d867a86f29efd8a2f9ecffe4d787ba938 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.28.1
+Bundle-Version: 5.29.0
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: EDIT
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -30,7 +30,7 @@ Bundle-ClassPath: .,
  lib/unitils-dbunit-3.4.2.jar,
  lib/unitils-spring-3.4.2.jar,
  lib/dbunit-2.4.9.jar,
- lib/junit-4.13.1.jar,
+ lib/junit-4.13.2.jar,
  lib/h2-1.4.200.jar,
  lib/c3p0-0.9.5.2.jar,
  lib/commons-dbcp-1.4.jar,
index 91ea5c82251199a5b8a13c4bd84a8eb9c7066f83..17edaee965f02afb19e938f2de527e855087575d 100644 (file)
@@ -2,7 +2,7 @@ source.. = src/test/java/,\
            src/test/resources/
 bin.includes = META-INF/,\
                .,\
-               lib/junit-4.13.1.jar,\
+               lib/junit-4.13.2.jar,\
                lib/byte-buddy-0.5.1.jar,\
                lib/unitils-core-3.4.2.jar,\
                lib/unitils-database-3.4.2.jar,\
index 206344a3f5218e7a30f463fa0ecd037c1b8942c1..f53e84cd447bc26e262905f54ef14e7154cf6aaa 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
   <artifactId>eu.etaxonomy.taxeditor.test</artifactId>
   <!-- for packaging=eclipse-test-plugin 
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
-        <version>2.4</version>
+        <version>3.2.0</version>
         <executions>
           <execution>
             <id>copy-dependency-jars</id>
         <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
-           <version>4.13.1</version>
+           <version>4.13.2</version>
            <scope>test</scope>
          </dependency>
       <dependency>
index f1a6c57a0d1b78dbdde21693dd04d5a0922bcfdc..45a58486350028c91ea2e972a48d28c4b95e8cfd 100644 (file)
@@ -23,7 +23,6 @@ import eu.etaxonomy.cdm.model.description.PolytomousKey;
 
 /**
  * Class to test the HttpInvoker services exposed by the CDM Sever
- *
  */
 public class HttpInvokerServicesTest extends BaseRemotingTest {
     private static final Logger logger = Logger.getLogger(HttpInvokerServicesTest.class);
@@ -37,14 +36,11 @@ public class HttpInvokerServicesTest extends BaseRemotingTest {
             //getRemoteApplicationController().getDatabaseService();
             String dbSchemaVersion = getRemoteApplicationController().getDatabaseService().getDbSchemaVersion();
             logger.info("dbSchemaVersion is " + dbSchemaVersion);
-
-
         } catch (CdmSourceException e) {
             Assert.fail("pinging database service on active cdm server should not have thrown CdmSourceException");
         }
 
         getRemoteApplicationController().getPolytomousKeyService().list(PolytomousKey.class, null, null, null, null);
-
     }
 
     @Ignore
@@ -62,7 +58,6 @@ public class HttpInvokerServicesTest extends BaseRemotingTest {
         }
 
         CdmApplicationState.setCurrentSecurityContext(context);
-
     }
 
     // should be kept at ignore and only used for manual testing
@@ -72,7 +67,4 @@ public class HttpInvokerServicesTest extends BaseRemotingTest {
     public void testDisableReadTimeout() throws InterruptedException  {
         testService.waitFor((long) 120000.0);
     }
-
-
-
 }
index a1ac7615f6ef58f582b6190a36fea3275e0a797c..89fbcb32bada36086c1df10e7961039620001a75 100644 (file)
@@ -1,12 +1,16 @@
 /**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
 package eu.etaxonomy.taxeditor.newWizard;\r
 \r
-import junit.framework.Assert;\r
-\r
-import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.eclipse.swtbot.swt.finder.waits.Conditions;\r
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;\r
+import org.junit.Assert;\r
 import org.junit.Ignore;\r
 import org.junit.Test;\r
 \r
@@ -14,7 +18,6 @@ import eu.etaxonomy.taxeditor.test.AbstractEditorTest;
 \r
 /**\r
  * @author n.hoffmann\r
- *\r
  */\r
 @Ignore\r
 public class NewTaxonWizardTest extends AbstractEditorTest {\r
@@ -50,8 +53,4 @@ public class NewTaxonWizardTest extends AbstractEditorTest {
 //             bot.waitUntil(Conditions.waitForEditor(WithPartId.withPartId(MultiPageTaxonEditor.ID)));\r
 //             Assert.assertEquals(newTaxonName, bot.activeEditor().getTitle());\r
        }\r
-\r
-\r
-\r
-\r
-}\r
+}
\ No newline at end of file
index 73f12d10ef1269910b305af7bb79d4c591632e1e..a20360cccf334f11c6474fc418fbebc96e2be379 100644 (file)
@@ -103,9 +103,9 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
         taxonNodes.add(taxonNode5);
 
         ceis = new HashSet<>();
-        ceis.add(new CdmEntityIdentifier(taxonNode3.getId(),TaxonNode.class));
-        ceis.add(new CdmEntityIdentifier(taxonNode4.getId(),TaxonNode.class));
-        ceis.add(new CdmEntityIdentifier(taxonNode5.getId(),TaxonNode.class));
+        ceis.add(CdmEntityIdentifier.NewInstance(taxonNode3));
+        ceis.add(CdmEntityIdentifier.NewInstance(taxonNode4));
+        ceis.add(CdmEntityIdentifier.NewInstance(taxonNode5));
 
         UpdateResult result = new UpdateResult();
         result.addUpdatedObject(taxonNode1);
@@ -136,16 +136,16 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
         taxonNodes.add(taxonNode5);
 
         ceis = new HashSet<>();
-        ceis.add(new CdmEntityIdentifier(taxonNode3.getId(),TaxonNode.class));
-        ceis.add(new CdmEntityIdentifier(taxonNode4.getId(),TaxonNode.class));
-        ceis.add(new CdmEntityIdentifier(taxonNode5.getId(),TaxonNode.class));
+        ceis.add(CdmEntityIdentifier.NewInstance(taxonNode3));
+        ceis.add(CdmEntityIdentifier.NewInstance(taxonNode4));
+        ceis.add(CdmEntityIdentifier.NewInstance(taxonNode5));
 
 
         UpdateResult result = new UpdateResult();
         result.addUpdatedObject(taxonNode1);
         result.addUpdatedObject(taxonNode2);
         result.addUpdatedCdmIds(ceis);
-        result.addUpdatedCdmId(new CdmEntityIdentifier(46,TaxonNode.class));
+        result.addUpdatedCdmId(CdmEntityIdentifier.NewInstance(46, TaxonNode.class));
 
         result.setStatus(Status.OK);
         sessionOwner.setExpectedUpdatedObjects(taxonNodes);
@@ -158,7 +158,7 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
     @Test
     public void testDataChange() throws ExecutionException {
         TaxonNode taxonNode = ProxyUtils.deproxyIfInitialized(taxonNodeService.load(taxonNodeUuid1));
-        CdmEntityIdentifier cei = new CdmEntityIdentifier(taxonNode.getId(), TaxonNode.class);
+        CdmEntityIdentifier cei = CdmEntityIdentifier.NewInstance(taxonNode);
 
         taxonNodes = new HashSet<>();
         taxonNodes.add(taxonNode);
index adccccfe38ebdfebd567e8f535896741851c3daa..46f922715036ee50187b1daf9ed03a81b03a9362 100644 (file)
@@ -1,6 +1,11 @@
 /**\r
- * \r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
 package eu.etaxonomy.taxeditor.ui.selection;\r
 \r
 import org.junit.After;\r
@@ -8,20 +13,18 @@ import org.junit.After;
 import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
 \r
 /**\r
- * This test will only test the selection element itself. The test may have to start other \r
- * dialogs open windows before to get at the selection element. Any errors on the way \r
+ * This test will only test the selection element itself. The test may have to start other\r
+ * dialogs open windows before to get at the selection element. Any errors on the way\r
  * should be handled by different tests.\r
- * \r
+ *\r
  * @author n.hoffmann\r
  *\r
  */\r
 public abstract class AbstractSelectionElementTest extends AbstractEditorTest{\r
 \r
-       \r
-\r
        @After\r
        public void tearDown() {\r
                utils.cancel();\r
        }\r
-       \r
+\r
 }\r
index 233cd8127bf2f25099f3e8adc86d0004cfbc2a59..6bb2f2df455b2c9bebecad00b21dac724614636d 100644 (file)
@@ -1,6 +1,11 @@
 /**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
 package eu.etaxonomy.taxeditor.ui.selection;\r
 \r
 import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
@@ -17,7 +22,8 @@ import org.junit.Test;
  */\r
 @Ignore\r
 public class ClassificationSelectionElementTest extends AbstractSelectionElementTest{\r
-       @Override\r
+\r
+    @Override\r
        public void setup() {\r
                super.setup();\r
                bot.menu("General").menu("New").menu("Taxon").click();\r
index 1f1badc2c7e28f91f3d2e228ef38a8cfd175b1fd..da607b5c606c442df2c1cb7c0cffedd4ae068f57 100644 (file)
@@ -1,9 +1,14 @@
 /**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
 package eu.etaxonomy.taxeditor.ui.selection;\r
 \r
-import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.eclipse.swtbot.swt.finder.waits.Conditions;\r
 import org.junit.Ignore;\r
 import org.junit.Test;\r
 \r
@@ -13,7 +18,8 @@ import org.junit.Test;
  */\r
 @Ignore\r
 public class NameSelectionElementTest extends AbstractSelectionElementTest {\r
-       @Override\r
+\r
+    @Override\r
        public void setup() {\r
                super.setup();\r
                bot.menu("General").menu("New").menu("Taxon").click();\r
index 16697a4857268e186a3407d59b5dc259216e67b3..89c6f01641cc9f8c768691675b2cd01f8aa1cfd6 100644 (file)
@@ -1,6 +1,11 @@
 /**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
 package eu.etaxonomy.taxeditor.ui.selection;\r
 \r
 import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
index fef3859f671d184031b2fee83fc7c9882e015722..e5a2a98808e1fa99ea90ec32bd72f80734743e92 100644 (file)
@@ -1,6 +1,11 @@
 /**\r
- *\r
- */\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
 package eu.etaxonomy.taxeditor.ui.selection;\r
 \r
 import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
index 2dddbf52e92c6eb6546ae0e5b9168cdb06dba09a..9f4f14029ff36002a68f0d71250a6e7c9fa78850 100644 (file)
@@ -1,17 +1,23 @@
+/**
+* Copyright (C) 2015 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.util;
 
 /**
  * based on from http://code.google.com/p/java-tester/source/browse/trunk/src/main/java/org/jtester/unitils/database/H2DbSupport.java
  */
-
-
 import java.util.Set;
 
 import org.unitils.core.dbsupport.DbSupport;
 
 public class H2DbSupport extends DbSupport {
         /**
-         * Creates support for HsqlDb databases.
+         * Creates support for H2 databases.
          */
         public H2DbSupport() {
                 super("h2");
index bb9b9db9376d297e035c65ba00e3ef389921157d..7a11924748c8f19df756b8ea2ae04fc90e1ceb31 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 08b2f81d822a523fc787519dc7b1c62824c586b7..95d30d61bd417a19090c56982ca7a134ef746543 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.28.1
+Bundle-Version: 5.29.0
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.e4.ui.workbench,
index 7613a5ffec996105ae7686519c14be65fce02450..659e8292cd07aa5d7c414a5439acc3b4769f0210 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 35c1525e2ebe0bef6e5aa67060fc100f325f5b8e..28f243e3730192fdbffefe2509ba57eafaf2943d 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.28.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.29.0">
   <aboutInfo>
     <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
     <text>
index b41e5244bfaf612a1cfaaf4028386df149da8fce..655651d41bb31991e7c6a6865107933fcd3abe14 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="5.1.0.SNAPSHOT" useFeatures="true" includeLaunchers="true">
+<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="5.29.0" useFeatures="true" includeLaunchers="true">
 
    <aboutInfo>
       <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
@@ -24,8 +24,6 @@
       </programArgsMac>
       <programArgsSol>-vm jre/bin
       </programArgsSol>
-      <programArgsWin>-vm jre/bin
-      </programArgsWin>
       <vmArgs>-Xmx512M -XX:MaxPermSize=256M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow
       </vmArgs>
       <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
@@ -47,7 +45,7 @@
    </launcher>
 
    <vm>
-   </vm>
+     </vm>
 
    <plugins>
    </plugins>
index a8a1b5e4ffb6669762da5e820eff88bf525de554..0289fe4556a59706c9b9e04db9a3c9087e5527ee 100644 (file)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.28.1</version>
+    <version>5.29.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
           <plugin>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>wagon-maven-plugin</artifactId>
-            <version>1.0</version>
+            <version>2.0.2</version>
             <!-- Problems with the wagon-maven-plugin have been encounterd 
               on Windows, it should work properly on linux though. -->
             <executions>
index 7ab9563dbe593c428da40fc89ab1b7c5b1a60a16..206eb76191885e5a11bea7b38dee30ed0725f5fc 100644 (file)
@@ -70,7 +70,7 @@
 <repository location="http://download.eclipse.org/releases/neon"/>\r
 </location>\r
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">\r
-<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.202007241204"/>\r
+<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.202011020719"/>\r
 <repository location="http://download.eclipse.org/nebula/releases/latest/"/>\r
 </location>\r
 </locations>\r
diff --git a/pom.xml b/pom.xml
index 3f3c51af0adf54ece04ef40a8f62be068e7ede27..aa619e4068fc5d369731f6285c578342008f0c15 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -2,11 +2,11 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <prerequisites>
-    <maven>3.2.3</maven>
+    <maven>3.6.3</maven>
   </prerequisites>
   <groupId>eu.etaxonomy</groupId>
   <artifactId>taxeditor-parent</artifactId>
-  <version>5.28.1</version>
+  <version>5.29.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.28.0</cdmlib.version>
+    <cdmlib.version>5.29.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.28.0</taxeditor.version>
+    <tycho.version>1.7.0</tycho.version>
+    <taxeditor.version>5.29.0</taxeditor.version>
     <update.dir>snapshot</update.dir>
     <log4j.version>1.2.17</log4j.version>
-    <httpcomponents.version>4.5.12</httpcomponents.version>
+    <httpcomponents.version>4.5.13</httpcomponents.version>
     <jetty-version>9.4.26.v20200117</jetty-version>
-    <javadoc.opts>-Xdoclint:none</javadoc.opts>
+    <doclint>none</doclint>
+    <!-- see according comment in cdmlib for possible finetuning -->
   </properties>
   <modules>
     <module>eu.etaxonomy.taxeditor.cdmlib</module>
     <developer>
       <!-- your SVN account id please! -->
       <id>a.kohlbecker</id>
-      <name>
-                Andreas Kohlbecker
-            </name>
+      <name>Andreas Kohlbecker</name>
       <email>a.kohlbecker [at] bgbm.org</email>
-      <organization>
-                Botanical Garden Botanical Museum Berlin
-            </organization>
-      <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
+      <organization>Botanical Garden Botanical Museum Berlin</organization>
+      <organizationUrl>https://www.bgbm.org/en/biodiversity-informatics</organizationUrl>
       <timezone>+1</timezone>
       <roles>
         <role>Architect</role>
     <developer>
       <!-- your SVN account id please! -->
       <id>k.luther</id>
-      <name>
-                Katja Luther
-            </name>
+      <name>Katja Luther</name>
       <email>k.luther [at] bgbm.org</email>
-      <organization>
-                Botanical Garden Botanical Museum Berlin
-            </organization>
-      <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
+      <organization>Botanical Garden Botanical Museum Berlin</organization>
+      <organizationUrl>https://www.bgbm.org/en/biodiversity-informatics</organizationUrl>
       <timezone>+1</timezone>
       <roles>
         <role>Java Developer</role>
     <developer>
       <!-- your SVN account id please! -->
       <id>a.mueller</id>
-      <name>
-                Andreas Müller
-            </name>
+      <name>Andreas Müller</name>
       <email>a.mueller [at] bgbm.org</email>
-      <organization>
-                Botanical Garden Botanical Museum Berlin
-            </organization>
-      <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
+      <organization>Botanical Garden Botanical Museum Berlin</organization>
+      <organizationUrl>https://www.bgbm.org/en/biodiversity-informatics</organizationUrl>
       <timezone>+1</timezone>
       <roles>
         <role>Architect</role>
       </roles>
       <url/>
     </developer>
-    <developer>
-      <!-- your SVN account id please! -->
-      <id>p.plitzner</id>
-      <name>
-               Patrick Plitzner
-            </name>
-      <email>p.plitzner [at] bgbm.org</email>
-      <organization>
-                Botanical Garden Botanical Museum Berlin
-            </organization>
-      <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
-      <timezone>+1</timezone>
-      <roles>
-        <role>Java Developer</role>
-      </roles>
-      <url/>
-    </developer>
   </developers>
   <issueManagement>
     <system>Redmine</system>
   </issueManagement>
   <ciManagement>
     <system>Jenkins</system>
-    <url>http://int.e-taxonomy.eu/jenkins/view/EDIT%20Taxonomic%20Editor/
+    <url>https://int.e-taxonomy.eu/jenkins/view/EDIT%20Taxonomic%20Editor/
     </url>
   </ciManagement>
   <!-- **** REPOSITORIES **** -->
     <!-- the cdm internal repository -->
     <repository>
       <id>EditRepository</id>
-      <url>http://cybertaxonomy.eu/mavenrepo/</url>
+      <url>https://cybertaxonomy.eu/mavenrepo/</url>
     </repository>
     <repository>
       <id>eclipse-indigo</id>
     <pluginRepository>
       <!-- required for the plugin dependency cdmlib-db of the jetty-maven-plugin -->
       <id>EditRepository</id>
-      <url>http://cybertaxonomy.eu/mavenrepo/</url>
+      <url>https://cybertaxonomy.eu/mavenrepo/</url>
     </pluginRepository>
   </pluginRepositories>
   <build>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.6.1</version>
+        <version>3.9.0</version>
         <configuration>
           <source>${java.codelevel}</source>
           <target>${java.codelevel}</target>
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>wagon-maven-plugin</artifactId>
-        <version>1.0</version>
+        <version>2.0.2</version>
         <configuration>
           <url>scpexe://cybertaxonomy.eu</url>
           <serverId>cybertaxonomy.eu</serverId>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.6</version>
+        <version>3.0.0-M5</version>
         <configuration>
           <includes>
             <include>**/*Test.java</include>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-site-plugin</artifactId>
-        <version>3.3</version>
+        <version>3.10.0</version>
         <configuration>
           <locales>en</locales>
           <outputEncoding>UTF-8</outputEncoding>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.7</version>
+        <version>3.3.1</version>
         <configuration>
           <stylesheet>maven</stylesheet>
           <quiet>true</quiet>
           <detectLinks>true</detectLinks>
           <failOnError>false</failOnError>
-          <additionalparam>${javadoc.opts}</additionalparam>
+          <doclint>${doclint}</doclint>
         </configuration>
         <executions>
           <execution>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-eclipse-plugin</artifactId>
-        <version>2.8</version>
+        <version>2.10</version>
         <configuration>
           <downloadSources>true</downloadSources>
           <downloadJavadocs>true</downloadJavadocs>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-release-plugin</artifactId>
-        <version>2.2.1</version>
+        <version>2.5.3</version>
         <configuration>
           <allowTimestampedSnapshots>true</allowTimestampedSnapshots>
           <autoVersionSubmodules>false</autoVersionSubmodules>
         </configuration>
       </plugin>
       <plugin>
-        <groupId>external.atlassian.jgitflow</groupId>
+        <groupId>ch.dvbern.oss.maven.jgitflow</groupId>
         <artifactId>jgitflow-maven-plugin</artifactId>
-        <version>1.0-m6</version>
+        <version>1.0-m8</version>
         <configuration>
           <pushHotfixes>true</pushHotfixes>
           <pushReleases>true</pushReleases>
           <dependency>
             <groupId>com.jcraft</groupId>
             <artifactId>jsch</artifactId>
-            <version>0.1.53</version>
+            <version>0.1.55</version>
           </dependency>
         </dependencies>
       </plugin>
       <extension>
         <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-scm</artifactId>
-        <version>1.0-beta-6</version>
+        <version>3.5.1</version>
       </extension>
       <extension>
         <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-ssh</artifactId>
-        <version>2.12</version>
+        <version>3.5.1</version>
       </extension>
       <extension>
         <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-ssh-external</artifactId>
-        <version>2.12</version>
+        <version>3.5.1</version>
       </extension>
       <extension>
         <groupId>org.apache.maven.scm</groupId>
         <artifactId>maven-scm-manager-plexus</artifactId>
-        <version>1.0</version>
+        <version>1.12.2</version>
       </extension>
       <extension>
         <groupId>org.apache.maven.scm</groupId>
         <artifactId>maven-scm-provider-svnexe</artifactId>
-        <version>1.0</version>
+        <version>1.12.2</version>
       </extension>
       <!-- WebDAV plugin to upload snapshots -->
       <extension>
         <groupId>org.apache.maven.wagon</groupId>
-        <artifactId>wagon-webdav</artifactId>
-        <version>1.0-beta-2</version>
+        <artifactId>wagon-webdav-jackrabbit</artifactId>
+        <version>3.5.1</version>
       </extension>
     </extensions>
     <pluginManagement>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-antrun-plugin</artifactId>
-          <version>1.7</version>
+          <version>3.0.0</version>
         </plugin>
       </plugins>
     </pluginManagement>
         <!-- you will want to start by publishing your classes' Javadocs -->
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.7</version>
+        <version>3.3.1</version>
         <configuration>
           <detectLinks>true</detectLinks>
-          <additionalparam>${javadoc.opts}</additionalparam>
+          <doclint>${doclint}</doclint>
         </configuration>
       </plugin>
       <plugin>
           of your source code -->
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jxr-plugin</artifactId>
-        <version>2.2</version>
+        <version>3.1.1</version>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-changes-plugin</artifactId>
-        <version>2.3</version>
+        <version>2.12.1</version>
         <configuration>
           <issueLinkTemplatePerSystem>
             <default>%URL%/ticket/%ISSUE%</default>
       <dependency>
         <groupId>com.itextpdf</groupId>
         <artifactId>itextpdf</artifactId>
-        <version>5.5.13.1</version>
+        <version>5.5.13.2</version>
       </dependency>
       <dependency>
         <groupId>org.apache.httpcomponents</groupId>
         <artifactId>httpclient</artifactId>
         <version>${httpcomponents.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient-cache</artifactId>
+        <version>${httpcomponents.version}</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 </project>
index 11fd1a82316f2eb0f33d33b5853ed857db70589c..e6c6571699be1976432cdcabe57c9982d5ddea02 100755 (executable)
@@ -1,5 +1,10 @@
 #!/bin/bash
 
+#
+# TODO CDMLIB_ROOT is currently pinned to a 
+# specific workspace setup and should be parametrized 
+# or flexibilized an other way.
+#
 CDMLIB_ROOT=~/workspaces/cdm/cdmlib
 
 CDM_PROJETCS=("cdmlib-cache" "cdmlib-commons" "cdmlib-model" "cdmlib-ext" "cdmlib-io" "cdmlib-persistence" "cdmlib-services")
index 3798e0c37a96f0825f7db1b7d81dcee780fcf9ed..d9002d091df76b57f5634b5e0440f1dc99495a6c 100644 (file)
@@ -60,7 +60,7 @@
                <faq id="ubuntu_gtk2_eclipse_rcp_crash">
                        <question>The Taxonomic Editor crashes or freezes in recent Ubuntu versions</question>
                        <answer>
-                               <p>In recent Ubuntu versions (13.04, 13.10) the Taxomomic Editor crashes frequently (KDE) or freezes for some time (GNOME). The crashes in KDE are due to a bug which affects all Eclipse indigo (3.7) RCP based applications. Even this bug is currently discussed in the affected developer communities: <a href="https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1241101">launchpad bug 1241101</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=419729">eclipse bug 419729</a> the cause of this bug is still unclear.
+                               <p>In recent Ubuntu versions (13.04, 13.10) the Taxonomic Editor crashes frequently (KDE) or freezes for some time (GNOME). The crashes in KDE are due to a bug which affects all Eclipse indigo (3.7) RCP based applications. Even this bug is currently discussed in the affected developer communities: <a href="https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1241101">launchpad bug 1241101</a>, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=419729">eclipse bug 419729</a> the cause of this bug is still unclear.
                            </p>
                                <p>In KDE the crash occurs when the oxygene_gtk is being used. Therefore switching to another GTK2 theme is known as a  temporary solution. The GTK2 theme Raleigh has been sucessfully used as a replacement to the oxygen_gtk2. You can either configure it globally or set the environmanet variable GTK2_RC_FILES for the application to run.</p>
                                <p>